Genie - THE pyATS Standard Library
==================================
Genie is both a library framework and a test harness that facilitates rapid
development, encourage re-usable and simplify writing test automation. Genie bundled with
the modular architecture of pyATS framework accelerates and simplifies test
automation leveraging all the perks of the Python programming language in an
object-orienting fashion.
pyATS is an end-to-end testing ecosystem, specializing in data-driven and
reusable testing, and engineered to be suitable for Agile, rapid development
iterations. Extensible by design, pyATS enables developers start with small,
simple and linear test cases, and scale towards large, complex and asynchronous
test suites.
Genie was initially developed internally in Cisco, and is now available to the
general public starting early 2018 through `Cisco DevNet`_. Visit the Genie
home page at
https://developer.cisco.com/site/pyats/
.. _Cisco DevNet: https://developer.cisco.com/
Component Breakdown
-------------------
Conf
Sub-component of Genie that Configures topology through Python object
attributes, featuring a common object structure. These object's structures
means that they are compatible with all operating systems and Management
Interfaces (such as CLI/Yang/REST, etc.)
Ops
Sub-component of Genie that Represents the operational state of the
feature through object attributes. These object's structures means that
they are compatible with all operating systems and Management Interfaces
(such as CLI/Yang/REST, etc).
Harness
Sub-component of Genie which bring the concept of event driven
testing into the pyATS framework. With event driven testing, script and
testcases are derived dynamically based on selected triggers and
verification from the Genie SDK pool.
Utils
as its name suggests - various utilities used throughout the infrastructure.
Requirements
------------
Genie currently supports Python 3.4+ on Linux & Mac systems.
Windows platforms are not yet supported.
Quick Start
-----------
.. code-block:: console
# install genie as a whole
$ pip install genie
# to upgrade this package manually
$ pip install --upgrade genie
# to install alpha/beta versions, add --pre
$ pip install --pre genie
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
Example
-------
Examples showcasing various features & idioms of coding can be found here:
https://github.com/CiscoTestAutomation/examples
Raw data
{
"_id": null,
"home_page": "https://developer.cisco.com/pyats/",
"name": "genie",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "genie pyats test automation cisco netdevops",
"author": "Cisco Systems Inc.",
"author_email": "pyats-support-ext@cisco.com",
"download_url": null,
"platform": null,
"description": "Genie - THE pyATS Standard Library\n==================================\n\nGenie is both a library framework and a test harness that facilitates rapid\ndevelopment, encourage re-usable and simplify writing test automation. Genie bundled with\nthe modular architecture of pyATS framework accelerates and simplifies test\nautomation leveraging all the perks of the Python programming language in an\nobject-orienting fashion.\n\npyATS is an end-to-end testing ecosystem, specializing in data-driven and\nreusable testing, and engineered to be suitable for Agile, rapid development\niterations. Extensible by design, pyATS enables developers start with small,\nsimple and linear test cases, and scale towards large, complex and asynchronous\ntest suites.\n\nGenie was initially developed internally in Cisco, and is now available to the\ngeneral public starting early 2018 through `Cisco DevNet`_. Visit the Genie\nhome page at\n\n https://developer.cisco.com/site/pyats/\n\n.. _Cisco DevNet: https://developer.cisco.com/\n\n\nComponent Breakdown\n-------------------\n\nConf\n Sub-component of Genie that Configures topology through Python object\n attributes, featuring a common object structure. These object's structures\n means that they are compatible with all operating systems and Management\n Interfaces (such as CLI/Yang/REST, etc.)\n\nOps\n Sub-component of Genie that Represents the operational state of the\n feature through object attributes. These object's structures means that\n they are compatible with all operating systems and Management Interfaces\n (such as CLI/Yang/REST, etc).\n\nHarness\n Sub-component of Genie which bring the concept of event driven\n testing into the pyATS framework. With event driven testing, script and\n testcases are derived dynamically based on selected triggers and \n verification from the Genie SDK pool.\n\nUtils\n as its name suggests - various utilities used throughout the infrastructure.\n\nRequirements\n------------\n\nGenie currently supports Python 3.4+ on Linux & Mac systems. \nWindows platforms are not yet supported.\n\nQuick Start\n-----------\n\n.. code-block:: console\n \n # install genie as a whole\n $ pip install genie\n\n # to upgrade this package manually\n $ pip install --upgrade genie\n\n # to install alpha/beta versions, add --pre\n $ pip install --pre genie\n\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\nExample\n-------\n\nExamples showcasing various features & idioms of coding can be found here:\n\thttps://github.com/CiscoTestAutomation/examples\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "Genie: THE standard pyATS Library System",
"version": "24.7",
"project_urls": {
"Homepage": "https://developer.cisco.com/pyats/"
},
"split_keywords": [
"genie",
"pyats",
"test",
"automation",
"cisco",
"netdevops"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "164cd2e13fc04a653de08fc32883d66b0cbbafb673c3c8e6ac62d79d35bdafa9",
"md5": "edcdbec5bc7c064dfd9182c224164c54",
"sha256": "23340c99dd1358b80236f03f3cd068d82ce5f1544dd1145b7d2bc4daa6b4c9fb"
},
"downloads": -1,
"filename": "genie-24.7-cp310-cp310-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "edcdbec5bc7c064dfd9182c224164c54",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 10694948,
"upload_time": "2024-08-01T19:07:09",
"upload_time_iso_8601": "2024-08-01T19:07:09.691133Z",
"url": "https://files.pythonhosted.org/packages/16/4c/d2e13fc04a653de08fc32883d66b0cbbafb673c3c8e6ac62d79d35bdafa9/genie-24.7-cp310-cp310-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2cf2640d13d477f8ec003672b54a1652d1d4e170c9d73e2a198f98d608cc813f",
"md5": "f031c76d7577c1b2d58b1ff952a7647f",
"sha256": "545e1db0ca5ea511b54b26ec8c327449a51820a3336cabc0e131e1e8bb0e77b7"
},
"downloads": -1,
"filename": "genie-24.7-cp310-cp310-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "f031c76d7577c1b2d58b1ff952a7647f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 28483730,
"upload_time": "2024-08-01T19:07:14",
"upload_time_iso_8601": "2024-08-01T19:07:14.446761Z",
"url": "https://files.pythonhosted.org/packages/2c/f2/640d13d477f8ec003672b54a1652d1d4e170c9d73e2a198f98d608cc813f/genie-24.7-cp310-cp310-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "729662b1b9fd7431fa6916c1ebb6d9a0b9e7bf487241bdbc3b10f515aea317fb",
"md5": "7f98d1d7add6f822f9ae516bf3e6ec62",
"sha256": "54f08de6f60dd9f2153a22e2bc9be72dc8e03e71526cd704fe92fffbbfea3ad3"
},
"downloads": -1,
"filename": "genie-24.7-cp310-cp310-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7f98d1d7add6f822f9ae516bf3e6ec62",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 27164631,
"upload_time": "2024-08-01T19:07:18",
"upload_time_iso_8601": "2024-08-01T19:07:18.499955Z",
"url": "https://files.pythonhosted.org/packages/72/96/62b1b9fd7431fa6916c1ebb6d9a0b9e7bf487241bdbc3b10f515aea317fb/genie-24.7-cp310-cp310-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2547504c4ce8d57e4b3a68783ba6eb54c0c9aa3d7391facacfd335ed4b2ff8f6",
"md5": "09b75c4878b1089ff4967e8cff9a8e36",
"sha256": "851050c7fdb920b864bbd5e3ea14faea29f7203dfdfa9b57a778711fd645d0c1"
},
"downloads": -1,
"filename": "genie-24.7-cp311-cp311-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "09b75c4878b1089ff4967e8cff9a8e36",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 10775027,
"upload_time": "2024-08-01T19:07:21",
"upload_time_iso_8601": "2024-08-01T19:07:21.451779Z",
"url": "https://files.pythonhosted.org/packages/25/47/504c4ce8d57e4b3a68783ba6eb54c0c9aa3d7391facacfd335ed4b2ff8f6/genie-24.7-cp311-cp311-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6d6ae14cacffd595f3fc57668e6a7300b84f3ab037bf428a6661e7aace493efb",
"md5": "c7a2f154d89d4ca0e93dc4104bf21181",
"sha256": "311ebc400d32d46815edbd53685e5ef58f78e8f18b8d0886b15da02edc11b7fb"
},
"downloads": -1,
"filename": "genie-24.7-cp311-cp311-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "c7a2f154d89d4ca0e93dc4104bf21181",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 31662957,
"upload_time": "2024-08-01T19:07:24",
"upload_time_iso_8601": "2024-08-01T19:07:24.809517Z",
"url": "https://files.pythonhosted.org/packages/6d/6a/e14cacffd595f3fc57668e6a7300b84f3ab037bf428a6661e7aace493efb/genie-24.7-cp311-cp311-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b3f3debb0b43dc2f5f41f3c2a1ab0c877c51dfbfc7257d64e32ab333cd937741",
"md5": "68355b794c7075edd943af04c49df39e",
"sha256": "151ada485a77b714dfecf5c89e3c2ab495e04a48d980a69bc28468683fd68490"
},
"downloads": -1,
"filename": "genie-24.7-cp311-cp311-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "68355b794c7075edd943af04c49df39e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 29304223,
"upload_time": "2024-08-01T19:07:28",
"upload_time_iso_8601": "2024-08-01T19:07:28.869534Z",
"url": "https://files.pythonhosted.org/packages/b3/f3/debb0b43dc2f5f41f3c2a1ab0c877c51dfbfc7257d64e32ab333cd937741/genie-24.7-cp311-cp311-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "95bfeaf635d4d7f40d0173e8daa087004f32380a30e1db91a741285445478cff",
"md5": "03845c4fd6b5a950f85c1c5b3bf8778d",
"sha256": "0c0f4a3c214c6fabc53a344b3deb009e749a512eb7594fabe487bca3c2656d9c"
},
"downloads": -1,
"filename": "genie-24.7-cp312-cp312-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "03845c4fd6b5a950f85c1c5b3bf8778d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 10588168,
"upload_time": "2024-08-01T19:07:32",
"upload_time_iso_8601": "2024-08-01T19:07:32.341681Z",
"url": "https://files.pythonhosted.org/packages/95/bf/eaf635d4d7f40d0173e8daa087004f32380a30e1db91a741285445478cff/genie-24.7-cp312-cp312-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "90bd0e2123ec36fa3a80b7d343b2c64f5e806bdeed14a5e826570be5809916c3",
"md5": "1b11c66fe9430c56955fab890e3d2644",
"sha256": "35975068c24efb6698b229335c40c296fdf7fd9b14c8ed4c374a9acc90c7f3e7"
},
"downloads": -1,
"filename": "genie-24.7-cp312-cp312-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "1b11c66fe9430c56955fab890e3d2644",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 31239411,
"upload_time": "2024-08-01T19:07:36",
"upload_time_iso_8601": "2024-08-01T19:07:36.337341Z",
"url": "https://files.pythonhosted.org/packages/90/bd/0e2123ec36fa3a80b7d343b2c64f5e806bdeed14a5e826570be5809916c3/genie-24.7-cp312-cp312-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "124bf6fd5cb08c1cba7f9a5d63e4691ee37ed4b2a1226e97990a7d817a459fb3",
"md5": "d0b8b9b67844edea9337cf7f002bd85c",
"sha256": "1698153d5ef5a60614921b3c985c35f116bb21243987cef5b6107538aa4e9923"
},
"downloads": -1,
"filename": "genie-24.7-cp312-cp312-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "d0b8b9b67844edea9337cf7f002bd85c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 29131947,
"upload_time": "2024-08-01T19:13:54",
"upload_time_iso_8601": "2024-08-01T19:13:54.948289Z",
"url": "https://files.pythonhosted.org/packages/12/4b/f6fd5cb08c1cba7f9a5d63e4691ee37ed4b2a1226e97990a7d817a459fb3/genie-24.7-cp312-cp312-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34c1b9a33e9ca04431ae948787077febc5b24e0fd0e66c77f12df526ff2f9bd0",
"md5": "69209eee3ced2ac1db50fed4b0a5e324",
"sha256": "ff3d478997b52e15dfcef549fab8f6fd8f81dab5aae4bea45b70d70732b8d7f2"
},
"downloads": -1,
"filename": "genie-24.7-cp38-cp38-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "69209eee3ced2ac1db50fed4b0a5e324",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 10679582,
"upload_time": "2024-08-01T19:13:58",
"upload_time_iso_8601": "2024-08-01T19:13:58.594550Z",
"url": "https://files.pythonhosted.org/packages/34/c1/b9a33e9ca04431ae948787077febc5b24e0fd0e66c77f12df526ff2f9bd0/genie-24.7-cp38-cp38-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c4995d06a57599e46ee328c53214e85da3aeb3a9a791bbb72bc42df83a2d9b5e",
"md5": "fba20b0c28e39bc6f14e2367a5bec8cb",
"sha256": "47e01526220e5b9782244d67ecca13c1123e448a3c349f0c039b6533f013ca2a"
},
"downloads": -1,
"filename": "genie-24.7-cp38-cp38-manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "fba20b0c28e39bc6f14e2367a5bec8cb",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 29278288,
"upload_time": "2024-08-01T19:14:02",
"upload_time_iso_8601": "2024-08-01T19:14:02.293944Z",
"url": "https://files.pythonhosted.org/packages/c4/99/5d06a57599e46ee328c53214e85da3aeb3a9a791bbb72bc42df83a2d9b5e/genie-24.7-cp38-cp38-manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1bfa1544de32629607e376d3dd2ecae7b071a1f750d00da3be7b4c5e5cda3910",
"md5": "bf73bfab287899fe422b6c8d639ae725",
"sha256": "1f1004a1ab1f1847af111fb711b5e7aa0d1b0fade355fd5d2c211bdd11ff6eac"
},
"downloads": -1,
"filename": "genie-24.7-cp38-cp38-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "bf73bfab287899fe422b6c8d639ae725",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8",
"size": 32308904,
"upload_time": "2024-08-01T19:14:06",
"upload_time_iso_8601": "2024-08-01T19:14:06.230878Z",
"url": "https://files.pythonhosted.org/packages/1b/fa/1544de32629607e376d3dd2ecae7b071a1f750d00da3be7b4c5e5cda3910/genie-24.7-cp38-cp38-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3a7cd508fb85a2bdb7f014718adc3d8955e2ca81e1a7a613bcbd0f74780c4bfb",
"md5": "5e1b96236abe5baa48c888f549d41d0b",
"sha256": "7871652ed45ac5d503b7d48b06bcc71a0a833da30cb6ff4c434406e6fa05ab29"
},
"downloads": -1,
"filename": "genie-24.7-cp39-cp39-macosx_11_0_universal2.whl",
"has_sig": false,
"md5_digest": "5e1b96236abe5baa48c888f549d41d0b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 10712315,
"upload_time": "2024-08-01T19:14:09",
"upload_time_iso_8601": "2024-08-01T19:14:09.686783Z",
"url": "https://files.pythonhosted.org/packages/3a/7c/d508fb85a2bdb7f014718adc3d8955e2ca81e1a7a613bcbd0f74780c4bfb/genie-24.7-cp39-cp39-macosx_11_0_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7ab569fd08dd7f53f8944fbe9eaa8e2eceb4bfcd6b4f1c9fb0aa05240d573120",
"md5": "85fa10d5841e6cd29cd6c8c5279d3a03",
"sha256": "06cdb27effd946203b2cdb9a5fcab66c59b95bdcd5586886d94b27aab57607dd"
},
"downloads": -1,
"filename": "genie-24.7-cp39-cp39-manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "85fa10d5841e6cd29cd6c8c5279d3a03",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 27165176,
"upload_time": "2024-08-01T19:14:12",
"upload_time_iso_8601": "2024-08-01T19:14:12.997085Z",
"url": "https://files.pythonhosted.org/packages/7a/b5/69fd08dd7f53f8944fbe9eaa8e2eceb4bfcd6b4f1c9fb0aa05240d573120/genie-24.7-cp39-cp39-manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5b7f54a91da54ad253a18db24ff13289c8ecc222f811483672fef8a9aec71f09",
"md5": "6727529b1d88188dd4eb84e53e68ec64",
"sha256": "6098f272b484d6b132d9b243e613cf8e435441fc80823de41f2df831f2c66515"
},
"downloads": -1,
"filename": "genie-24.7-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "6727529b1d88188dd4eb84e53e68ec64",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 6198421,
"upload_time": "2024-08-01T19:14:16",
"upload_time_iso_8601": "2024-08-01T19:14:16.550439Z",
"url": "https://files.pythonhosted.org/packages/5b/7f/54a91da54ad253a18db24ff13289c8ecc222f811483672fef8a9aec71f09/genie-24.7-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-01 19:07:09",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "genie"
}