{ "info": { "author": "Carlos Gil Gonzalez", "author_email": "carlosgilglez@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Embedded Systems", "Topic :: System :: Monitoring", "Topic :: Terminals" ], "description": "# uPydevice\n\n[![PyPI version](https://badge.fury.io/py/upydevice.svg)](https://badge.fury.io/py/upydevice)[![PyPI license](https://img.shields.io/pypi/l/ansicolortags.svg)](https://pypi.python.org/pypi/ansicolortags/)\n\nPython library to interface with MicroPython devices through REPL:\n\n- Websockets/WebREPL (WiFi)\n- BleREPL (Bluetooth Low Energy)\n- Serial REPL (USB)\n\n### Install\n`pip install upydevice` or `pip install --upgrade upydevice`\n\n#### Example usage:\n\n### ANY DEVICE: `Device`\n\nThis will return a Device based on address (first argument) type.\n\ne.g.\n\n```\n>>> from upydevice import Device\n>>> esp32_ws = Device('192.168.1.56', 'mypass', init=True, autodetect=True)\n>>> esp32_ws\nWebSocketDevice @ ws://192.168.1.53:8266, Type: esp32, Class: WebSocketDevice\nFirmware: MicroPython v1.16 on 2021-06-19; ESP32 module with ESP32\n(MAC: 30:ae:a4:23:35:64, RSSI: -43 dBm)\n>>> esp32_sr = Device('/dev/tty.SLAB_USBtoUART', init=True)\n>>> esp32_sr\nSerialDevice @ /dev/tty.SLAB_USBtoUART, Type: esp32, Class: SerialDevice\nFirmware: MicroPython v1.16 on 2021-06-19; ESP32 module with ESP32\nCP2104 USB to UART Bridge Controller, Manufacturer: Silicon Labs\n(MAC: 30:ae:a4:23:35:64)\n>>> esp32_ble = Device('F53EDB2E-25A2-45A7-95A5-4D775DFE51D2', init=True)\n>>> esp32_ble\nBleDevice @ F53EDB2E-25A2-45A7-95A5-4D775DFE51D2, Type: esp32 , Class: BleDevice\nFirmware: MicroPython v1.16 on 2021-06-19; ESP32 module with ESP32\n(MAC: 30:ae:a4:23:35:64, Local Name: esp_ble, RSSI: -70 dBm)\n```\n\n### WIRELESS DEVICE (WebREPL Protocol): `WebSocketDevice`\n\nThis requires [WebREPL](http://docs.micropython.org/en/latest/esp8266/tutorial/repl.html#webrepl-a-prompt-over-wifi) to be enabled in the device.\n\n```\n>>> from upydevice import WebSocketDevice\n>>> esp32 = WebSocketDevice('192.168.1.56', 'mypass', init=True, autodetect=True)\n>>> esp32.wr_cmd('led.on()')\n>>> esp32.wr_cmd(\"uos.listdir()\")\n['boot.py', 'webrepl_cfg.py', 'main.py'] # this output is stored in [upydevice].output\n\n>>> esp32.output\n['boot.py', 'webrepl_cfg.py', 'main.py']\n>>>> esp32.wr_cmd('x = [1,2,3];my_var = len(x);print(my_var)')\n3\n# Soft Reset:\n>>> esp32.reset()\n Rebooting device...\n Done!\n```\n\n### BLE DEVICE (BleREPL Protocol): `BleDevice`\n\nThis requires [BleREPL](https://upydev.readthedocs.io/en/latest/gettingstarted.html) to be enabled in the device. (This is still experimental and performance may be platform and device dependent)\n\n```\n>>> from upydevice import BleDevice\n>>> esp32 = BleDevice(\"9998175F-9A91-4CA2-B5EA-482AFC3453B9\", init=True)\nDevice with address 9998175F-9A91-4CA2-B5EA-482AFC3453B9 was not found\nTrying again...\nDevice with address 9998175F-9A91-4CA2-B5EA-482AFC3453B9 was not found\nTrying again...\nConnected to: 9998175F-9A91-4CA2-B5EA-482AFC3453B9\n>>> esp32.wr_cmd('led.on()')\n>>> esp32.wr_cmd(\"uos.listdir()\")\n['boot.py', 'webrepl_cfg.py', 'main.py', 'lib'] # this output is stored in [upydevice].output\n\n>>> esp32.output\n['boot.py', 'webrepl_cfg.py', 'main.py', 'lib']\n>>> esp32.wr_cmd('x = [1,2,3];my_var = len(x);print(my_var)')\n3\n\n# Soft Reset:\n>>> esp32.reset()\n Rebooting device...\n Done!\n```\n\n\n\n### SERIAL DEVICE (USB) : `SerialDevice`\n\nWorks for any serial device (esp, pyboard, circuitplayground...)\n\n```\nfrom upydevice import SerialDevice\n>>> esp32 = SerialDevice('/dev/tty.SLAB_USBtoUART', autodetect=True) # baudrate default is 115200\n>>> esp32.wr_cmd('led.on()')\n>>> esp32.wr_cmd(\"uos.listdir()\")\n['boot.py', 'webrepl_cfg.py', 'main.py'] # this output is stored in [upydevice].output\n\n>>> esp32.output\n['boot.py', 'webrepl_cfg.py', 'main.py']\n>>>> esp32.wr_cmd('x = [1,2,3];my_var = len(x);print(my_var)')\n3\n# Soft Reset:\n>>> esp32.reset()\n Rebooting device...\n Done!\n```\n\n### Testing devices with Pytest:\nUnder `test` directory there are example tests to run with devices. This allows to test MicroPython code in devices interactively, e.g. button press, screen swipes, sensor calibration, actuators, servo/stepper/dc motors ...\ne.g.\n```\n$ pytest test_esp_serial.py -s\n```\n\n### Made with upydevice:\n\n- [upydev](https://github.com/Carglglz/upydev)\n- [Jupyter_upydevice_kernel](https://github.com/Carglglz/jupyter_upydevice_kernel)\n\n## More advanced examples:\n\n### Phantom module\n\nThis module has some python 'phantom' classes to make easier the interaction with the same classes in the upydevice.\n\nAvailable classes:\n\n* MicroPython classes:\n * **MACHINE** (just unique_id() method)\n * **Pin**\n * **I2C**\n * **UOS**\n * **pyb_LED**\n * **pyb_Timer**\n * **pyb_Servo**\n * **machine_Timer**\n * **WLAN**\n * **AP**\n* Sensor classes:\n * **LSM9DS1**\n * **BME280**\n * **ADS1115**\n* Custom classes:\n * **IRQ_MG** (This needs *IRQ_util.py in the micropython device*)\n * **STREAMER** (to use as a super class, and this needs *STREAMER_util.py in the micropython device*)\n * **IMU_STREAMER** (This needs *IMU_util.py in the micropython device*)\n * **BME_STREAMER** (This needs *BME_util.py in the micropython device*)\n * **ADS_STREAMER** (This needs *ADS_util.py in the micropython device*)\n\nExamples:\n\n**UOS**\n\n```\nfrom upydevice import WebSocketDevice\nfrom upydevice.phantom import UOS\nesp32 = WebSocketDevice('192.168.1.73', 'mypass')\nuos = UOS(esp32)\nuos.listdir('/')\n ['boot.py', 'webrepl_cfg.py', 'main.py']\nuos.uname()\n (sysname='esp32', nodename='esp32', release='1.11.0', version='v1.11-530-g25946d1ef on 2019-10-29', machine='ESP32 module with ESP32')\n```\n\n\n\n## Upydevice_utils\n\nThese are some useful modules to put in the micropython device:\n\n* **IRQ_util.py** : A module to test/setup hardware interrupts easily\n* **STREAMER_util.py**: A module with U_STREAMER 'super' class to make streaming sensor data in real time easily.\n* **IMU_util.py**: A module with U_IMU_IRQ and U_IMU_STREAMER example classes.\n* **BME_util.py**: A module with U_BME_IRQ and U_BME_STREAMER example classes.\n* **ADS_util.py**: A module with U_ADS_IRQ and U_ADS_STREAMER example classes.\n\n\n\nExample: *phantom IMU_STREAMER + U_IMU_STREAMER classes*\n\n*In MicroPython*\n\n```\nfrom IMU_util import i2c, U_IMU_STREAMER\nfrom lsm9ds1 import LSM9DS1\nimu_st = U_IMU_STREAMER(LSM9DS1, i2c)\n```\n\n*Now the device is ready to be controlled from Python3*\n\n*In Python3*\n\n```\nfrom upydevice import WebSocketDevice\nesp32 = WebSocketDevice('192.168.1.73', 'mypass')\nfrom upydevice.phantom import IMU_STREAMER\nimu_st = IMU_STREAMER(esp32, name='imu_st', init_soc=True)\n\t192.168.1.43 # (This prints host ip)\n\n# SIMPLE SAMPLE (this uses upydevice.cmd)\nimu_st.read_data()\n\tarray('f', [-0.4462279975414276, -0.12023930251598358, -0.9497069716453552])\nimu_st.setup_mode('gyro')\nimu_st.read_data()\n\tarray('f', [-0.007476807106286287, 0.9719849824905396, -0.0971985012292862])\nimu_st.setup_mode('mag')\nimu_st.read_data()\n\tarray('f', [0.4848633110523224, 0.1734618991613388, 0.2396239936351776])\nimu_st.setup_mode('acc')\nimu_st.read_data()\n\tarray('f', [-0.4470824897289276, -0.12023930251598358, -0.9493408203125])\n\n# SOCKETS\nimu_st.start_server()\n\tServer listening...\n\tConnection received from: 192.168.1.73:50185\nimu_st.shot_read(imu_st.data_print, timeout=1)\n\tX: -0.44537353515625, Y: -0.12030029296875, Z: -0.94879150390625 (g=-9.8m/s^2)\n\n# CONTINUOUS STREAMING THROUGH SOCKETS + TEST\n\nimu_st.continuous_stream(imu_st.data_print_static, timeout=10, static=True, test=True)\n\tStreaming IMU ACCELEROMETER: X, Y, Z (g=-9.8m/s^2),fq=100.0Hz\n\n\n X Y Z\n^C -0.4431 -0.1184 -0.9482\n\n\tFlushed!\n\tDone!\n\nimu_st.get_stream_test()\n STREAM TEST RESULTS ARE:\n TEST DURATION : 11.31895899772644 (s)\n DATA PACKETS : 1077 packets\n SAMPLES PER PACKET : 1\n VARIABLES PER SAMPLE : 3; ['X', 'Y', 'Z']\n SIZE OF PACKETS: 12 bytes\n Period: 10 ms ; Fs:100.0 Hz, Data send rate: 95 packets/s of 1 samples\n DATA TRANSFER RATE (kBps): 1.11328125 kB/s\n DATA TRANSFER RATE (Mbps): 0.00890625 Mbps\n\nimu_st.stop_server()\n```\n\n## [Examples (scripts, GUI ...)](https://github.com/Carglglz/upydevice/tree/develop/examples)\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": "http://github.com/Carglglz/upydevice", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "upydevice", "package_url": "https://pypi.org/project/upydevice/", "platform": null, "project_url": "https://pypi.org/project/upydevice/", "project_urls": { "Homepage": "http://github.com/Carglglz/upydevice" }, "release_url": "https://pypi.org/project/upydevice/0.3.6/", "requires_dist": [ "pyserial", "dill", "unsync", "bleak (>=0.12.1)", "bleak-sigspec (>=0.0.4)", "netifaces (~=0.11.0)", "python-nmap (~=0.7.1)" ], "requires_python": "", "summary": "Python library to interface with wireless/serial MicroPython devices", "version": "0.3.6", "yanked": false, "yanked_reason": null }, "last_serial": 13288263, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "fb1029113d7a8659e105bd246af3c600", "sha256": "607b839533cb0353199e6139e3da5261739e62b393b5253184057eb243d1d3df" }, "downloads": -1, "filename": "upydevice-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fb1029113d7a8659e105bd246af3c600", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5843, "upload_time": "2019-08-18T20:28:50", "upload_time_iso_8601": "2019-08-18T20:28:50.432813Z", "url": "https://files.pythonhosted.org/packages/93/37/81249718dcdc8f780dc2d9ec3e5affc788340a871b0147abcd37b51d7756/upydevice-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6766c6d97b7deb650bc94fc352502f75", "sha256": "ae0ae88cb9755c1729985a67ba1043a39f4501bd94a23fcd7e7f8934792fbea8" }, "downloads": -1, "filename": "upydevice-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6766c6d97b7deb650bc94fc352502f75", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4303, "upload_time": "2019-08-18T20:28:52", "upload_time_iso_8601": "2019-08-18T20:28:52.610781Z", "url": "https://files.pythonhosted.org/packages/53/b6/683506f517c136475c16818eb13a9cab0a4122da8fe36fe1b833cbd9ab13/upydevice-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8d3c651c4cc8bc1a6242c48c8e95409a", "sha256": "9bddf2147e2318d619d0529950b0b38fcb4d81a8f4e7a9b89ef145a2323c06b8" }, "downloads": -1, "filename": "upydevice-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8d3c651c4cc8bc1a6242c48c8e95409a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5904, "upload_time": "2019-08-28T22:45:05", "upload_time_iso_8601": "2019-08-28T22:45:05.135330Z", "url": "https://files.pythonhosted.org/packages/7b/d2/aceaed67a9c61580d3797b5a99d85bc2fe6b89d4c88f0affcded73d2148e/upydevice-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "80a1219d0ae08cf08bcf12a5945699ad", "sha256": "7929f8c14d4826a6ee45bb3c9d6d723b79d35c937a38a5ded1766ad6b0381ca8" }, "downloads": -1, "filename": "upydevice-0.0.2.tar.gz", "has_sig": false, "md5_digest": "80a1219d0ae08cf08bcf12a5945699ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4375, "upload_time": "2019-08-28T22:45:06", "upload_time_iso_8601": "2019-08-28T22:45:06.684161Z", "url": "https://files.pythonhosted.org/packages/0e/50/036ce7f7e18069d07d67f1776ccb313d7e024875dfb3e1479c3f98f8cd4f/upydevice-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a4873b07b628faf93ca4b83a1a1b94cd", "sha256": "f6e08c26e17b4de91f04e35a1f3bdeb9ed45faed8537e50beba07af58e3d7083" }, "downloads": -1, "filename": "upydevice-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a4873b07b628faf93ca4b83a1a1b94cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5958, "upload_time": "2019-09-28T15:25:55", "upload_time_iso_8601": "2019-09-28T15:25:55.055526Z", "url": "https://files.pythonhosted.org/packages/76/0f/4cb41e8dffa067e652dffbe1eb09364cf463f3696cb636c8e8fceb02e31b/upydevice-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c544bfccca5726af88956ed3c9ba2c78", "sha256": "32432d0f5a496496c6433d22b8f9d51bf75e729a0b8ec87bb1e47841f602006b" }, "downloads": -1, "filename": "upydevice-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c544bfccca5726af88956ed3c9ba2c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4442, "upload_time": "2019-09-28T15:25:56", "upload_time_iso_8601": "2019-09-28T15:25:56.721437Z", "url": "https://files.pythonhosted.org/packages/90/86/61926204c975a1531791f9f956a6756b6261e55bbcfa9f0eccf11d9a7ced/upydevice-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7c05a2cd760802b34175b3afcfd23b54", "sha256": "f7d5070b526e03cd794a183a2a379062b944eb0a3ec36df56ba4c5a767689c98" }, "downloads": -1, "filename": "upydevice-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "7c05a2cd760802b34175b3afcfd23b54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5973, "upload_time": "2019-10-14T14:54:37", "upload_time_iso_8601": "2019-10-14T14:54:37.090605Z", "url": "https://files.pythonhosted.org/packages/98/58/1aa6713c09c5c85dcb49afbca42042aba6730aada18b6fd7602a561a8365/upydevice-0.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d92944c793f44685da61af78a18801cf", "sha256": "f7724e15a4568a5a4bb2f9e7057c62c5aed4a7413542a8e2629fa6389eed2be1" }, "downloads": -1, "filename": "upydevice-0.0.4.tar.gz", "has_sig": false, "md5_digest": "d92944c793f44685da61af78a18801cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4449, "upload_time": "2019-10-14T14:54:39", "upload_time_iso_8601": "2019-10-14T14:54:39.058089Z", "url": "https://files.pythonhosted.org/packages/02/83/10e05af84ed4427bdf8d48b56facd2bc9f118c3e238bd942ef8954ec9f52/upydevice-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "393f65a8be6b96b8ebb043e1c4905023", "sha256": "f2e1af777bc534a50638dfebc7b42481ccdd8f328db3be81a3d138b78f706aed" }, "downloads": -1, "filename": "upydevice-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "393f65a8be6b96b8ebb043e1c4905023", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8272, "upload_time": "2019-10-21T00:14:54", "upload_time_iso_8601": "2019-10-21T00:14:54.702354Z", "url": "https://files.pythonhosted.org/packages/f6/50/bf64697fed9db0e53d468e92fb3271d47cf76c01649e3f4912623f96e402/upydevice-0.0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "55c255624e66d1ff574f23fe91fc6525", "sha256": "ec09c32c549bb2363ced5abc2670d29c6595a2874a5a41a02defcf1cfd969cf7" }, "downloads": -1, "filename": "upydevice-0.0.5.tar.gz", "has_sig": false, "md5_digest": "55c255624e66d1ff574f23fe91fc6525", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6160, "upload_time": "2019-10-21T00:14:56", "upload_time_iso_8601": "2019-10-21T00:14:56.478782Z", "url": "https://files.pythonhosted.org/packages/2f/96/08b4d7c0fdd42ab0bad573f1f5b360ad0b34824413cc9b9b2140124994b1/upydevice-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "b934e912793174be3916e2954333316d", "sha256": "fcbe7f2d15fdf6b36aae151279aefd8b193fa87f7f791efbe86720f0de2c645d" }, "downloads": -1, "filename": "upydevice-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "b934e912793174be3916e2954333316d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9230, "upload_time": "2019-10-27T13:50:09", "upload_time_iso_8601": "2019-10-27T13:50:09.648266Z", "url": "https://files.pythonhosted.org/packages/5f/91/ad8e6472fc6bda7b4e8bfb2bc38678adf8d88dd692bc3bb068742a856020/upydevice-0.0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "de8a34fc8507f3f8a6a6980830b735bb", "sha256": "9c2c1fc392a1268aa14d0ef8d506fdc3ad5a570c3508073c105e1830a6350b22" }, "downloads": -1, "filename": "upydevice-0.0.6.tar.gz", "has_sig": false, "md5_digest": "de8a34fc8507f3f8a6a6980830b735bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7152, "upload_time": "2019-10-27T13:50:11", "upload_time_iso_8601": "2019-10-27T13:50:11.433884Z", "url": "https://files.pythonhosted.org/packages/d8/1f/2a7b3e26b0e83ba23e46414e70b1baa09db6ca1cc40141407fc67d406d19/upydevice-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "10bc7b350acd33fd75a86ddcd19f6d53", "sha256": "75a700564276135342848034b57b2d881ea9a861e625fc9c0383247163852c45" }, "downloads": -1, "filename": "upydevice-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "10bc7b350acd33fd75a86ddcd19f6d53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9492, "upload_time": "2019-10-28T15:28:14", "upload_time_iso_8601": "2019-10-28T15:28:14.206213Z", "url": "https://files.pythonhosted.org/packages/d0/56/19896754246187abfcd010aca9dd8f2f25ebe6afa8ae0926702b1ad3cd4b/upydevice-0.0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cd3b1e4ed707adfe0022dd81cd840445", "sha256": "eafd2b4e85b9f7c9185cdb51fc8195e106f7c355635d2fb934f2379bd1d4c6f7" }, "downloads": -1, "filename": "upydevice-0.0.7.tar.gz", "has_sig": false, "md5_digest": "cd3b1e4ed707adfe0022dd81cd840445", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7435, "upload_time": "2019-10-28T15:28:15", "upload_time_iso_8601": "2019-10-28T15:28:15.450794Z", "url": "https://files.pythonhosted.org/packages/f8/f6/dcfa1d2b006e1873f24a04b7ac646cd5727b66c9c2c5a7cec93c09523c96/upydevice-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "e6a99e9c31ec4f0c3b8a230d42d70810", "sha256": "bd89f6bff09e9ae318947b58a6343ddff193a7693c540daad4bb994e092de30f" }, "downloads": -1, "filename": "upydevice-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "e6a99e9c31ec4f0c3b8a230d42d70810", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9521, "upload_time": "2019-10-28T16:34:41", "upload_time_iso_8601": "2019-10-28T16:34:41.275024Z", "url": "https://files.pythonhosted.org/packages/40/96/c926c5d85dff7939447fee620aace5e8cbcacbcd6beb7ac732ff9cffceb2/upydevice-0.0.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "90b6f6684a4d024a0c726f7087183b92", "sha256": "57cefd7e72f925e7e9db217e37fcda676c06fdbe66981edc4fd38fdcacae9878" }, "downloads": -1, "filename": "upydevice-0.0.8.tar.gz", "has_sig": false, "md5_digest": "90b6f6684a4d024a0c726f7087183b92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7454, "upload_time": "2019-10-28T16:34:42", "upload_time_iso_8601": "2019-10-28T16:34:42.632959Z", "url": "https://files.pythonhosted.org/packages/0a/0a/dc0ddf3961d61b8c3418421de9962e26986138f100beb735bff92938dfba/upydevice-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "5da184e8a5694864cb8260d123297e31", "sha256": "424eba08c290152b9f6e6156a461c14a46c26e7b34e8b6e5b95600360613bd11" }, "downloads": -1, "filename": "upydevice-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "5da184e8a5694864cb8260d123297e31", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9591, "upload_time": "2019-10-28T20:38:54", "upload_time_iso_8601": "2019-10-28T20:38:54.644044Z", "url": "https://files.pythonhosted.org/packages/cd/fc/4c20b59a6e5d31b2a2deb64e16bd8f6652770b241b49eefd2cb762375b8f/upydevice-0.0.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b03053f4254a00b5cc6613c087d60918", "sha256": "4e486d504cffad1235b529d225a18d0809c8c41fa8310eec711772e7dfdce42b" }, "downloads": -1, "filename": "upydevice-0.0.9.tar.gz", "has_sig": false, "md5_digest": "b03053f4254a00b5cc6613c087d60918", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7517, "upload_time": "2019-10-28T20:38:57", "upload_time_iso_8601": "2019-10-28T20:38:57.099606Z", "url": "https://files.pythonhosted.org/packages/a1/8d/f6394dc2b6404a1f96f8e1eb4d70ef05ac8c5fc29b820a7523153688a6ea/upydevice-0.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "696f451ee657e352d9230771daf9f096", "sha256": "fcb4fe483b575232b5e808c77d3b337bdc970b3c845d4091de34e09dc9027f0e" }, "downloads": -1, "filename": "upydevice-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "696f451ee657e352d9230771daf9f096", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9629, "upload_time": "2019-10-29T14:13:41", "upload_time_iso_8601": "2019-10-29T14:13:41.099035Z", "url": "https://files.pythonhosted.org/packages/66/81/29b052b462332dfdec79bd76d355c37def74a998386baf3099ffa21eb199/upydevice-0.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "71c42fca7ab6dac338d03a3168ad7465", "sha256": "63133a3228d6090c60ef3a278511744d8f16c80c3af93277787b492eb722439e" }, "downloads": -1, "filename": "upydevice-0.1.0.tar.gz", "has_sig": false, "md5_digest": "71c42fca7ab6dac338d03a3168ad7465", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7570, "upload_time": "2019-10-29T14:13:42", "upload_time_iso_8601": "2019-10-29T14:13:42.452414Z", "url": "https://files.pythonhosted.org/packages/5d/91/befd7722eec22d5061f52c0d8a30dd3f1fe1a6b2f6325befff39e2fb218a/upydevice-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "86b7632a2918b1e8111846d2a8ec43d5", "sha256": "89e55d5795b765d8c041ba1e25954b1dcbc3c6e6a4f2b40cfb036557ae84fab7" }, "downloads": -1, "filename": "upydevice-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "86b7632a2918b1e8111846d2a8ec43d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11281, "upload_time": "2019-11-02T19:15:52", "upload_time_iso_8601": "2019-11-02T19:15:52.001183Z", "url": "https://files.pythonhosted.org/packages/82/cd/c7091a5669381800b3d432bed147ad61c1cbfeadd0efc4bbee287644ef70/upydevice-0.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "297629385bccba2e431fac0303704876", "sha256": "03a13525019de632fb03d4f7d897c1bc80d2db08e400260406f8fd970033332d" }, "downloads": -1, "filename": "upydevice-0.1.1.tar.gz", "has_sig": false, "md5_digest": "297629385bccba2e431fac0303704876", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8902, "upload_time": "2019-11-02T19:15:53", "upload_time_iso_8601": "2019-11-02T19:15:53.779404Z", "url": "https://files.pythonhosted.org/packages/1c/34/9ae1be16379a97c336a41eda59a9351cc1313fe8ebd17b1c0b39f2942fe6/upydevice-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "12781eb530f71e38c29973a913fdb009", "sha256": "ea5564be73545d7752749ddfb4cdbca5c5767c2ac7fc06a54ef156e5433384aa" }, "downloads": -1, "filename": "upydevice-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "12781eb530f71e38c29973a913fdb009", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19382, "upload_time": "2019-11-12T21:05:28", "upload_time_iso_8601": "2019-11-12T21:05:28.202150Z", "url": "https://files.pythonhosted.org/packages/c0/a4/8d82e40b5bafbe7a342990cee072932abb8f897ea3047d2a237f1f878d22/upydevice-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7a8f52249fa8a209e1e550f8474ef538", "sha256": "763d002ea80457c6a9e458a3d6d571480b31301b8cb49b5cc12ed1cce0564a59" }, "downloads": -1, "filename": "upydevice-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7a8f52249fa8a209e1e550f8474ef538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18487, "upload_time": "2019-11-12T21:05:29", "upload_time_iso_8601": "2019-11-12T21:05:29.750512Z", "url": "https://files.pythonhosted.org/packages/ca/91/d50da8552230443ee209452714523f98cbd2a4578a9ac360b4315a8592f5/upydevice-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "5c94b734398aa9779e81b180fe7acabf", "sha256": "d9c4d92ae1502d5f2974425a9d8763d91ad363b217da063e4aca72b2d328b4c5" }, "downloads": -1, "filename": "upydevice-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5c94b734398aa9779e81b180fe7acabf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20793, "upload_time": "2019-11-23T18:01:55", "upload_time_iso_8601": "2019-11-23T18:01:55.261519Z", "url": "https://files.pythonhosted.org/packages/e3/05/a0e7f7985ffc1e43bdda4539cc4fa98e3094e772a1d355171aaf5dd35be2/upydevice-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ebdd30f3698ea157c6b8633ba4a945fa", "sha256": "2c058855dba6aae2b058bca17f7dac7c567c7b375007e45b3940b49ab11a79a0" }, "downloads": -1, "filename": "upydevice-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ebdd30f3698ea157c6b8633ba4a945fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19504, "upload_time": "2019-11-23T18:01:56", "upload_time_iso_8601": "2019-11-23T18:01:56.748647Z", "url": "https://files.pythonhosted.org/packages/46/52/504dccd475e962b7cb20c39d8889f7df8631c95254a1a2b7337c56a802b8/upydevice-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "f9a3287f8353653d9d31477fae238779", "sha256": "e5bc743dcc4823485809a89a60ae02ec599cd16fa6c532b33cba523778c761de" }, "downloads": -1, "filename": "upydevice-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f9a3287f8353653d9d31477fae238779", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24215, "upload_time": "2019-12-24T14:09:30", "upload_time_iso_8601": "2019-12-24T14:09:30.719285Z", "url": "https://files.pythonhosted.org/packages/5e/1a/c382b082223bdb93b03015ed71ab8abc290b96249bc14a9234ae5b411504/upydevice-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "595a426de6548696bd362f57058d51e5", "sha256": "8340810f2a79158dbcea41b13bc8bbaaaff41f2db7d7c8cc924f235ae168b791" }, "downloads": -1, "filename": "upydevice-0.1.4.tar.gz", "has_sig": false, "md5_digest": "595a426de6548696bd362f57058d51e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22571, "upload_time": "2019-12-24T14:09:32", "upload_time_iso_8601": "2019-12-24T14:09:32.140619Z", "url": "https://files.pythonhosted.org/packages/eb/41/8e036b66b52ca88fb50e90039471403e7ea5185152513c877dcc7acb8c65/upydevice-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "9baa891a6b37ae723b48b2e0d406194d", "sha256": "2001f25d85c76ce612c209819872bb73b52081c443cad97b69a5ecf3fa8d7550" }, "downloads": -1, "filename": "upydevice-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9baa891a6b37ae723b48b2e0d406194d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32529, "upload_time": "2020-01-07T23:00:26", "upload_time_iso_8601": "2020-01-07T23:00:26.456559Z", "url": "https://files.pythonhosted.org/packages/56/ac/4171d2b8ab0524613136bef0669746a8f3ecd7a1ac9f3b20b230c9176101/upydevice-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "03efafb78096f0a6277bf10d79a4c88e", "sha256": "44815d41e406ced7c30ba6e194e402fa3eb09ce258e2d10d35dfce7f06cb54c7" }, "downloads": -1, "filename": "upydevice-0.1.5.tar.gz", "has_sig": false, "md5_digest": "03efafb78096f0a6277bf10d79a4c88e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30261, "upload_time": "2020-01-07T23:00:28", "upload_time_iso_8601": "2020-01-07T23:00:28.351620Z", "url": "https://files.pythonhosted.org/packages/41/c1/3ff545384c409b467402f26f38b0e2dcc86518c2f57fc24a1e13fcc63481/upydevice-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "1b0836281eb13e4fd7058904b453e22a", "sha256": "83f1f88d962e34720311b017ecb1759d3d6ce53443d26b164aee97ff83747c47" }, "downloads": -1, "filename": "upydevice-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "1b0836281eb13e4fd7058904b453e22a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32559, "upload_time": "2020-01-10T16:59:49", "upload_time_iso_8601": "2020-01-10T16:59:49.136443Z", "url": "https://files.pythonhosted.org/packages/1b/06/d01326a171c73e94a8f3d388c67de427f9749be6519b01dce47b0c1dd788/upydevice-0.1.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "320c4672bcbb4263eb8233b944e01c13", "sha256": "5745e37cd85e63b5c3ae77ef72602aaf47b1dddffdc0c51342249eec50ba44bf" }, "downloads": -1, "filename": "upydevice-0.1.6.tar.gz", "has_sig": false, "md5_digest": "320c4672bcbb4263eb8233b944e01c13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30288, "upload_time": "2020-01-10T16:59:51", "upload_time_iso_8601": "2020-01-10T16:59:51.531050Z", "url": "https://files.pythonhosted.org/packages/40/4d/82625a4033b6c04ab4e79791c3d248eb2746caa18158f0382baa352fe40c/upydevice-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "00416d707f0374af2edddd54834cb168", "sha256": "6ef9ba2ade79a0ec3e8c34dda5f6b2fdb9e497fe1c9bc054889094b49096f9e6" }, "downloads": -1, "filename": "upydevice-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "00416d707f0374af2edddd54834cb168", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 32698, "upload_time": "2020-01-19T19:09:40", "upload_time_iso_8601": "2020-01-19T19:09:40.986782Z", "url": "https://files.pythonhosted.org/packages/2d/7a/25b79a2406c3286d5e274c31c39d77fd21d8772fb7f311525b69c2765b8e/upydevice-0.1.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4cc0f96155b00737cd9fa1a36287d94c", "sha256": "cb04fe459033300e246378edc03e2673c49e5eb78409ff354e355960dbff6791" }, "downloads": -1, "filename": "upydevice-0.1.7.tar.gz", "has_sig": false, "md5_digest": "4cc0f96155b00737cd9fa1a36287d94c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30462, "upload_time": "2020-01-19T19:09:42", "upload_time_iso_8601": "2020-01-19T19:09:42.416295Z", "url": "https://files.pythonhosted.org/packages/36/fc/8488c88169ace5b03a31efcf4a7a61f481a7d14a76a170113e0f22e4ff63/upydevice-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "14c640511a58ce6f0f389b2e6f6c8de0", "sha256": "baca8faef82b207e4e67bd4cb6ee9f2549e1d346cfca09c262bb5575c4276a08" }, "downloads": -1, "filename": "upydevice-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "14c640511a58ce6f0f389b2e6f6c8de0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37311, "upload_time": "2020-02-02T00:22:16", "upload_time_iso_8601": "2020-02-02T00:22:16.384046Z", "url": "https://files.pythonhosted.org/packages/80/97/5e1d146ed3d9548666356027616132acd584e56a7f33dc704cbbbbdb810a/upydevice-0.1.8-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d90cb5943fd5098e5c6b91f46f05103d", "sha256": "78267737f5f4013c129c29a2c594ee1dcef9db3c6fb70482124366223a4c3dba" }, "downloads": -1, "filename": "upydevice-0.1.8.tar.gz", "has_sig": false, "md5_digest": "d90cb5943fd5098e5c6b91f46f05103d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37066, "upload_time": "2020-02-02T00:22:18", "upload_time_iso_8601": "2020-02-02T00:22:18.375134Z", "url": "https://files.pythonhosted.org/packages/6d/8a/75e7ac58d5ef6c11a0ee1cb5f5769d9f9cfdb620f2a5cb11472ca2778b7d/upydevice-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "74e79e21d3a2234614493f54097e7cf3", "sha256": "499c7a5fd5faa7642fdbba405fc6bcf1ff19367c46c529d91e54921bcc65c4be" }, "downloads": -1, "filename": "upydevice-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "74e79e21d3a2234614493f54097e7cf3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37882, "upload_time": "2020-02-08T17:18:07", "upload_time_iso_8601": "2020-02-08T17:18:07.256795Z", "url": "https://files.pythonhosted.org/packages/6c/4c/971afe9c79c0fd1aa9c9c245773773f8621eada03542ad3068b90d4429d8/upydevice-0.1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "622688fb2d83cc980aafdee89db06384", "sha256": "1bddf5bc78113d823548e8430ee52998eb7150dd637813eeef65f3daee48d5bc" }, "downloads": -1, "filename": "upydevice-0.1.9.tar.gz", "has_sig": false, "md5_digest": "622688fb2d83cc980aafdee89db06384", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37637, "upload_time": "2020-02-08T17:18:09", "upload_time_iso_8601": "2020-02-08T17:18:09.199369Z", "url": "https://files.pythonhosted.org/packages/f2/b3/91eb6148748b915a087366120842b4f601f87285d7147ef22096e9f707bf/upydevice-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a0536713be71dac2f048f7d2a938bcb3", "sha256": "ea2bf2b25dbb7811c2c8f0ec7fd06aea90f55e5986d48c9a306d75e68585b76c" }, "downloads": -1, "filename": "upydevice-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a0536713be71dac2f048f7d2a938bcb3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41504, "upload_time": "2020-02-16T18:36:42", "upload_time_iso_8601": "2020-02-16T18:36:42.373151Z", "url": "https://files.pythonhosted.org/packages/34/9d/f7197ff8a87f484dcb69d9026a60e90b54037e127dd545193937e8c77b4d/upydevice-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e5a95f43a99c115e3cb0ee74522f5640", "sha256": "236e623d4c555e0d8661a09a6ea46b53827e18cd9e4624fa88f096ee3d7029d6" }, "downloads": -1, "filename": "upydevice-0.2.0.tar.gz", "has_sig": false, "md5_digest": "e5a95f43a99c115e3cb0ee74522f5640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41618, "upload_time": "2020-02-16T18:36:48", "upload_time_iso_8601": "2020-02-16T18:36:48.621614Z", "url": "https://files.pythonhosted.org/packages/9f/72/f62708f86ae110dea5e1078d2398a0ae15dde72a7fe25bdd00aabc491210/upydevice-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "48ac913112bca17123ed14487b8f4f71", "sha256": "a406869c097f172f74ca4896a49e36d42812d87eb145e4f7414568bab4165089" }, "downloads": -1, "filename": "upydevice-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "48ac913112bca17123ed14487b8f4f71", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41568, "upload_time": "2020-02-17T17:21:50", "upload_time_iso_8601": "2020-02-17T17:21:50.641924Z", "url": "https://files.pythonhosted.org/packages/8e/20/22a47c023d2ca93fa08208c7e80a65d686813d94ed791e073afcf4c023dc/upydevice-0.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bebde97ebde37185334372296319b08d", "sha256": "ff4cb91f261d81b3f2647f612d30ad228ce843f0a6d16ac57228128493c4b0c9" }, "downloads": -1, "filename": "upydevice-0.2.1.tar.gz", "has_sig": false, "md5_digest": "bebde97ebde37185334372296319b08d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41669, "upload_time": "2020-02-17T17:21:52", "upload_time_iso_8601": "2020-02-17T17:21:52.779837Z", "url": "https://files.pythonhosted.org/packages/9c/a5/b7dd4cc83066dfc5147515435e57ce2485536a7460f6d254000919c08270/upydevice-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "40e1337977e61f391b1ec8eaa12b79bc", "sha256": "30a517cb2b07b46368bfec1753094207d8dd524b0033f8fe4f9eca977d4c4590" }, "downloads": -1, "filename": "upydevice-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "40e1337977e61f391b1ec8eaa12b79bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41647, "upload_time": "2020-02-24T16:00:53", "upload_time_iso_8601": "2020-02-24T16:00:53.762785Z", "url": "https://files.pythonhosted.org/packages/ce/12/077779cf9fecf8db0dca10217b574c2a4932a2159cbfed9d990a1f54f290/upydevice-0.2.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5c64d3c6d0999cc14aacb78686b865c9", "sha256": "7bdf3f681585f88ca72d6d52dd683ef4c693e51da29f439c0db20ac68f3197fe" }, "downloads": -1, "filename": "upydevice-0.2.2.tar.gz", "has_sig": false, "md5_digest": "5c64d3c6d0999cc14aacb78686b865c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41721, "upload_time": "2020-02-24T16:00:56", "upload_time_iso_8601": "2020-02-24T16:00:56.375138Z", "url": "https://files.pythonhosted.org/packages/61/d4/3fd64698e9425c874210774e4454587917520959045e9c633e8cdec10197/upydevice-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "bd7e42a0f7d617c06b2c362cebd9ace5", "sha256": "30436eca35c7b360f8a86383a2eb58856e46b6de8a5965a2d621c41f4455613e" }, "downloads": -1, "filename": "upydevice-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bd7e42a0f7d617c06b2c362cebd9ace5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 41707, "upload_time": "2020-05-25T15:16:24", "upload_time_iso_8601": "2020-05-25T15:16:24.338955Z", "url": "https://files.pythonhosted.org/packages/a3/ea/411a22d9e2c42d8a842a518afbacc3a51cb456fa5821b31ca4fddbf6ec46/upydevice-0.2.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f279f4ca159c1169ffd13dab12b2f565", "sha256": "c822ecc62ede130e767c0c1b0a3682fa41245dcc0e3937f23865a68e3f3ec7a4" }, "downloads": -1, "filename": "upydevice-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f279f4ca159c1169ffd13dab12b2f565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41777, "upload_time": "2020-05-25T15:16:25", "upload_time_iso_8601": "2020-05-25T15:16:25.916585Z", "url": "https://files.pythonhosted.org/packages/d5/85/e1f9938ce17fee0f108030bdc1a6d6dcb96cb9a74004ce5e682c20df9c6b/upydevice-0.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8b20bc5ae934d82427a99bb39ec208f5", "sha256": "b614521495920a078d4f384899cb20cdcbc2cae2096d6acab230fdb0efbe128c" }, "downloads": -1, "filename": "upydevice-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8b20bc5ae934d82427a99bb39ec208f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 67698, "upload_time": "2021-08-12T16:38:56", "upload_time_iso_8601": "2021-08-12T16:38:56.501473Z", "url": "https://files.pythonhosted.org/packages/0c/b2/36501f78f9ab4028998f2f4a6bce18e634ccd126c4056cabddfdf41b226c/upydevice-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2d31ff6cb2da4794580716c53c0c9c8f", "sha256": "cc1ef56b6552ddddea5f29f78e99a791e7ed7e62d24b7f43774b7aecd4ad5e81" }, "downloads": -1, "filename": "upydevice-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2d31ff6cb2da4794580716c53c0c9c8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53506, "upload_time": "2021-08-12T16:38:57", "upload_time_iso_8601": "2021-08-12T16:38:57.923084Z", "url": "https://files.pythonhosted.org/packages/51/c7/77eedab54b4dca73b3a5526dc3b41318760fd0a875bc245615038f4a1753/upydevice-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9a8f3c87c571f8f18dbc9be508609ebd", "sha256": "2507b83490153df1cea3c44d0a709ae5b99772fff3ed50ab62b18cd16898a1c7" }, "downloads": -1, "filename": "upydevice-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9a8f3c87c571f8f18dbc9be508609ebd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 68122, "upload_time": "2021-09-09T20:26:33", "upload_time_iso_8601": "2021-09-09T20:26:33.169743Z", "url": "https://files.pythonhosted.org/packages/58/e7/44e6b4946442fad97baeca7af423bbe70c9899b5f70c4960ed2cc9131d89/upydevice-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "60cc31e69c7e9c643356cb09a145d9d6", "sha256": "3b29d2624a6954fdc7a851bda2207a5ac382356ae507339bdbbfefed743a139e" }, "downloads": -1, "filename": "upydevice-0.3.1.tar.gz", "has_sig": false, "md5_digest": "60cc31e69c7e9c643356cb09a145d9d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53906, "upload_time": "2021-09-09T20:26:35", "upload_time_iso_8601": "2021-09-09T20:26:35.501808Z", "url": "https://files.pythonhosted.org/packages/3d/96/c4dfe6ff953f691f3d2ec0c1dc9bd2dfd2f7ebd18494961a2d7a7e3390d5/upydevice-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4cb489113e460f25ba5a4bde4d49bd7a", "sha256": "5c564a5a175b1f32efb8483187a8d3d38299d2f2aff8f0e2f3ea63cd338b3892" }, "downloads": -1, "filename": "upydevice-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4cb489113e460f25ba5a4bde4d49bd7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 68273, "upload_time": "2021-10-24T21:23:05", "upload_time_iso_8601": "2021-10-24T21:23:05.556523Z", "url": "https://files.pythonhosted.org/packages/59/a9/86cae3fefd7224dc7e7bd0b16a485414778d69c32144d3a465c22e7b46f3/upydevice-0.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b25ac9c1e886273319ea061b5afb0a67", "sha256": "c7fefa615c3a23fdfe34734a73adcf23502257240986a3a1d56582989b0d5c57" }, "downloads": -1, "filename": "upydevice-0.3.2.tar.gz", "has_sig": false, "md5_digest": "b25ac9c1e886273319ea061b5afb0a67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54054, "upload_time": "2021-10-24T21:23:07", "upload_time_iso_8601": "2021-10-24T21:23:07.180689Z", "url": "https://files.pythonhosted.org/packages/21/ad/62d62df334454365c65c989726b5177a005c07d9411c96fb799a601fa2b6/upydevice-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "ae079a6f7e6f63ac3f81cc409da19551", "sha256": "0bcce40a21fbc1aaa7fe0b241d3ce2161f85c23c02f5769292b8153587a3a6f9" }, "downloads": -1, "filename": "upydevice-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ae079a6f7e6f63ac3f81cc409da19551", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 68425, "upload_time": "2021-12-16T20:41:10", "upload_time_iso_8601": "2021-12-16T20:41:10.841632Z", "url": "https://files.pythonhosted.org/packages/93/cc/8a4b724127dbbb3ab5a2aa5b6d5dbb1b5792a12ff9ee7bb98fd744d3d352/upydevice-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3fff3f3c7e546ca541492d794954378d", "sha256": "2aecd836a1b1ecf3d6cffaeae38e5c92eaa433ae179a569a5f4f52ba3c370479" }, "downloads": -1, "filename": "upydevice-0.3.3.tar.gz", "has_sig": false, "md5_digest": "3fff3f3c7e546ca541492d794954378d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54597, "upload_time": "2021-12-16T20:41:12", "upload_time_iso_8601": "2021-12-16T20:41:12.898402Z", "url": "https://files.pythonhosted.org/packages/c0/5c/f9219a0f2d19f2cbd4c34ee56c1beedbbd8d453b0aeaa397c231ae982a68/upydevice-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "6e7d1457982f417ca159f591bb52aabb", "sha256": "f3543c1d01b3d9f3175be6f1cdf554f9731c79c1c2418c86ba0a8d543916507e" }, "downloads": -1, "filename": "upydevice-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6e7d1457982f417ca159f591bb52aabb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 71160, "upload_time": "2022-03-04T21:01:58", "upload_time_iso_8601": "2022-03-04T21:01:58.436908Z", "url": "https://files.pythonhosted.org/packages/0e/9c/e9c5c72d066f56a38b48bcee86e555026d5f3490951e199b147c70118e42/upydevice-0.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7b20fc9ff9ef714eb50650d9c197d6e0", "sha256": "70e4d85792d8d0064b9311776a6b4965fd68ffd206eb38d881550283f826b35d" }, "downloads": -1, "filename": "upydevice-0.3.4.tar.gz", "has_sig": false, "md5_digest": "7b20fc9ff9ef714eb50650d9c197d6e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 344348, "upload_time": "2022-03-04T21:02:00", "upload_time_iso_8601": "2022-03-04T21:02:00.586847Z", "url": "https://files.pythonhosted.org/packages/dc/e8/aa3098a199d2f0fb121cee3daf13034533d2a16c253a3846882bc2bc0218/upydevice-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "b1b17d0d9035d372c01223867e1cda59", "sha256": "c82c4f8ed4a2b05393614502325cc477509ba060bbddb421fc431af071a5a536" }, "downloads": -1, "filename": "upydevice-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "b1b17d0d9035d372c01223867e1cda59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 71228, "upload_time": "2022-03-15T18:27:45", "upload_time_iso_8601": "2022-03-15T18:27:45.252722Z", "url": "https://files.pythonhosted.org/packages/39/83/42d2e8f5170143086b019693ba615257230cd251af8038dabbe49ccadb42/upydevice-0.3.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0a7d724dd380b91adbe3217490b485d4", "sha256": "d0042078579fee48467b24256cdf0d55bf83ec96dfa2e93d86035fe61ccd2d5d" }, "downloads": -1, "filename": "upydevice-0.3.5.tar.gz", "has_sig": false, "md5_digest": "0a7d724dd380b91adbe3217490b485d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 344498, "upload_time": "2022-03-15T18:27:47", "upload_time_iso_8601": "2022-03-15T18:27:47.576251Z", "url": "https://files.pythonhosted.org/packages/44/31/c75c0760b1f5bbc24fb01c859337fecdc745c29fcac0b0b64e590b8a528e/upydevice-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "09c1aa3d283554075b022a8dbd02a9cd", "sha256": "6a41950a32c6ed9cd9d9685f0060cef0c102ecfb676f559146fb0578534270c3" }, "downloads": -1, "filename": "upydevice-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "09c1aa3d283554075b022a8dbd02a9cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 71257, "upload_time": "2022-03-25T00:27:09", "upload_time_iso_8601": "2022-03-25T00:27:09.606071Z", "url": "https://files.pythonhosted.org/packages/f3/55/33e3173c9d501bc6ca082cc02b2219c5d33188ba4242ce37096813b5ad87/upydevice-0.3.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "288db91385b3f7fea3ff9d4fc9a1c987", "sha256": "abc8fc1bbceef965b28a6cc9855d7580232c2fcdf6019c36a632ed6f5e6a6880" }, "downloads": -1, "filename": "upydevice-0.3.6.tar.gz", "has_sig": false, "md5_digest": "288db91385b3f7fea3ff9d4fc9a1c987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 344589, "upload_time": "2022-03-25T00:27:11", "upload_time_iso_8601": "2022-03-25T00:27:11.737187Z", "url": "https://files.pythonhosted.org/packages/a9/c2/9a3005962bc2af1711d721691a86014dad8176c348994ff6a12d279fd5a1/upydevice-0.3.6.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "09c1aa3d283554075b022a8dbd02a9cd", "sha256": "6a41950a32c6ed9cd9d9685f0060cef0c102ecfb676f559146fb0578534270c3" }, "downloads": -1, "filename": "upydevice-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "09c1aa3d283554075b022a8dbd02a9cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 71257, "upload_time": "2022-03-25T00:27:09", "upload_time_iso_8601": "2022-03-25T00:27:09.606071Z", "url": "https://files.pythonhosted.org/packages/f3/55/33e3173c9d501bc6ca082cc02b2219c5d33188ba4242ce37096813b5ad87/upydevice-0.3.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "288db91385b3f7fea3ff9d4fc9a1c987", "sha256": "abc8fc1bbceef965b28a6cc9855d7580232c2fcdf6019c36a632ed6f5e6a6880" }, "downloads": -1, "filename": "upydevice-0.3.6.tar.gz", "has_sig": false, "md5_digest": "288db91385b3f7fea3ff9d4fc9a1c987", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 344589, "upload_time": "2022-03-25T00:27:11", "upload_time_iso_8601": "2022-03-25T00:27:11.737187Z", "url": "https://files.pythonhosted.org/packages/a9/c2/9a3005962bc2af1711d721691a86014dad8176c348994ff6a12d279fd5a1/upydevice-0.3.6.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }