{ "info": { "author": "Omar Al-Ghussein", "author_email": "z3@live.it", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "AsyncNetFSM\n***********\n\nAsynchronous multi-vendor library for interacting with network devices\n\nInspired by netdev\n\nRequires:\n---------\n* asyncio\n* AsyncSSH\n* Python >=3.5\n* pyYAML\n\n\nSupports:\n---------\n* Cisco IOS\n* Cisco IOS XE\n* Cisco IOS XR\n* Cisco ASA\n* Cisco NX-OS\n* HP Comware (like V1910 too)\n* Fujitsu Blade Switches\n* Mikrotik RouterOS\n* Arista EOS\n* Juniper JunOS\n* Aruba AOS 6.X\n* Aruba AOS 8.X\n* Terminal\n\nExamples:\n---------\nExample of interacting with Cisco IOS devices:\n\n.. code-block:: python\n\n import asyncio\n import asyncnetfsm\n\n async def task(param):\n async with asyncnetfsm.create(**param) as ios:\n # Testing sending simple command\n out = await ios.send_command(\"show ver\")\n print(out)\n # Testing sending configuration set\n commands = [\"line console 0\", \"exit\"]\n out = await ios.send_config_set(commands)\n print(out)\n # Testing sending simple command with long output\n out = await ios.send_command(\"show run\")\n print(out)\n # Testing interactive dialog\n out = await ios.send_command(\"conf\", pattern=r'\\[terminal\\]\\?', strip_command=False)\n out += await ios.send_command(\"term\", strip_command=False)\n out += await ios.send_command(\"exit\", strip_command=False, strip_prompt=False)\n print(out)\n\n\n async def run():\n dev1 = { 'username' : 'user',\n 'password' : 'pass',\n 'device_type': 'cisco_ios',\n 'host': 'ip address',\n }\n dev2 = { 'username' : 'user',\n 'password' : 'pass',\n 'device_type': 'cisco_ios',\n 'host': 'ip address',\n }\n devices = [dev1, dev2]\n tasks = [task(dev) for dev in devices]\n await asyncio.wait(tasks)\n\n\n loop = asyncio.get_event_loop()\n loop.run_until_complete(run())\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/omaralghussein/asyncnetfsm", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "asyncnetfsm", "package_url": "https://pypi.org/project/asyncnetfsm/", "platform": "", "project_url": "https://pypi.org/project/asyncnetfsm/", "project_urls": { "Homepage": "https://github.com/omaralghussein/asyncnetfsm" }, "release_url": "https://pypi.org/project/asyncnetfsm/0.0.9/", "requires_dist": null, "requires_python": ">=3.6", "summary": "simply its Netdev with textFSM", "version": "0.0.9" }, "last_serial": 5889928, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "b6300e1a89f5dc19c87afe7bfc4cae07", "sha256": "9975d99ab68ab4dd5a7c44154d29570baf37f271db13c6b0b9068472a1927068" }, "downloads": -1, "filename": "asyncnetfsm-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b6300e1a89f5dc19c87afe7bfc4cae07", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 35365, "upload_time": "2019-09-12T14:59:07", "url": "https://files.pythonhosted.org/packages/1c/e2/62958ccd579aac726c3dae2e32cbdabab9307f61b264421dd7a350f7bc50/asyncnetfsm-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02b11a053c19167034ea0cbfdea60c62", "sha256": "74d47124585b9d9130159381775e30516348732c1eeb2171cd61c8afbe5a39ed" }, "downloads": -1, "filename": "asyncnetfsm-0.0.1.tar.gz", "has_sig": false, "md5_digest": "02b11a053c19167034ea0cbfdea60c62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18524, "upload_time": "2019-09-12T14:59:09", "url": "https://files.pythonhosted.org/packages/84/5a/953f15c3c7daacd02de4a5e823c28d8a74be60de6d31fca52807aa8c3d7e/asyncnetfsm-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2d27a291b909051841bf9661768ff1b0", "sha256": "ae7608c20057cd69721229857c196e5c32a3fc41094dd167c3f4a45a89e955c3" }, "downloads": -1, "filename": "asyncnetfsm-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2d27a291b909051841bf9661768ff1b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 35357, "upload_time": "2019-09-12T15:28:35", "url": "https://files.pythonhosted.org/packages/a0/22/bf62197cfa2030e633eb20a15dfef5db0c6bbf456c14e442bd77373b0c29/asyncnetfsm-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18a63816132e52e46b367fb3d3b2151d", "sha256": "004735012797760d74a012572099bce6f20bb16ae6bb6e8b476a195f13e1ff2b" }, "downloads": -1, "filename": "asyncnetfsm-0.0.2.tar.gz", "has_sig": false, "md5_digest": "18a63816132e52e46b367fb3d3b2151d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18513, "upload_time": "2019-09-12T15:28:37", "url": "https://files.pythonhosted.org/packages/f4/e9/751aa2f04cdecd7e8b68b2e434f54d49de62c3145e317653f298324a1474/asyncnetfsm-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "b1861083805eb7caae52a1309b21b4a8", "sha256": "255f9fa21341d66355a72b4dabb4418932b41ceca781aa1d8026b7f3a443b587" }, "downloads": -1, "filename": "asyncnetfsm-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b1861083805eb7caae52a1309b21b4a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 35483, "upload_time": "2019-09-14T15:55:53", "url": "https://files.pythonhosted.org/packages/06/34/c27becc13ff1428ffdf3d4f168e2e84f524ee489b72030aae06cc4fb02e3/asyncnetfsm-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1ac1a4abf3038df41fe00ba05437295", "sha256": "d7f318d9aa3863ee79711f82818d256e6b661b517803a2b0e9ea85a7697b5a9f" }, "downloads": -1, "filename": "asyncnetfsm-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a1ac1a4abf3038df41fe00ba05437295", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18712, "upload_time": "2019-09-14T15:55:55", "url": "https://files.pythonhosted.org/packages/f6/61/33b0b272e99f81c2aec872b7124cec9567a837458728f38ea59e3af95a81/asyncnetfsm-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "99b8d94eb2a24acef4cee01e58349445", "sha256": "3954a55396d0971463f51577f53cdbde730a0a355912d009037a477a73c2d66c" }, "downloads": -1, "filename": "asyncnetfsm-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "99b8d94eb2a24acef4cee01e58349445", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 35976, "upload_time": "2019-09-16T11:57:04", "url": "https://files.pythonhosted.org/packages/56/9a/971cf7e24fd4f9581f53edfb16e9f5465a72ff02ca4c36224f69ca15383d/asyncnetfsm-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab399a6014e1b0f15b534b26ebaa1fe0", "sha256": "f7ebbe90f23f06acdeb4d0295f77e9ce7b1fee8b71e6150c905413156ccfe592" }, "downloads": -1, "filename": "asyncnetfsm-0.0.4.tar.gz", "has_sig": false, "md5_digest": "ab399a6014e1b0f15b534b26ebaa1fe0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19036, "upload_time": "2019-09-16T11:57:05", "url": "https://files.pythonhosted.org/packages/e7/39/095ed2c1b7cd672da90d56ef8a49f3397e0179fa2935d771da45e66d396d/asyncnetfsm-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "bc73f71f3fe9304184f6f90be160e5ad", "sha256": "b8c2e1f13ac6208a9393fe3015d5dece3f43eb42f412a867c8d1d0e14daa0612" }, "downloads": -1, "filename": "asyncnetfsm-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "bc73f71f3fe9304184f6f90be160e5ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 35981, "upload_time": "2019-09-16T12:02:11", "url": "https://files.pythonhosted.org/packages/cb/b9/23db4fd095252199352ca628d36ff1a7ea36cc2e7417fce33c0e4cab4729/asyncnetfsm-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "378f87652f44921890c154bebd5021c6", "sha256": "9c8a7f18aad25170cb8b233c439f5c7a51e7c8547a7205841c275ab3505e06e1" }, "downloads": -1, "filename": "asyncnetfsm-0.0.5.tar.gz", "has_sig": false, "md5_digest": "378f87652f44921890c154bebd5021c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19037, "upload_time": "2019-09-16T12:02:13", "url": "https://files.pythonhosted.org/packages/b5/bc/065dc71112fc323e8f5df46786e9fc83fe3c557cc9b9d9471ee670667f84/asyncnetfsm-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "3ce9c9f8fd06b9e7a4bbbe74937cefb6", "sha256": "7ca5b897ca2a37114919675ae25d4f661f3afe069b01a0d07c299d175f460c65" }, "downloads": -1, "filename": "asyncnetfsm-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "3ce9c9f8fd06b9e7a4bbbe74937cefb6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36025, "upload_time": "2019-09-16T13:00:46", "url": "https://files.pythonhosted.org/packages/99/04/0f1e675eb4a8dc7ce97b43ca03fd2133d9d904c0add4ed4675506b06e410/asyncnetfsm-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88457d50aaddfd6a3239400da8349062", "sha256": "295bdaab8014d61f1dec4484abb2dc9913cfadb1ad4db39b3158c60066c4f2c4" }, "downloads": -1, "filename": "asyncnetfsm-0.0.6.tar.gz", "has_sig": false, "md5_digest": "88457d50aaddfd6a3239400da8349062", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19091, "upload_time": "2019-09-16T13:00:48", "url": "https://files.pythonhosted.org/packages/2b/7e/8ca17d0dcb6b5a23e46a025d6ea6c9ed80794518017d923b6b9b81ae908f/asyncnetfsm-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "96c20666ef065298b4040133ab525194", "sha256": "eec4c1a44aa57a21de06b1fa1a93fccc3b1c15711939939fe41da7d440868269" }, "downloads": -1, "filename": "asyncnetfsm-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "96c20666ef065298b4040133ab525194", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36050, "upload_time": "2019-09-22T10:40:01", "url": "https://files.pythonhosted.org/packages/30/51/bad8ee5018dfc52098cfd752681029b10b7de168b9359d05664b5cde7d70/asyncnetfsm-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2785b92781736b07074ed9b2ecbd63e5", "sha256": "f369cbc148dee95576d27ca582979d6c3c2474a15ccbaa804b426216f6a8afa2" }, "downloads": -1, "filename": "asyncnetfsm-0.0.7.tar.gz", "has_sig": false, "md5_digest": "2785b92781736b07074ed9b2ecbd63e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19112, "upload_time": "2019-09-22T10:40:03", "url": "https://files.pythonhosted.org/packages/e3/a8/64d7c93dec17ad5e48fe049e79c8958b5a0c53c1e82aef7e28c58ecee17c/asyncnetfsm-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "2e419f51263ef7b1c76540c425d94981", "sha256": "991c6e361c63d94ec77f5e662fe8ff842213624c30843d2fd537ad2f82ea5eef" }, "downloads": -1, "filename": "asyncnetfsm-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "2e419f51263ef7b1c76540c425d94981", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36598, "upload_time": "2019-09-23T09:12:40", "url": "https://files.pythonhosted.org/packages/e6/d0/9b926b1a368ee585537b47071b116ba0c95516a41b24e87222c7041353d8/asyncnetfsm-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97b0c5c23220319c382110d8a942b3e2", "sha256": "b79870618c1c7f24962cc153d213b6258561b44225051607dc3b76dea8b257b4" }, "downloads": -1, "filename": "asyncnetfsm-0.0.8.tar.gz", "has_sig": false, "md5_digest": "97b0c5c23220319c382110d8a942b3e2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19266, "upload_time": "2019-09-23T09:12:42", "url": "https://files.pythonhosted.org/packages/16/b4/4b76ccae41f753681bd20c473ec16f893f5e6c4381726ca284ab4fa8bf36/asyncnetfsm-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "1f47d788f151b768524585503ed32080", "sha256": "81d4615aa5d347e864a267e3ec64c4ea63571bb481741630e9a0c71bb6ddfd41" }, "downloads": -1, "filename": "asyncnetfsm-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "1f47d788f151b768524585503ed32080", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36700, "upload_time": "2019-09-26T10:20:54", "url": "https://files.pythonhosted.org/packages/87/47/877e3cc5c522d34b8a28050ef3651962a3f690bd26fb45af562f2996a4be/asyncnetfsm-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1b24619acd6c6d5552e278ee517cb48", "sha256": "e86d02b96a97aa256e2eff5c131d7ccf0de63b14b251473eb0cc37710298036d" }, "downloads": -1, "filename": "asyncnetfsm-0.0.9.tar.gz", "has_sig": false, "md5_digest": "d1b24619acd6c6d5552e278ee517cb48", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19360, "upload_time": "2019-09-26T10:20:56", "url": "https://files.pythonhosted.org/packages/9e/0e/b441644878797d50aa25bf787072fa2879ffb4a2d94bc75779fb5c29ce3b/asyncnetfsm-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1f47d788f151b768524585503ed32080", "sha256": "81d4615aa5d347e864a267e3ec64c4ea63571bb481741630e9a0c71bb6ddfd41" }, "downloads": -1, "filename": "asyncnetfsm-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "1f47d788f151b768524585503ed32080", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36700, "upload_time": "2019-09-26T10:20:54", "url": "https://files.pythonhosted.org/packages/87/47/877e3cc5c522d34b8a28050ef3651962a3f690bd26fb45af562f2996a4be/asyncnetfsm-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1b24619acd6c6d5552e278ee517cb48", "sha256": "e86d02b96a97aa256e2eff5c131d7ccf0de63b14b251473eb0cc37710298036d" }, "downloads": -1, "filename": "asyncnetfsm-0.0.9.tar.gz", "has_sig": false, "md5_digest": "d1b24619acd6c6d5552e278ee517cb48", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19360, "upload_time": "2019-09-26T10:20:56", "url": "https://files.pythonhosted.org/packages/9e/0e/b441644878797d50aa25bf787072fa2879ffb4a2d94bc75779fb5c29ce3b/asyncnetfsm-0.0.9.tar.gz" } ] }