{ "info": { "author": "Sam Schott", "author_email": "ss2151@cam.ac.uk", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9" ], "description": "[![PyPI Release](https://img.shields.io/pypi/v/keithley2600.svg)](https://pypi.org/pypi/keithley2600/)\n[![Downloads](https://pepy.tech/badge/keithley2600)](https://pepy.tech/project/keithley2600)\n[![Build Status](https://travis-ci.com/OE-FET/keithley2600.svg?branch=master)](https://travis-ci.com/OE-FET/keithley2600)\n[![Documentation Status](https://readthedocs.org/projects/keithley2600/badge/?version=latest)](https://keithley2600.readthedocs.io/en/latest/?badge=latest)\n\n# keithley2600\n\nA full Python driver for the Keithley 2600B series of source measurement units. An\naccompanying GUI is provided by the sister project\n[keithleygui](https://github.com/OE-FET/keithleygui). Documentation is available at\n[https://keithley2600.readthedocs.io](https://keithley2600.readthedocs.io).\n\n## About\n\nThis driver provides access to base commands and higher level functions such as IV\nmeasurements, transfer and output curves, etc. Base commands replicate the functionality\nand syntax from the Keithley's internal TSP Lua functions. This is possible because the\nLua programming language has a very limited syntax which can be represented by a subset\nof Python syntax.\n\nAll Keithley commands are dynamically queried from the Keithley itself after a\nsuccessful connection. This means that essentially all Keithley instruments which use\nTSP scripting are supported and any commands introduced in the future will be recognised\nautomatically (barring changes to the Lua syntax itself). Please refer to the respective\nreference manuals for a list of commands available on a particular model, for instance the\n[Keithley 2600B reference manual](https://www.tek.com/keithley-source-measure-units/smu-2600b-series-sourcemeter-manual-8).\n\nThis dynamic approach however means that most attributes will only be defined after\nconnecting to an instrument. Several higher level functions for current-voltage sweeps\nare defined by the driver itself and may use functionality which is not available on\nsome models. They have been tested with a Keithley 2612B.\n\n**Warning**: There are currently no checks for allowed arguments by the driver itself.\nPassing invalid arguments to a Keithley command will fail silently in Python but will\ndisplay an error message on the Keithley itself. To enable command checking, set the\nkeyword argument `raise_keithley_errors = True` in the constructor. When set, most\nKeithley errors will be raised as Python errors. This is done by reading the Keithley's\nerror queue after every command and will therefore result in some communication\noverhead.\n\n## Installation\n\nInstall the stable version from PyPi by running\n```console\n$ pip install keithley2600\n```\nor the latest development version from GitHub:\n```console\n$ pip install git+https://github.com/OE-FET/keithley2600\n```\n\n## Usage\n\nConnect to the Keithley 2600 and perform some base commands:\n```python\nfrom keithley2600 import Keithley2600\n\nk = Keithley2600('TCPIP0::192.168.2.121::INSTR')\n\nk.smua.source.output = k.smua.OUTPUT_ON # turn on SMUA\nk.smua.source.levelv = -40 # sets SMUA source level to -40V\nv = k.smua.measure.v() # measures and returns the SMUA voltage\ni = k.smua.measure.i() # measures current at smuA\n\nk.smua.measure.v(k.smua.nvbuffer1) # measures the voltage, stores the result in buffer\nk.smua.nvbuffer1.clear() # clears nvbuffer1 of SMUA\n```\nHigher level commands defined in the driver:\n\n```python\ndata = k.read_buffer(k.smua.nvbuffer1) # reads all entries from nvbuffer1 of SMUA\nerrs = k.read_error_queue() # gets all entries from error queue\n\nk.set_integration_time(k.smua, 0.001) # sets integration time in sec\nk.apply_voltage(k.smua, 10) # turns on and applies 10V to SMUA\nk.apply_current(k.smub, 0.1) # sources 0.1A from SMUB\nk.ramp_to_voltage(k.smua, 10, delay=0.1, stepSize=1) # ramps SMUA to 10V in steps of 1V\n\n# sweep commands\nk.voltage_sweep_single_smu(\n k.smua, range(0, 61), t_int=0.1, delay=-1, pulsed=False\n)\nk.voltage_sweep_dual_smu(\n smu1=k.smua,\n smu2=k.smub,\n smu1_sweeplist=range(0, 61),\n smu2_sweeplist=range(0, 61),\n t_int=0.1,\n delay=-1,\n pulsed=False,\n)\nk.transfer_measurement( ... )\nk.output_measurement( ... )\n```\n\n*Singleton behaviour:*\n\nOnce a Keithley2600 instance with a visa address `'address'` has been created, repeated\ncalls to `Keithley2600('address')` will return the existing instance instead of creating\na new one. This prevents the user from opening multiple connections to the same\ninstrument simultaneously and allows easy access to a Keithley2600 instance from\ndifferent parts of a program. For example:\n\n```python\n>>> from keithley2600 import Keithley2600\n>>> k1 = Keithley2600('TCPIP0::192.168.2.121::INSTR')\n>>> k2 = Keithley2600('TCPIP0::192.168.2.121::INSTR')\n>>> print(k1 is k2)\nTrue\n```\n\n*Data structures:*\n\nThe methods `voltage_sweep_single_smu` and `voltage_sweep_dual_smu` return lists with\nthe measured voltages and currents. The higher level commands `transfer_measurement` and\n`output_measurement` return `ResultTable` objects which are somewhat similar to pandas\ndataframes but include support for column units. `ResultTable` stores the measurement\ndata internally as a numpy array and provides information about column titles and units.\nIt also provides a dictionary-like interface to access columns by name, methods to load\nand save the data to text files, and live plotting of the data (requires matplotlib).\n\nFor example:\n```python\nimport time\nfrom keithley2600 import Keithley2600, ResultTable\n\nk = Keithley2600('TCPIP0::192.168.2.121::INSTR')\n\n# create ResultTable with two columns\nrt = ResultTable(\n column_titles=['Voltage', 'Current'],\n units=['V', 'A'],\n params={'recorded': time.asctime(), 'sweep_type': 'iv'},\n)\n\n# create live plot which updates as data is added\nrt.plot(live=True)\n\n# measure some currents\nfor v in range(0, 20):\n k.apply_voltage(k.smua, 10)\n i = k.smua.measure.i()\n rt.append_row([v, i])\n\n# save the data\nrt.save('~/iv_curve.txt')\n```\n\nSee the [documentation](https://keithley2600.readthedocs.io/en/latest/api/result_table.html)\nfor all available methods.\n\n## Backend selection\n\nkeithley2600 uses [PyVISA](https://pyvisa.readthedocs.io/) to connect to instruments.\nPyVISA supports both proprietray IVI libraries such as NI-VISA, Keysight VISA, R&S VISA,\ntekVISA etc. and the purely Python backend [PyVISA-py](https://pyvisa-py.readthedocs.io/en/latest/).\nYou can select a specific backend by giving its path to the `Keithley2600` constructor\nin the `visa_library` argument. For example:\n\n```python\nfrom keithley2600 import Keithley2600\n\nk = Keithley2600('TCPIP0::192.168.2.121::INSTR', visa_library='/usr/lib/libvisa.so.7')\n```\n\nkeithley2600 defaults to using the PyVISA-py backend, selected by `visa_library='@py'`,\nsince this is only a pip-install away. If you pass an empty string, keithley2600 will\nuse an installed IVI library if it can find one in standard locations or fall back to\nPyVISA-py otherwise.\n\nYou can find more information about selecting the backend in the\n[PyVISA docs](https://pyvisa.readthedocs.io/en/latest/introduction/configuring.html).\n\n## System requirements\n\n- Python 3.6 or higher\n\n## Documentation\n\n* API documentation of keithley2600: [https://keithley2600.readthedocs.io/en/latest/](https://keithley2600.readthedocs.io/en/latest/)\n\n* Keithley 2600 reference manual with all commands: [https://www.tek.com/keithley-source-measure-units/smu-2600b-series-sourcemeter-manual-8](https://www.tek.com/keithley-source-measure-units/smu-2600b-series-sourcemeter-manual-8)\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/OE-FET/keithley2600.git", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "keithley2600", "package_url": "https://pypi.org/project/keithley2600/", "platform": "", "project_url": "https://pypi.org/project/keithley2600/", "project_urls": { "Homepage": "https://github.com/OE-FET/keithley2600.git" }, "release_url": "https://pypi.org/project/keithley2600/2.0.2/", "requires_dist": [ "pyvisa", "pyvisa-py", "numpy" ], "requires_python": "", "summary": "Full Python driver for the Keithley 2600 series.", "version": "2.0.2", "yanked": false, "yanked_reason": null }, "last_serial": 11527655, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "24f5b9cd77fa5cbc9b00a77bb91c9967", "sha256": "a660921d98474ab6fcd3a991373c99913c19db7d5e5a50cd1f86af001cd7111c" }, "downloads": -1, "filename": "keithley2600-1.1.0.tar.gz", "has_sig": false, "md5_digest": "24f5b9cd77fa5cbc9b00a77bb91c9967", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24038, "upload_time": "2019-01-31T19:21:31", "upload_time_iso_8601": "2019-01-31T19:21:31.445313Z", "url": "https://files.pythonhosted.org/packages/0c/cf/7d27b4c38e2137b7f8628a428276502dd22bb67fb1656ee9ef33f641d4aa/keithley2600-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "ea306055e9ada229ba97ad8c2c49b4ac", "sha256": "d0316dbc576b766a203b0b6791611ca64095dda114fd138f1e1be73590f9e1e3" }, "downloads": -1, "filename": "keithley2600-1.1.1.tar.gz", "has_sig": false, "md5_digest": "ea306055e9ada229ba97ad8c2c49b4ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25247, "upload_time": "2019-05-01T20:17:06", "upload_time_iso_8601": "2019-05-01T20:17:06.743374Z", "url": "https://files.pythonhosted.org/packages/a0/3a/2a2065cb5b549fcac1d431c8de95de0449107ea9f1c0d5b9759b8bec596d/keithley2600-1.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "4d4def487d50ded1cb15accb0a530869", "sha256": "746763bb7e78826fdb4987386ad6be4fe23f799ab445f391c2c9c8af5b7ef545" }, "downloads": -1, "filename": "keithley2600-1.2.0.tar.gz", "has_sig": false, "md5_digest": "4d4def487d50ded1cb15accb0a530869", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27455, "upload_time": "2019-05-16T14:48:13", "upload_time_iso_8601": "2019-05-16T14:48:13.752974Z", "url": "https://files.pythonhosted.org/packages/78/f1/addf0a94160bd2ed30d8c72022769a2d3b946e2caa413f245c5db95de696/keithley2600-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "5a14b2b297a5a22ae12d18db91e08ce1", "sha256": "b92a3f43472862863861e50fdc1ad9da3f0ee7b1e1adc27b3f3ac7fef7276ccf" }, "downloads": -1, "filename": "keithley2600-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "5a14b2b297a5a22ae12d18db91e08ce1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27581, "upload_time": "2019-05-20T13:18:07", "upload_time_iso_8601": "2019-05-20T13:18:07.504329Z", "url": "https://files.pythonhosted.org/packages/8f/a5/273327f59a1e622c21f2e3d809598fa3c872b5bd2d1ff422d369bbad6c06/keithley2600-1.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7f8160dd45ab4bd10c57abe36474781b", "sha256": "36da1ce278809b82fb513bc47d46a3f21420cf55e604975fb860ce0ae3e3e59d" }, "downloads": -1, "filename": "keithley2600-1.2.1.tar.gz", "has_sig": false, "md5_digest": "7f8160dd45ab4bd10c57abe36474781b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27502, "upload_time": "2019-05-20T13:18:10", "upload_time_iso_8601": "2019-05-20T13:18:10.207466Z", "url": "https://files.pythonhosted.org/packages/e3/44/710d7c1a4d928c54339ce03fc61dde20c95180414bc11a1ee58d8d0a5029/keithley2600-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "16af1e6dacc1391dcc1e8448657bd984", "sha256": "aa0e64c3dea1520ab7c7c2a2b0cff72b7e1ee444819017843fd3da5810ebfd59" }, "downloads": -1, "filename": "keithley2600-1.2.2.tar.gz", "has_sig": false, "md5_digest": "16af1e6dacc1391dcc1e8448657bd984", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28012, "upload_time": "2019-06-27T12:38:58", "upload_time_iso_8601": "2019-06-27T12:38:58.803973Z", "url": "https://files.pythonhosted.org/packages/f8/ab/a91b1a236cbfaca7bdd4a31f78ffcdbbe3b9bfd3b4890cddbb0063c7e482/keithley2600-1.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "9bdb61348eed1930abefec5872864943", "sha256": "f076dbb82544452a12556f02ac851ce8c0c403ebf8e4f8ab47f67a0e974c212d" }, "downloads": -1, "filename": "keithley2600-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9bdb61348eed1930abefec5872864943", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27872, "upload_time": "2019-07-19T19:32:19", "upload_time_iso_8601": "2019-07-19T19:32:19.415462Z", "url": "https://files.pythonhosted.org/packages/51/ae/b19f5af823f5313f777e68094d2e23f86bb8634288f68c253a49a375fe1b/keithley2600-1.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dd0c1bb7418a4669d1ad0796e086969a", "sha256": "a216f8ecadf3589515cfb77bd4f036c16da58d6a84e153b765b3622dfd1e2dda" }, "downloads": -1, "filename": "keithley2600-1.3.0.tar.gz", "has_sig": false, "md5_digest": "dd0c1bb7418a4669d1ad0796e086969a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28130, "upload_time": "2019-07-19T19:32:21", "upload_time_iso_8601": "2019-07-19T19:32:21.717807Z", "url": "https://files.pythonhosted.org/packages/c8/e3/b2e63cafd5d72d31558f6198e7bf7f0a29572031176db63b083b0e468eac/keithley2600-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "6d80930bd76fc82960b7287b3fb4e8fd", "sha256": "5078bfc127ca5f93e9214356d4805bc01e0120356c305dab8d52b06b399d7d42" }, "downloads": -1, "filename": "keithley2600-1.3.1.tar.gz", "has_sig": false, "md5_digest": "6d80930bd76fc82960b7287b3fb4e8fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29052, "upload_time": "2019-09-22T12:21:13", "upload_time_iso_8601": "2019-09-22T12:21:13.709762Z", "url": "https://files.pythonhosted.org/packages/9d/08/990ff630376ecea6c06118d657076bdd4c0cae34f0e555a44c02f1314393/keithley2600-1.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.1b1": [ { "comment_text": "", "digests": { "md5": "212f061b3c37668e13fe7b1f37e2a57d", "sha256": "271c0d4b2afcc1c3f313dcc349dc189513af5a9cd5a5e5da5e8f3dfe3259882f" }, "downloads": -1, "filename": "keithley2600-1.3.1b1.tar.gz", "has_sig": false, "md5_digest": "212f061b3c37668e13fe7b1f37e2a57d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28605, "upload_time": "2019-09-20T18:06:02", "upload_time_iso_8601": "2019-09-20T18:06:02.118569Z", "url": "https://files.pythonhosted.org/packages/2e/44/66c57bc7df50fd6d63556232bb7ac13e855c8ef437d174aa9efa21e9b61a/keithley2600-1.3.1b1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "12c3bdc6ddbf00308bab26e9a323a4db", "sha256": "71e19b72595c1f1b8ba7069a0afdb7e772b34380d3e79cbc11b02e1196e590a1" }, "downloads": -1, "filename": "keithley2600-1.3.2.tar.gz", "has_sig": false, "md5_digest": "12c3bdc6ddbf00308bab26e9a323a4db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28974, "upload_time": "2019-10-29T17:01:13", "upload_time_iso_8601": "2019-10-29T17:01:13.618778Z", "url": "https://files.pythonhosted.org/packages/28/93/cc7fb443d21310ff55f1eb00c6b25bad253f7d504ac2cc17269038a61fc8/keithley2600-1.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "89ad00948f7e3fce969df15130b1578a", "sha256": "1e3cbfb77d63fd70b6c3d04c37d9147fcdef7d5f016ebf24849b6b05a23495d8" }, "downloads": -1, "filename": "keithley2600-1.3.3.tar.gz", "has_sig": false, "md5_digest": "89ad00948f7e3fce969df15130b1578a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28830, "upload_time": "2020-01-27T12:45:15", "upload_time_iso_8601": "2020-01-27T12:45:15.415139Z", "url": "https://files.pythonhosted.org/packages/fc/89/e86d2320c296b81230303acccf9f693120a56a721df754d2163d043ca548/keithley2600-1.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.3.dev1": [ { "comment_text": "", "digests": { "md5": "02068bfe19898bd0cd5d77bc380d143c", "sha256": "896a6d96e430975696b9d30ca65f0af3974afbf1dbdb570fcc4965bf4d6e940c" }, "downloads": -1, "filename": "keithley2600-1.3.3.dev1.tar.gz", "has_sig": false, "md5_digest": "02068bfe19898bd0cd5d77bc380d143c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29007, "upload_time": "2019-12-04T17:09:02", "upload_time_iso_8601": "2019-12-04T17:09:02.539332Z", "url": "https://files.pythonhosted.org/packages/b0/04/5601d3c295b7c7b6a13cbe4799ece93e6409f35d5942d98a9e83e153b0ce/keithley2600-1.3.3.dev1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "f2c07e15880142ddb9d571244ff5faba", "sha256": "73c3d80c6050d0854de63d306579e6d7ee1fba6b7f0b80f4ab0862402332a2cc" }, "downloads": -1, "filename": "keithley2600-1.3.4.tar.gz", "has_sig": false, "md5_digest": "f2c07e15880142ddb9d571244ff5faba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28832, "upload_time": "2020-01-31T13:54:31", "upload_time_iso_8601": "2020-01-31T13:54:31.571751Z", "url": "https://files.pythonhosted.org/packages/54/07/87ed79ae813a7ef424ba490b7a6fb42e42c6365157985d9c081dd6d120b5/keithley2600-1.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.5.dev1": [ { "comment_text": "", "digests": { "md5": "2d4e609bb72dffbef9509f3d3f4a5fa4", "sha256": "301a7d2ce161108f237e18cccedef9fac7ba23fba8f468c16f0d0a4bbc17ea93" }, "downloads": -1, "filename": "keithley2600-1.3.5.dev1.tar.gz", "has_sig": false, "md5_digest": "2d4e609bb72dffbef9509f3d3f4a5fa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28903, "upload_time": "2020-02-03T15:33:11", "upload_time_iso_8601": "2020-02-03T15:33:11.552213Z", "url": "https://files.pythonhosted.org/packages/d0/9e/2743624b9ba376df5013abc76f30a231541b750241c1a53da4a020e3daa3/keithley2600-1.3.5.dev1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "ed23fffa2953b945a6b3fa706dc0d383", "sha256": "117e0f7d4d773b0677fd086abfa082c1edbac3bec62036a2be195cb6b89912fe" }, "downloads": -1, "filename": "keithley2600-1.4.0.tar.gz", "has_sig": false, "md5_digest": "ed23fffa2953b945a6b3fa706dc0d383", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30088, "upload_time": "2020-03-05T15:01:14", "upload_time_iso_8601": "2020-03-05T15:01:14.063298Z", "url": "https://files.pythonhosted.org/packages/70/c9/02d134c82fa3b882a2bf46cb19d5c6cf23c5f45fc30e1b1c58502a6fa222/keithley2600-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "cfb7b2e2417af56f32dab18b1f2e681b", "sha256": "98c037c94ab44ea2bf2871a1d4af55c88432864340d0a355bfc4cbee39016bfb" }, "downloads": -1, "filename": "keithley2600-1.4.1.tar.gz", "has_sig": false, "md5_digest": "cfb7b2e2417af56f32dab18b1f2e681b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30131, "upload_time": "2020-10-09T10:45:20", "upload_time_iso_8601": "2020-10-09T10:45:20.182415Z", "url": "https://files.pythonhosted.org/packages/ce/eb/5882efc55e22dea36197212eac03a28b4ccd613974feb3227c1a9f95059a/keithley2600-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "570968141a062655e065501204d454e7", "sha256": "fbcfd76e07550c56461890be4322f1c1458a8ca99e924a8f91b7da6f7b1f9182" }, "downloads": -1, "filename": "keithley2600-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "570968141a062655e065501204d454e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26207, "upload_time": "2020-11-04T18:57:45", "upload_time_iso_8601": "2020-11-04T18:57:45.046249Z", "url": "https://files.pythonhosted.org/packages/01/ba/d5e1490134803f29ac494d8b20700689bd4576d04aa30349e9483c548661/keithley2600-2.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3f2fe8e08d4b9e5957ed9535b7b5d34e", "sha256": "3e50fdb91106a858b52af012475fea14e891d1d7aa2217694738a4684032c282" }, "downloads": -1, "filename": "keithley2600-2.0.0.tar.gz", "has_sig": false, "md5_digest": "3f2fe8e08d4b9e5957ed9535b7b5d34e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27695, "upload_time": "2020-11-04T18:57:46", "upload_time_iso_8601": "2020-11-04T18:57:46.241947Z", "url": "https://files.pythonhosted.org/packages/e3/45/dadc0a26fc1465006a2cde619b8c1ba5df1b94b16aefdaa0bdb0a62b8d82/keithley2600-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0.dev0": [ { "comment_text": "", "digests": { "md5": "4329f0c642733b5902693fca7d6073e8", "sha256": "29dc19df1e4d432ea2a5d51a760033d575c1033d3e009373db14a28a7c9fff06" }, "downloads": -1, "filename": "keithley2600-2.0.0.dev0-py3-none-any.whl", "has_sig": false, "md5_digest": "4329f0c642733b5902693fca7d6073e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25398, "upload_time": "2020-11-03T03:30:44", "upload_time_iso_8601": "2020-11-03T03:30:44.604692Z", "url": "https://files.pythonhosted.org/packages/a9/1a/f641270298673075bd8a8ae58ff36783fc114dae9c850f15f8c38aa29832/keithley2600-2.0.0.dev0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5620e7dbe599912f0aa02d5f9b2053a4", "sha256": "ec271cf1b35b6dd99f189cd030c1a43f23912c84b386c2e2396d18358bee0599" }, "downloads": -1, "filename": "keithley2600-2.0.0.dev0.tar.gz", "has_sig": false, "md5_digest": "5620e7dbe599912f0aa02d5f9b2053a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26747, "upload_time": "2020-11-03T03:30:46", "upload_time_iso_8601": "2020-11-03T03:30:46.015013Z", "url": "https://files.pythonhosted.org/packages/94/56/9cb0c42f25c7541ba874f8eb4d3daa9081560560304ae439a14b5582d133/keithley2600-2.0.0.dev0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0.dev1": [ { "comment_text": "", "digests": { "md5": "6c90f6bc4f9b4f411ff9765b6fb9f3b6", "sha256": "fb98ed1e8f336b7124b74b7bbe7678d22cce51e7566ceee5474213c5a39a96f2" }, "downloads": -1, "filename": "keithley2600-2.0.0.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "6c90f6bc4f9b4f411ff9765b6fb9f3b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 25356, "upload_time": "2020-11-03T13:52:33", "upload_time_iso_8601": "2020-11-03T13:52:33.638799Z", "url": "https://files.pythonhosted.org/packages/6d/24/ee4358593e1c431f31ccb16f8cac866537d9eb1a1a458c6aacbc9e4f0911/keithley2600-2.0.0.dev1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "819f2e97ce25395190f485a32ad0cff9", "sha256": "2a469f3858317ec547006648ac1f39923fb4be0f3db1d3403d920af136d398ff" }, "downloads": -1, "filename": "keithley2600-2.0.0.dev1.tar.gz", "has_sig": false, "md5_digest": "819f2e97ce25395190f485a32ad0cff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26730, "upload_time": "2020-11-03T13:52:36", "upload_time_iso_8601": "2020-11-03T13:52:36.658778Z", "url": "https://files.pythonhosted.org/packages/91/cb/93200245a2c684d871013d5002f5709cdba16931db18ab28cf8e7a4175fa/keithley2600-2.0.0.dev1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0.post0": [ { "comment_text": "", "digests": { "md5": "fdbb5699faf1ba3f20836ac4864d2939", "sha256": "56f318cef5bfe79644c4456737e9f6c4b52562f24f0a3505a947fe60d1f71cc6" }, "downloads": -1, "filename": "keithley2600-2.0.0.post0-py3-none-any.whl", "has_sig": false, "md5_digest": "fdbb5699faf1ba3f20836ac4864d2939", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26270, "upload_time": "2020-11-04T21:47:54", "upload_time_iso_8601": "2020-11-04T21:47:54.210673Z", "url": "https://files.pythonhosted.org/packages/61/e5/05de04fe651a3ff192ce54f1b5c1e5730346a7aba7100d1b9a932175ed52/keithley2600-2.0.0.post0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "164b819f72cf12437a48fc430a034293", "sha256": "86823e260a76dac441232686e4b0212a75e6a21ec7db8328e9fbd783fa912ce8" }, "downloads": -1, "filename": "keithley2600-2.0.0.post0.tar.gz", "has_sig": false, "md5_digest": "164b819f72cf12437a48fc430a034293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27707, "upload_time": "2020-11-04T21:47:55", "upload_time_iso_8601": "2020-11-04T21:47:55.532715Z", "url": "https://files.pythonhosted.org/packages/b2/d4/b8f7d2510aeaf364abb481c0d6e69795afafd0bab07d86b9296bc78cfe5e/keithley2600-2.0.0.post0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "673d63b9f765f8ed4f782ef5c7b178a2", "sha256": "9b2928362f94b7dfd4c8f6b5bc0f41cde1cb299d4ff2d4d9a36fab47d0e08a03" }, "downloads": -1, "filename": "keithley2600-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "673d63b9f765f8ed4f782ef5c7b178a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26172, "upload_time": "2020-11-27T13:36:24", "upload_time_iso_8601": "2020-11-27T13:36:24.561076Z", "url": "https://files.pythonhosted.org/packages/ce/bd/4312e236200d56da7a065b182e690b1b10ad02e63bb2cd53acd1f3ffec5b/keithley2600-2.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "408310bf128ff4ce1bfaa0120e73bacf", "sha256": "83b8cf1f357d4255c76e60543e22733791ce18187b52958ac6d90b377665fe9e" }, "downloads": -1, "filename": "keithley2600-2.0.1.tar.gz", "has_sig": false, "md5_digest": "408310bf128ff4ce1bfaa0120e73bacf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27664, "upload_time": "2020-11-27T13:36:25", "upload_time_iso_8601": "2020-11-27T13:36:25.939145Z", "url": "https://files.pythonhosted.org/packages/6d/46/dc013d0e7b1baa249c58a2917e29244316c0c9edf518502b77ff63511258/keithley2600-2.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "3c4880a72cdf9753815e9a4adef5344d", "sha256": "96b5132129f76855650c9617d169a03c1a2b78ec892e0b88e98ea3e3c487aa7d" }, "downloads": -1, "filename": "keithley2600-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3c4880a72cdf9753815e9a4adef5344d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26299, "upload_time": "2021-09-23T11:04:32", "upload_time_iso_8601": "2021-09-23T11:04:32.073347Z", "url": "https://files.pythonhosted.org/packages/a9/bc/c2115298fbfb709f19157644411379d33ffb72dc4bc4edc25be5f81f56f0/keithley2600-2.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5026eb04b9e737841c47f0ad5f427ab9", "sha256": "d3264ee850abc6069f5338542109ca28ef176bb18ee5b778728e841769e39fce" }, "downloads": -1, "filename": "keithley2600-2.0.2.tar.gz", "has_sig": false, "md5_digest": "5026eb04b9e737841c47f0ad5f427ab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27442, "upload_time": "2021-09-23T11:04:33", "upload_time_iso_8601": "2021-09-23T11:04:33.853674Z", "url": "https://files.pythonhosted.org/packages/3c/0c/864c4909262cc538793f3737359efde3302b70fad7500b427ee51640f827/keithley2600-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c4880a72cdf9753815e9a4adef5344d", "sha256": "96b5132129f76855650c9617d169a03c1a2b78ec892e0b88e98ea3e3c487aa7d" }, "downloads": -1, "filename": "keithley2600-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "3c4880a72cdf9753815e9a4adef5344d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26299, "upload_time": "2021-09-23T11:04:32", "upload_time_iso_8601": "2021-09-23T11:04:32.073347Z", "url": "https://files.pythonhosted.org/packages/a9/bc/c2115298fbfb709f19157644411379d33ffb72dc4bc4edc25be5f81f56f0/keithley2600-2.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5026eb04b9e737841c47f0ad5f427ab9", "sha256": "d3264ee850abc6069f5338542109ca28ef176bb18ee5b778728e841769e39fce" }, "downloads": -1, "filename": "keithley2600-2.0.2.tar.gz", "has_sig": false, "md5_digest": "5026eb04b9e737841c47f0ad5f427ab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27442, "upload_time": "2021-09-23T11:04:33", "upload_time_iso_8601": "2021-09-23T11:04:33.853674Z", "url": "https://files.pythonhosted.org/packages/3c/0c/864c4909262cc538793f3737359efde3302b70fad7500b427ee51640f827/keithley2600-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }