Unicon - Universal Connection Library
=====================================
Unicon is a package aiming to provide a unified connection experience to network
devices through typical command-line management interface. By wrapping the
underlying session (eg, telnet, ssh), Unicon provides:
- direct and proxied connections through any common CLI interface (telnet, ssh, serial etc)
- power of expect-like programming without having to deal with low-level logic
- multi-vendor support through an agnostic API interface
- seamless handling of CLI modes (eg, enable, configure, admin-configure mode)
- rejected commands, command error detections
- value-add statful services (specific to the platform)
and is extensible: platform supports and services are implemented via
open-source plugins.
Unicon is the standard, go-to CLI connection implementation for `Cisco pyATS`_
framework.
.. _Cisco pyATS: https://developer.cisco.com/site/pyats/
This package was initially developed internally in Cisco, and is now
release to the general public starting late 2017 through `Cisco DevNet`_.
https://developer.cisco.com/pyats/
.. _Cisco DevNet: https://developer.cisco.com/
Requirements
------------
- Linux/macOS/WSL
- Python 3.4+
Quick Start
-----------
.. code-block:: bash
bash$ pip install unicon
For more information on setting up your Python development environment,
such as creating virtual environment and installing ``pip`` on your system,
please refer to `Virtual Environment and Packages`_ in Python tutorials.
.. _Virtual Environment and Packages: https://docs.python.org/3/tutorial/venv.html
Examples
--------
See example of a Unicon connection usage with Cisco IOS devices at:
https://github.com/CiscoDevNet/pyats-ios-sample
In addition, there is a sample plugin package you can follow to develop Unicon
plugins for new platforms on top of Unicon:
https://github.com/CiscoDevNet/pyats-plugin-examples/tree/master/unicon_plugin_example
Support & Community
-------------------
See https://developer.cisco.com/docs/pyats/#!license-support page for details.
Raw data
{
"_id": null,
"home_page": "https://developer.cisco.com/pyats/",
"name": "unicon",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "unicon connection pyats cisco",
"author": "Cisco Systems Inc.",
"author_email": "pyats-support-ext@cisco.com",
"download_url": null,
"platform": null,
"description": "Unicon - Universal Connection Library\n=====================================\n\nUnicon is a package aiming to provide a unified connection experience to network\ndevices through typical command-line management interface. By wrapping the \nunderlying session (eg, telnet, ssh), Unicon provides:\n\n- direct and proxied connections through any common CLI interface (telnet, ssh, serial etc)\n- power of expect-like programming without having to deal with low-level logic\n- multi-vendor support through an agnostic API interface\n- seamless handling of CLI modes (eg, enable, configure, admin-configure mode)\n- rejected commands, command error detections\n- value-add statful services (specific to the platform)\n\nand is extensible: platform supports and services are implemented via \nopen-source plugins.\n\nUnicon is the standard, go-to CLI connection implementation for `Cisco pyATS`_\nframework.\n\n.. _Cisco pyATS: https://developer.cisco.com/site/pyats/\n\nThis package was initially developed internally in Cisco, and is now \nrelease to the general public starting late 2017 through `Cisco DevNet`_. \n\n https://developer.cisco.com/pyats/\n \n.. _Cisco DevNet: https://developer.cisco.com/\n\n\nRequirements\n------------\n\n- Linux/macOS/WSL\n- Python 3.4+\n\nQuick Start\n-----------\n\n.. code-block:: bash\n\n bash$ pip install unicon\n\n\nFor more information on setting up your Python development environment,\nsuch as creating virtual environment and installing ``pip`` on your system, \nplease refer to `Virtual Environment and Packages`_ in Python tutorials.\n\n.. _Virtual Environment and Packages: https://docs.python.org/3/tutorial/venv.html\n\nExamples\n--------\n\nSee example of a Unicon connection usage with Cisco IOS devices at:\n\n https://github.com/CiscoDevNet/pyats-ios-sample\n\nIn addition, there is a sample plugin package you can follow to develop Unicon\nplugins for new platforms on top of Unicon:\n\n https://github.com/CiscoDevNet/pyats-plugin-examples/tree/master/unicon_plugin_example\n\nSupport & Community\n-------------------\n\nSee https://developer.cisco.com/docs/pyats/#!license-support page for details.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Unicon Connection Library",
"version": "24.3",
"project_urls": {
"Homepage": "https://developer.cisco.com/pyats/"
},
"split_keywords": [
"unicon",
"connection",
"pyats",
"cisco"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "47867387c4300783b1057a807d4bd2da6665ce55e3111d7f1b2e475667f18918",
"md5": "6a731b2d65317fd34c1fc1d9d2d383d6",
"sha256": "399bc3edc6e8cdae5b0da18dfcdd84a518fb26d2f8ca96e0189967c814ac21f1"
},
"downloads": -1,
"filename": "unicon-24.3-cp310-cp310-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "6a731b2d65317fd34c1fc1d9d2d383d6",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 5252040,
"upload_time": "2024-03-26T18:39:15",
"upload_time_iso_8601": "2024-03-26T18:39:15.241292Z",
"url": "https://files.pythonhosted.org/packages/47/86/7387c4300783b1057a807d4bd2da6665ce55e3111d7f1b2e475667f18918/unicon-24.3-cp310-cp310-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "36c00a9a549ae1668222b255d829ddb347fd2555d050073f2026b847d88e7d03",
"md5": "11b61b88428dcdbfdf46a41b7856fd77",
"sha256": "2f09e07de18a82955f14d31c3016f5eaf0bfc9ace28132d351eba76828b1a4b9"
},
"downloads": -1,
"filename": "unicon-24.3-cp310-cp310-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "11b61b88428dcdbfdf46a41b7856fd77",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 14116255,
"upload_time": "2024-03-26T18:39:18",
"upload_time_iso_8601": "2024-03-26T18:39:18.643458Z",
"url": "https://files.pythonhosted.org/packages/36/c0/0a9a549ae1668222b255d829ddb347fd2555d050073f2026b847d88e7d03/unicon-24.3-cp310-cp310-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "820c23c5b8356cfc4d2eff4045d473ec455cbd85def0a3a5669a1b5ea6db078a",
"md5": "35d90407f18083c9f1f7b89b711e1a2e",
"sha256": "00cd22dc5456e3b3199615de15098c9269b72877003d9d10795ce1a0fa449325"
},
"downloads": -1,
"filename": "unicon-24.3-cp310-cp310-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "35d90407f18083c9f1f7b89b711e1a2e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 13541500,
"upload_time": "2024-03-26T18:39:22",
"upload_time_iso_8601": "2024-03-26T18:39:22.100958Z",
"url": "https://files.pythonhosted.org/packages/82/0c/23c5b8356cfc4d2eff4045d473ec455cbd85def0a3a5669a1b5ea6db078a/unicon-24.3-cp310-cp310-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fad6a197511049bb1842cd4d61bebf7efda22ea67d9b6358a9add3d390f7dbae",
"md5": "82bfadc4d6e88bfab432bdef1c307b46",
"sha256": "8c25d6d20ef3d0ade17cd544fe2f75bf005e6b318e0cdf26e21d03df4ac04ee6"
},
"downloads": -1,
"filename": "unicon-24.3-cp311-cp311-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "82bfadc4d6e88bfab432bdef1c307b46",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 5303293,
"upload_time": "2024-03-26T18:39:27",
"upload_time_iso_8601": "2024-03-26T18:39:27.185344Z",
"url": "https://files.pythonhosted.org/packages/fa/d6/a197511049bb1842cd4d61bebf7efda22ea67d9b6358a9add3d390f7dbae/unicon-24.3-cp311-cp311-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cd1c9e2a01c013597b1a6852c711823a61256fce5e9b5a87fc36d06fafbbdc3a",
"md5": "f76f43a2930557fe576493a60d806220",
"sha256": "30e39899b25fa4301e7d39b3158ab70ee07e3cd1798c9236e0ef44e1796bb859"
},
"downloads": -1,
"filename": "unicon-24.3-cp311-cp311-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "f76f43a2930557fe576493a60d806220",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 15855314,
"upload_time": "2024-03-26T18:39:29",
"upload_time_iso_8601": "2024-03-26T18:39:29.522239Z",
"url": "https://files.pythonhosted.org/packages/cd/1c/9e2a01c013597b1a6852c711823a61256fce5e9b5a87fc36d06fafbbdc3a/unicon-24.3-cp311-cp311-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c9ee9288a4609d5403e9a04fb94bd6898346e1827a2bea1d0a6fc76e7b2c349b",
"md5": "b4523e97f1c4c7c8879a265fdaa22e06",
"sha256": "fc3c4a4bba7697af009c21f44ac5db0407b08e1cf06ebbcde43d61487c4e06e3"
},
"downloads": -1,
"filename": "unicon-24.3-cp311-cp311-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "b4523e97f1c4c7c8879a265fdaa22e06",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 14666269,
"upload_time": "2024-03-26T18:39:32",
"upload_time_iso_8601": "2024-03-26T18:39:32.424000Z",
"url": "https://files.pythonhosted.org/packages/c9/ee/9288a4609d5403e9a04fb94bd6898346e1827a2bea1d0a6fc76e7b2c349b/unicon-24.3-cp311-cp311-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3b990f1246d87c9996ab86dfa8d27357787f5f30ddc505124ae8096b6e3cfcdf",
"md5": "d5a6423c217a7662196956319cfcff04",
"sha256": "a13026308dab8013caa0dae94ee916217486eb75d9df57b81ba62a5dcfd823cf"
},
"downloads": -1,
"filename": "unicon-24.3-cp312-cp312-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "d5a6423c217a7662196956319cfcff04",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 5260401,
"upload_time": "2024-03-26T18:39:35",
"upload_time_iso_8601": "2024-03-26T18:39:35.199459Z",
"url": "https://files.pythonhosted.org/packages/3b/99/0f1246d87c9996ab86dfa8d27357787f5f30ddc505124ae8096b6e3cfcdf/unicon-24.3-cp312-cp312-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1fcc45264c1555611f4556a2066caf705e7bfd3c56ef02f2aaf1a534db3b4ba6",
"md5": "96d2c42ff4caca1c9376cfbb862fd192",
"sha256": "a41d35bc0d9c78db570966963ad825671af2608f4598c5d81cf1f63d8499c37e"
},
"downloads": -1,
"filename": "unicon-24.3-cp312-cp312-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "96d2c42ff4caca1c9376cfbb862fd192",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 15786714,
"upload_time": "2024-03-26T18:39:37",
"upload_time_iso_8601": "2024-03-26T18:39:37.967539Z",
"url": "https://files.pythonhosted.org/packages/1f/cc/45264c1555611f4556a2066caf705e7bfd3c56ef02f2aaf1a534db3b4ba6/unicon-24.3-cp312-cp312-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b87de02b57eb030c7460d87ce26bd55087c5496aebc1ec57a81cc57166967b00",
"md5": "0d4ba7d92de0b20d10f4f33e8d498e79",
"sha256": "1310797cfd3b65594bb56a8ab11ba0b3f5970c74bff4ee9bacfdce07e31dbdb5"
},
"downloads": -1,
"filename": "unicon-24.3-cp312-cp312-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0d4ba7d92de0b20d10f4f33e8d498e79",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 14652645,
"upload_time": "2024-03-26T18:39:40",
"upload_time_iso_8601": "2024-03-26T18:39:40.671089Z",
"url": "https://files.pythonhosted.org/packages/b8/7d/e02b57eb030c7460d87ce26bd55087c5496aebc1ec57a81cc57166967b00/unicon-24.3-cp312-cp312-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4e8bfa21c2f612c4aac624f733069e809dc9aeaeb1eb7984c5f999fd73fe869c",
"md5": "47dc95516c5573c3195997556c2c845e",
"sha256": "6b0ddd449e90c0b15367b53433b8b3ade316a39169f1fbec7bf89cd5e7cf75f6"
},
"downloads": -1,
"filename": "unicon-24.3-cp38-cp38-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "47dc95516c5573c3195997556c2c845e",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 5263726,
"upload_time": "2024-03-26T18:39:43",
"upload_time_iso_8601": "2024-03-26T18:39:43.098739Z",
"url": "https://files.pythonhosted.org/packages/4e/8b/fa21c2f612c4aac624f733069e809dc9aeaeb1eb7984c5f999fd73fe869c/unicon-24.3-cp38-cp38-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5d3212ae91ccda43912cfd7241de43f9b6a2e5a36f5a276f76b1e430ced45ca5",
"md5": "393cd1a1a06878297c614150e4842f3a",
"sha256": "7ef96b3341857fdbb250b4714f947f8e91c1243d2bfbb9625cf145a62c8b824f"
},
"downloads": -1,
"filename": "unicon-24.3-cp38-cp38-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "393cd1a1a06878297c614150e4842f3a",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 14528215,
"upload_time": "2024-03-26T18:39:45",
"upload_time_iso_8601": "2024-03-26T18:39:45.300888Z",
"url": "https://files.pythonhosted.org/packages/5d/32/12ae91ccda43912cfd7241de43f9b6a2e5a36f5a276f76b1e430ced45ca5/unicon-24.3-cp38-cp38-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a71e0d51919d8f083ba783ce6be42827036a9ecec8c651d84599b4ef01c9cfc3",
"md5": "30077d976669a8d0dbd69648fca405c4",
"sha256": "ef3708b76b6d75c6441336581ee444e01fc78b2d2328ab05936235bc6d733fd0"
},
"downloads": -1,
"filename": "unicon-24.3-cp38-cp38-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "30077d976669a8d0dbd69648fca405c4",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 15121024,
"upload_time": "2024-03-26T18:39:48",
"upload_time_iso_8601": "2024-03-26T18:39:48.217213Z",
"url": "https://files.pythonhosted.org/packages/a7/1e/0d51919d8f083ba783ce6be42827036a9ecec8c651d84599b4ef01c9cfc3/unicon-24.3-cp38-cp38-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "86530a60be14dcf4a04619b4eec9c72733a34e87f4a8e77b7a61517d22ab26fc",
"md5": "db922c0653fefbb6c7ad25de1aa5d7b3",
"sha256": "db557d7eef4aeffd960889523986343ed9f3a23bc76d105be43a124b80490f14"
},
"downloads": -1,
"filename": "unicon-24.3-cp39-cp39-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "db922c0653fefbb6c7ad25de1aa5d7b3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 5255220,
"upload_time": "2024-03-26T18:39:50",
"upload_time_iso_8601": "2024-03-26T18:39:50.638124Z",
"url": "https://files.pythonhosted.org/packages/86/53/0a60be14dcf4a04619b4eec9c72733a34e87f4a8e77b7a61517d22ab26fc/unicon-24.3-cp39-cp39-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b44c7256ddc5725f597397c60b5dc5f863d382ee67629b472938448023b6b92e",
"md5": "2ee154e696d0540ebc3953a131073f00",
"sha256": "af9e28f94fa7a6ffab72647a6e61526b686a70e6cb29cfb75fa02263e9a9a7f7"
},
"downloads": -1,
"filename": "unicon-24.3-cp39-cp39-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "2ee154e696d0540ebc3953a131073f00",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 14091158,
"upload_time": "2024-03-26T18:39:53",
"upload_time_iso_8601": "2024-03-26T18:39:53.115883Z",
"url": "https://files.pythonhosted.org/packages/b4/4c/7256ddc5725f597397c60b5dc5f863d382ee67629b472938448023b6b92e/unicon-24.3-cp39-cp39-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f4532affa66492d9f03742929460862b8e19882624ccffb313c44d633ea563ac",
"md5": "9c08161358a87991a7cc7e7768f7f43f",
"sha256": "7bf31891efbb07c17c0208f83bab8cf513e82cbbee7b49fa98a0119bce5f82fb"
},
"downloads": -1,
"filename": "unicon-24.3-cp39-cp39-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9c08161358a87991a7cc7e7768f7f43f",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 13526136,
"upload_time": "2024-03-26T18:39:55",
"upload_time_iso_8601": "2024-03-26T18:39:55.897113Z",
"url": "https://files.pythonhosted.org/packages/f4/53/2affa66492d9f03742929460862b8e19882624ccffb313c44d633ea563ac/unicon-24.3-cp39-cp39-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2fbd04d4c59de1489f962fe049947d478db84148ad23bb1d3d5b98adf6f547b1",
"md5": "e5ee5545068a3588f961bb1f36dacbac",
"sha256": "fd17121983528a747b94fde3073af77efe60bf877d73e7ace71f86231e5effa2"
},
"downloads": -1,
"filename": "unicon-24.3-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "e5ee5545068a3588f961bb1f36dacbac",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 3076586,
"upload_time": "2024-03-26T18:39:58",
"upload_time_iso_8601": "2024-03-26T18:39:58.392657Z",
"url": "https://files.pythonhosted.org/packages/2f/bd/04d4c59de1489f962fe049947d478db84148ad23bb1d3d5b98adf6f547b1/unicon-24.3-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-26 18:39:15",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "unicon"
}