{ "info": { "author": "Spirent.com", "author_email": "itest@spirent.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: Other/Proprietary License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Software Development :: Testing" ], "description": "# Spirent Session Control Library\n\nThe Spirent Session Control Library is used to control iTest sessions to enable quick and easy interaction with devices from a Python script. These target devices/APIs may be defined either on the fly, or via session profiles defined in iTest projects.\n\n## How to run\n\nThe simplest way is as follows:\n\n* Download the latest Velocity Agent\n\n* Run it like this\n ./velocity-agent --agentVelocityHost localhost --sfAgentServerPort 9005 --listeningMode --sfAgentDisableSslValidation\n\n* Write python scripts using SLC\n Example script could be found and executed here:\n `python example.py`\n\n## Documentation\n\n### Modes of Operation\n\nThe Python Session Control Library is used to control iTest sessions to enable quick and easy interaction with devices from a Python script. These target devices/APIs may be defined either on the fly, or via session profiles defined in iTest projects.\n\nThe library may operate in either one of these modes:\n\n* Standalone on a workstation\n* Connected to an iTest GUI instance\n\n#### Initialization\n\n##### Standalone\n\nEnsure that the following environment variables are set on the workstation that the library is installed on and that the script will run on:\n\n```bash\n SPIRENT_SLC_HOST=local\n ITAR_PATH=path #to folder where iTars are placed\n```\n\nIt is also legal to not have the `SPIRENT_SLC_HOST` environment variable, in which case local is assumed.\n\n`ITAR_PATH` is set on the local environment to point to a folder where iTars and exploded project folders are placed, so that the local execution agent can find projects. It is not necessary to set this when connecting to a running instance of iTest GUI or Velocity.\n\n```python\nfrom SpirentSLC import SLC\nslc = SLC.init()\n```\n\nOnce the library is imported, calling `SLC.init()` will initialize the underlying execution agent as a background process which the library will communicate with. An object is returned which is the entry point for further communication with the library. In this release only one `init()` call may be made within one Python interpreter context.\n\nAn exception will be thrown if unable to initialize the library.\n\n##### iTest GUI\n\nEnsure that the following environment variables are set on the workstation that the library is installed on and that the script will run on:\n\n```bash\nSPIRENT_SLC_HOST=localhost:port # must be host and port of the configured instance of iTest GUI\nSPIRENT_SLC_PASSWORD=xxxx\n```\n\nAn instance of iTest must be running on the specified host and must be configured to accept connections at the desired port. A password may be optionally configured to restrict access to that instance, in which case the `SPIRENT_SLC_PASSWORD` environment variable must be specified, or provided in the init() call.\n\n```python\nfrom SpirentSLC import SLC\nslc = SLC.init() # will take all values from environment variables\n```\n\nalternatively values may be provided in the init() call:\n\n```python\nslc = SLC.init(host='localhost:3030', password='xxx')\n```\n\nAn exception will be thrown if the library is unable to connect to the iTest GUI instance.\n\n##### Automatic Agent launching\n\nBy specification `SPIRENT_SLC_AGENT_PATH` environment variable pointing to iTest Agent folder it is possible to configure SLC to automatically start instance of new agent.\n\n```bash\nSPIRENT_SLC_AGENT_PATH=path #to agent folder\nITAR_PATH=path #to folder where iTars are placed\n````\n\n```python\nfrom SpirentSLC import SLC\nslc = SLC.init()\n```\n\n##### Working With Projects\n\nOnce initialized, the library will have access to all available iTest Projects.\nEach project contains a number of entities that can be addressed via code.\nThese include Session Profiles, and Topologies.\n\n###### Listing Projects\n\n```python\nslc.list()\n==> ['topologies', 'session_profiles']\n```\n\nAll spaces in the name of a project or any other characters that are not legal in a Python identifier will be replaced by underscores in the returned values.\n\n###### Importing Projects\n\nProjects need to be imported first before being used. Since \"import\" is a reserved word in Python we will call it \"open\". This can be done via the following code:\n\n```python\nproj = slc.open('project_name')\n```\n\nMultiple projects can be imported if needed\n\n```python\nsessions = slc.open('my_sessions')\nresponse_maps = slc.open('response_maps')\n```\n\n###### Querying a Project\n\n* list all the usable topologies and session profiles in the project\n ```python\n proj.list()\n ==> ['dut1_ffsp', 'lab1_setup_tbml']\n ```\n* list other types of assets, such as parameter files and response maps\n ```python\n proj.list(parameter_file=True, response_map=True)\n ==> ['dut1_ffsp', 'lab1_setup_tbml', 'main_setup_ffpt', 'response_map1_ffrm']\n ```\n* show all QuickCalls available on a given session profile\n ```python\n proj.dut1_ffsp.list()\n ==> {\n 'init_routes': {\n 'all': 'True if all routes should be initialized'\n },\n 'do_something_cool': {\n 'param': 'Description of parameter'\n }\n }\n ```\n* access help on QuickCalls on a session attached to a resource in a topology\n ```python\n proj.lab1_setup_tbml.router1.ssh.list()\n ==> { ... same as above }\n ```\n\n* access the list of parameters for a specific QuickCall\n ```python\n proj.dut1_ffsp.list('init_routes')\n ==> { 'all': 'True if all routes should be initialized' }\n ```\n Built in session actions are not listed, only QuickCalls if a QuickCall library is attached to the session profile.\n\n If the user is accessing a built-in session type such as Telnet or SSH, they may still invoke the actions, but they will not be listed by the list() call.\n\n It should be noted that all displayed QuickCall names will by transformed into snake-case to conform to Python naming conventions.\n Working With Sessions\n\n ###### Opening a Session\n\n Sessions are opened either directly on a session profile or local topology.\n* open session on a session profile\n ```python\n s1 = proj.dut1_ffsp.open()\n ```\n\n* open session, giving required parameters\n ```python\n s1 = proj.rest_session_ffsp.open(url='https://my_site.my_domain.com', accept_all_cookies=True)\n ```\n* open session, using parameter file\n ```python\n s1 = proj.rest_session_ffsp.open(parameter_file=proj.main_setup_ffpt)\n ```\n* open session, specify a response map to use\n ```python\n s1 = proj.rest_session_ffsp.open(response_map=proj.response_map1_ffrm)\n ```\n* open session, specify a reponse map library to use\n ```python\n s1 = proj.rest_session_ffsp.open(response_map_lib=resp_lib)\n ```\n* open session, specifying additional session properties\n ```python\n s1 = proj.rest_session_ffsp.open(properties={'authentication.authentication': 'Basic', 'authentication.user': 'me', 'authentication.password': 'totes_secret!'})\n ```\n* open session on a resource in a local topology\n ```python\n s1 = proj.lab1_setup_tbml.router1.ssh.open(...) # may use any combination of parameters, parameter_file, agent_requirements, properties\n ```\n\n###### Opening a Native Session Type Directly (Not supported in 6.2)\n\nIt is possible to open a session directly without having a underlying session profile or topology file to start with.\n\n* open the native ssh session type directly, supplying required session profile information\n ```python\n s1 = slc.sessions.ssh.open(ip_address='10.20.30.40')\n ```\n Session Information\n Once a session is opened it is possible to find out some basic information about where the session is being handled. This is done via the agent property of a session object.\n ```python\n s1.agent\n ==> {\n 'agent_type': 'local', # may be local, iTestGUI, or Velocity\n 'name': 'agent_identifier',\n 'capabilities': {...} # set of agent capabilities\n }\n ```\n\n##### Invoking Actions on Session\n\nAn active session has a number of actions defined on it, which may be either built-in actions or QuickCalls defined on that session type. Any of those can be invoked on the session.\n\n* invoke the init_routes QuickCall with one parameter\n ```python\n response = s1.init_routes(all=True)\n ```\n* invoke a built-in action with a specific response map (which may override what was set for the session as a whole)\n ```python\n response = my_ssh_session.command('ls', response_map=proj.response_map_ls_ffrm)\n ```\n Response\n The resulting response object can be used to query details about the action execution as well as the response itself:\n* duration of execution and any error status\n ```python\n response.duration\n ==> 3 # number of seconds\n response.result\n ==> 'success' # may be success, failed, timeout\n ```\n\n* textual rendering of the response\n ```python\n response.text\n ==> 'textual response data'\n ```\n\n* if the response is json, it is easier to grab the json directly as a dictionary\n ```python\n response.json\n ==> instance of dictionary # null if not available as json\n ```\n\n* likewise if the response is xml it can be accessed directly as XML\n ```python\n response.xml\n ==> instance of xml.etree.ElementTree # null if not available as XML\n\n response.data\n ==> { dictionary of elements that exist in step structured data }\n ```\n\n##### Queries\n\nThe response object may also have queries defined on it - methods that query the structured data and return values. Queries may be auto-generated in iTest or be defined in response maps.\n\n* list the set of queries that exist for the response\n ```python\n response.queries()\n ==> [ 'is_empty()', 'counter_by_row(row)' ]\n ```\n\n* invoke query\n ```python\n response.counter_by_row(3)\n ==> 35\n ```\n Query names are always converted to snake case.\n\n##### Closing a Session\n\nSessions should be closed when no longer needed, as they consume resources on the agent (and on Velocity if being used.) It is especially important to close sessions if sessions are being opened within a loop.\n\n* close session and free resources\n ```python\n s1.close()\n ```\n\n##### Shutdown\n\nProper shutdown of the library is important to ensure timely release of resources.\n\n* release all resources used by the library\n ```python\n slc.close()\n ```\n Resources released include all remaining open sessions, all reservations initiated by the script, and (if local) the underlying execution agent.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "SpirentSLC", "package_url": "https://pypi.org/project/SpirentSLC/", "platform": "", "project_url": "https://pypi.org/project/SpirentSLC/", "project_urls": null, "release_url": "https://pypi.org/project/SpirentSLC/8.0.0/", "requires_dist": null, "requires_python": "", "summary": "Spirent Session Control Library", "version": "8.0.0" }, "last_serial": 5740850, "releases": { "1.0.0.dev10": [ { "comment_text": "", "digests": { "md5": "d212e57c69702a9bd362a5f70b92cc96", "sha256": "be1f0c75fe321a064c8ea2056593a62d9f36fa359af7625a505ae661c600f7b6" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev10.tar.gz", "has_sig": false, "md5_digest": "d212e57c69702a9bd362a5f70b92cc96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84021, "upload_time": "2017-11-02T06:15:25", "url": "https://files.pythonhosted.org/packages/57/07/b26e4344f7b349e5f8af22522130d7f5dae5a755830973bb4682cac8b884/SpirentSLC-1.0.0.dev10.tar.gz" } ], "1.0.0.dev11": [ { "comment_text": "", "digests": { "md5": "1741bbdd7fe7d5c70228de97b5bbfb65", "sha256": "867fbdd6aab16faef56ba5138c57f8ca0366fe4d3683ff0baed6281ac8412aaa" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev11.tar.gz", "has_sig": false, "md5_digest": "1741bbdd7fe7d5c70228de97b5bbfb65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84071, "upload_time": "2017-11-07T08:45:13", "url": "https://files.pythonhosted.org/packages/39/54/f8d2e04328fada6989d5ebf14fdd24c716c69299b4bd15e2769c486f3673/SpirentSLC-1.0.0.dev11.tar.gz" } ], "1.0.0.dev12": [ { "comment_text": "", "digests": { "md5": "e0144b7f4aaf3a085d7dfd7e85ae2db2", "sha256": "1dff225cb6a8b3e953e708f8b5996d4e5bbb9eac40c905ff406a55ba4b2f5762" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev12.tar.gz", "has_sig": false, "md5_digest": "e0144b7f4aaf3a085d7dfd7e85ae2db2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84118, "upload_time": "2017-11-08T08:24:13", "url": "https://files.pythonhosted.org/packages/f9/ff/947a5970e68b0d41f2c65befa6536594a12ec164d10bdc0682c130f1381f/SpirentSLC-1.0.0.dev12.tar.gz" } ], "1.0.0.dev13": [ { "comment_text": "", "digests": { "md5": "e8d44c54d2ee9b563a9cb3eedfed8b36", "sha256": "37e612b6aacf8ab63a0e701212c0a2df9afc224463ae1c2b9e960f56017455d3" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev13.tar.gz", "has_sig": false, "md5_digest": "e8d44c54d2ee9b563a9cb3eedfed8b36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84294, "upload_time": "2017-11-09T09:49:29", "url": "https://files.pythonhosted.org/packages/81/a8/48d48a113b8a55d5a183c674c44a5bb58fecc8d79e363b5585749b58942f/SpirentSLC-1.0.0.dev13.tar.gz" } ], "1.0.0.dev14": [ { "comment_text": "", "digests": { "md5": "8ddd13e19a927d1ad6a9442d9ca2f59f", "sha256": "15bac33cca5a5962410601c989122772ed013f2b355b95c58884868c4a0153bf" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev14.tar.gz", "has_sig": false, "md5_digest": "8ddd13e19a927d1ad6a9442d9ca2f59f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84343, "upload_time": "2017-11-09T11:05:22", "url": "https://files.pythonhosted.org/packages/77/4c/bba0c6b986bf24208804515c1204f14e25f756b9c563b5c9548cecf18516/SpirentSLC-1.0.0.dev14.tar.gz" } ], "1.0.0.dev15": [ { "comment_text": "", "digests": { "md5": "7e171a5b3faad19843e772596b8be9f1", "sha256": "e4db4dae0d29ed11950d017ef01968da7934cd0e2f5ab8f9ca3b286e272b505f" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev15.tar.gz", "has_sig": false, "md5_digest": "7e171a5b3faad19843e772596b8be9f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84462, "upload_time": "2017-11-13T13:35:37", "url": "https://files.pythonhosted.org/packages/5a/e3/045df38fba7202b147aec88a58c5f5b1fd2c754eb34572ab32648acedda7/SpirentSLC-1.0.0.dev15.tar.gz" } ], "1.0.0.dev16": [ { "comment_text": "", "digests": { "md5": "69747b2c8c6befdc05dbf4594d71abbc", "sha256": "8a85ab7a9a4235c40b15c237b91b9f42e1c6d4ee3ee0c6e71003a9bfcab79285" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev16.tar.gz", "has_sig": false, "md5_digest": "69747b2c8c6befdc05dbf4594d71abbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84479, "upload_time": "2017-11-14T15:06:21", "url": "https://files.pythonhosted.org/packages/37/bc/0e404d95bb49157cad9c584dea33efbeeb51679397204439b1b0dd226ab2/SpirentSLC-1.0.0.dev16.tar.gz" } ], "1.0.0.dev17": [ { "comment_text": "", "digests": { "md5": "58652472c18cee15b3d9bbe97368367b", "sha256": "858564312fc757fe11c055fd85e4354a8ff572fb57154fb2ad52f32160f13050" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev17.tar.gz", "has_sig": false, "md5_digest": "58652472c18cee15b3d9bbe97368367b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84275, "upload_time": "2017-11-15T16:42:02", "url": "https://files.pythonhosted.org/packages/68/87/72d6774686c28e661530b068b57e56e79c0669d57127077f00c7a63703a5/SpirentSLC-1.0.0.dev17.tar.gz" } ], "1.0.0.dev18": [ { "comment_text": "", "digests": { "md5": "5119b7b44c1a7cb49b440ac64202ed5b", "sha256": "a469bac250f1d1942782a12ccf10d84684f68c4563a9b682e9aa24957063a46f" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev18.tar.gz", "has_sig": false, "md5_digest": "5119b7b44c1a7cb49b440ac64202ed5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84302, "upload_time": "2017-11-20T10:17:39", "url": "https://files.pythonhosted.org/packages/df/7a/0e02ff95697345849dbf4cfeba86d706d16f19138e4379dce81561dfc0e2/SpirentSLC-1.0.0.dev18.tar.gz" } ], "1.0.0.dev19": [ { "comment_text": "", "digests": { "md5": "18fcaf81c7116d09c36639643fbd1f40", "sha256": "abde7369efc2008cc181daf595a4c7888f761bd83bca0c54413926460c00fc0c" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev19.tar.gz", "has_sig": false, "md5_digest": "18fcaf81c7116d09c36639643fbd1f40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84825, "upload_time": "2017-11-27T09:18:59", "url": "https://files.pythonhosted.org/packages/cd/1f/e3f4ae97d2e39713e6eca6dbd28d228b26a39fddc13d8874f448b32d8385/SpirentSLC-1.0.0.dev19.tar.gz" } ], "1.0.0.dev2": [ { "comment_text": "", "digests": { "md5": "a119a573c226bf47966904368c32492e", "sha256": "479cf4b2bf91df7d3ed7153a25415dd696880336f2bb898b5bd3e010711bd534" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev2.tar.gz", "has_sig": false, "md5_digest": "a119a573c226bf47966904368c32492e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70495, "upload_time": "2017-09-08T17:23:24", "url": "https://files.pythonhosted.org/packages/af/25/a06500921ec25b31208bb40244b948339bea31ad1a9eca23fe0742062bdb/SpirentSLC-1.0.0.dev2.tar.gz" } ], "1.0.0.dev20": [ { "comment_text": "", "digests": { "md5": "aa7514c2fefaf85bad6dcb437c12bfd4", "sha256": "c8c1944202f917c9bef0ee5fab416a5334e9399e58c286a158cee1a7b37ef005" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev20.tar.gz", "has_sig": false, "md5_digest": "aa7514c2fefaf85bad6dcb437c12bfd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84858, "upload_time": "2017-11-28T16:13:54", "url": "https://files.pythonhosted.org/packages/dd/0c/3d926f9c61bee9629dbb55c405f971fc5c3432e17c14e811e214a39a7d65/SpirentSLC-1.0.0.dev20.tar.gz" } ], "1.0.0.dev3": [ { "comment_text": "", "digests": { "md5": "cbbeb272ae8a1768ce4e691f71910959", "sha256": "65cf3c2749169b48167c46a86b46029bae3c97223938eaf08a8bdee65825f777" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev3.tar.gz", "has_sig": false, "md5_digest": "cbbeb272ae8a1768ce4e691f71910959", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75876, "upload_time": "2017-09-15T16:35:38", "url": "https://files.pythonhosted.org/packages/2a/d4/fe93a78a68a3ba113371479bd7b8e2f0710d042dbaee8eeba0c1ad1d8e4c/SpirentSLC-1.0.0.dev3.tar.gz" } ], "1.0.0.dev4": [ { "comment_text": "", "digests": { "md5": "67554f34991c567ee232f669778b5293", "sha256": "15e736f77d06084ae34bf1d56944d92fda184041274c7a105e223e0841d569a1" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev4.tar.gz", "has_sig": false, "md5_digest": "67554f34991c567ee232f669778b5293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76275, "upload_time": "2017-09-15T17:25:14", "url": "https://files.pythonhosted.org/packages/13/bf/34e6731deb43953c903bae3f9ba114a8fab7a58a65f305ce6450bc4e7f30/SpirentSLC-1.0.0.dev4.tar.gz" } ], "1.0.0.dev5": [ { "comment_text": "", "digests": { "md5": "5df6bc15f1f4e29ef3510ff5407edfaa", "sha256": "59f9ca4119fa83eecaccc80b22179284b61cb936ad7223c9b1cade1da6f415c7" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev5.tar.gz", "has_sig": false, "md5_digest": "5df6bc15f1f4e29ef3510ff5407edfaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79230, "upload_time": "2017-09-26T11:31:45", "url": "https://files.pythonhosted.org/packages/37/90/544494d7250509eb14b7744809a724cd1de7fd240017e570d37a78460996/SpirentSLC-1.0.0.dev5.tar.gz" } ], "1.0.0.dev6": [ { "comment_text": "", "digests": { "md5": "03b059d41ba0bbcc336c11ce07fa682d", "sha256": "1f0edede6db99c5c47256dfa73886fef30cd1916c52fb85a7c95cdeb131e0186" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev6.tar.gz", "has_sig": false, "md5_digest": "03b059d41ba0bbcc336c11ce07fa682d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 78894, "upload_time": "2017-10-17T16:02:57", "url": "https://files.pythonhosted.org/packages/6b/34/9c5b8c2db5ab1a0c8ec04a7f6fe644c60e0c98114e927d93dd0a42b36b23/SpirentSLC-1.0.0.dev6.tar.gz" } ], "1.0.0.dev7": [ { "comment_text": "", "digests": { "md5": "b6e83ad120f66869d1ca09819a7da2db", "sha256": "b8157fdbbf8fe4f9b2fa4980efa8863c11dc161a3141941e7ee2d87a5ccd63c9" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev7.tar.gz", "has_sig": false, "md5_digest": "b6e83ad120f66869d1ca09819a7da2db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83248, "upload_time": "2017-10-26T06:48:58", "url": "https://files.pythonhosted.org/packages/7a/25/a31354d1310e1107eb6accdae285785793252541256718090acc29a597b9/SpirentSLC-1.0.0.dev7.tar.gz" } ], "1.0.0.dev8": [ { "comment_text": "", "digests": { "md5": "69efe4dcdcbb0bc7d56b36f09bec1452", "sha256": "e09352dd33f30112061504f6247381626e82a354fcd940ef3f166a2cb0e2c848" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev8.tar.gz", "has_sig": false, "md5_digest": "69efe4dcdcbb0bc7d56b36f09bec1452", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83256, "upload_time": "2017-10-26T06:56:55", "url": "https://files.pythonhosted.org/packages/0e/30/94480abf9db08162cf967cc5ef832da5e3279192b95535f68c804206dca3/SpirentSLC-1.0.0.dev8.tar.gz" } ], "1.0.0.dev9": [ { "comment_text": "", "digests": { "md5": "0fffead3425690c56d810250ad95049a", "sha256": "57a3b10e0b55575bee0980771ec734feef5a4b1ff02c39e9aa82d7504cf80471" }, "downloads": -1, "filename": "SpirentSLC-1.0.0.dev9.tar.gz", "has_sig": false, "md5_digest": "0fffead3425690c56d810250ad95049a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83950, "upload_time": "2017-10-30T11:15:14", "url": "https://files.pythonhosted.org/packages/61/3d/8c33a62aaf1206629ee623dad0c70342fe4fe7908d453e57237657cc95d1/SpirentSLC-1.0.0.dev9.tar.gz" } ], "1.0.0rc1": [ { "comment_text": "", "digests": { "md5": "0733239b7be6f1ded35bb72e1dde699e", "sha256": "39179567212bef1dad36f5f59fa73198c0ab4c50e07ddcc9a234f36f1f62c4e9" }, "downloads": -1, "filename": "SpirentSLC-1.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "0733239b7be6f1ded35bb72e1dde699e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84918, "upload_time": "2017-12-04T09:30:01", "url": "https://files.pythonhosted.org/packages/ab/74/def40d953e256463ca521cda0b1e5cdbf7ea0180823c45c73b9038f4a721/SpirentSLC-1.0.0rc1.tar.gz" } ], "1.0.0rc2": [ { "comment_text": "", "digests": { "md5": "7ab8638cb4aa6ca30f9621ffaf8701ef", "sha256": "b144d59bf5b02b4845f1d1db2b33669b46fd2fdc565fe5eee790ea93f565b4e3" }, "downloads": -1, "filename": "SpirentSLC-1.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "7ab8638cb4aa6ca30f9621ffaf8701ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84912, "upload_time": "2017-12-05T09:46:16", "url": "https://files.pythonhosted.org/packages/f9/c2/73788394c9c1b76d1e8087873fdcaa8fe138537e0139b5fa5f55548cb765/SpirentSLC-1.0.0rc2.tar.gz" } ], "7.1.1": [ { "comment_text": "", "digests": { "md5": "8dd28e47bc79296876e10e70689eee3a", "sha256": "3c3c1c4bf3e98175c66735145ef51c8c8cfc2378d7e8a0fe955f8ba06ec37ac2" }, "downloads": -1, "filename": "SpirentSLC-7.1.1.tar.gz", "has_sig": false, "md5_digest": "8dd28e47bc79296876e10e70689eee3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90100, "upload_time": "2018-06-15T12:55:15", "url": "https://files.pythonhosted.org/packages/b2/84/d31fb3c301eabccc4194d488d5398b2a6fc25eb5f866c5a588ac872bea4d/SpirentSLC-7.1.1.tar.gz" } ], "7.2.0": [ { "comment_text": "", "digests": { "md5": "110842390f29755ca268f53094fef462", "sha256": "520a8188990b0e2389a1af3f769eeb0f8bbb0b73b5231d7cac186dd6f00b6ddf" }, "downloads": -1, "filename": "SpirentSLC-7.2.0.tar.gz", "has_sig": false, "md5_digest": "110842390f29755ca268f53094fef462", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94520, "upload_time": "2018-10-30T14:39:36", "url": "https://files.pythonhosted.org/packages/05/e9/34bea6ae33fc7b9dda7ed9789a1009cfa110c4db9da4ce5d317ae730b4f2/SpirentSLC-7.2.0.tar.gz" } ], "7.3.0": [ { "comment_text": "", "digests": { "md5": "56dd4e707df74145b3bd3c58e035ab7c", "sha256": "f372830dc94537cc3634afa31c71bd3fda112a338f5c16869b84b916e9cd0735" }, "downloads": -1, "filename": "SpirentSLC-7.3.0.tar.gz", "has_sig": false, "md5_digest": "56dd4e707df74145b3bd3c58e035ab7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96877, "upload_time": "2019-03-24T05:10:44", "url": "https://files.pythonhosted.org/packages/d2/2d/c34941da6b92712d496ee8d28bdbceb15d35920b0199141a2bbc4eb3692d/SpirentSLC-7.3.0.tar.gz" } ], "7.3.0rc1": [ { "comment_text": "", "digests": { "md5": "caf4f9fda45b0224ee71fb4a19df848f", "sha256": "97b4a74f1836a115e8cfaf3e7a2a98e7c1386f3629fdf87208fba3e87bbb4b36" }, "downloads": -1, "filename": "SpirentSLC-7.3.0rc1.tar.gz", "has_sig": false, "md5_digest": "caf4f9fda45b0224ee71fb4a19df848f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96839, "upload_time": "2019-03-11T08:14:39", "url": "https://files.pythonhosted.org/packages/78/85/b8e85bc7ad6d16af0bac804b42e7aff7f01394326119f5c10fb8620880d1/SpirentSLC-7.3.0rc1.tar.gz" } ], "7.3.1": [ { "comment_text": "", "digests": { "md5": "a859885773277bd75bedce963ffe995d", "sha256": "98e1842b9096d41ac78f14eff91cd0a77f01e980f2b9fe1cdfc3aa78366ed8bd" }, "downloads": -1, "filename": "SpirentSLC-7.3.1.tar.gz", "has_sig": false, "md5_digest": "a859885773277bd75bedce963ffe995d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97072, "upload_time": "2019-04-09T07:18:01", "url": "https://files.pythonhosted.org/packages/ec/92/b03f266911839200b099b5e4e7c63b42342a966111c7b9d5cd4c54e736ef/SpirentSLC-7.3.1.tar.gz" } ], "8.0.0": [ { "comment_text": "", "digests": { "md5": "64f561b2b4d6357efedcbbdf96251c9e", "sha256": "4f8564225acec1be720b00867f74394d0efe541649ed091e41eabc629759358a" }, "downloads": -1, "filename": "SpirentSLC-8.0.0.tar.gz", "has_sig": false, "md5_digest": "64f561b2b4d6357efedcbbdf96251c9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99291, "upload_time": "2019-08-28T06:07:41", "url": "https://files.pythonhosted.org/packages/37/04/71a1e64e88b6eb16c01ed8ba6e80b4cd8115b09e2a25a07d961f0a022719/SpirentSLC-8.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "64f561b2b4d6357efedcbbdf96251c9e", "sha256": "4f8564225acec1be720b00867f74394d0efe541649ed091e41eabc629759358a" }, "downloads": -1, "filename": "SpirentSLC-8.0.0.tar.gz", "has_sig": false, "md5_digest": "64f561b2b4d6357efedcbbdf96251c9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99291, "upload_time": "2019-08-28T06:07:41", "url": "https://files.pythonhosted.org/packages/37/04/71a1e64e88b6eb16c01ed8ba6e80b4cd8115b09e2a25a07d961f0a022719/SpirentSLC-8.0.0.tar.gz" } ] }