{ "info": { "author": "Barry John Williams", "author_email": "barry@bjw.me.uk", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# openhomedevice\n\nLibrary to provide an API to an existing openhome device. The device needs to have been discovered first by something like netdisco (https://github.com/home-assistant/netdisco).\n\nThe underlying UPnP client library used is https://github.com/StevenLooman/async_upnp_client\n\n* Tested against [Linn Products Ltd](https://www.linn.co.uk/uk/) devices running Davaar 80 (thought expected to work on earlier variants)\n* Tested against [OpenHome Player](http://openhome.org/) devices\n\n## Installation\n\n`pip install openhomedevice`\n\n## API\n\n### Constructor\n\n```python\ndevice = Device(location)\nawait device.init()\n```\n\n### Methods\n\n#### Control\n\n```python\n await set_standby(standbyRequested) #bool\n await play() #starts playback\n await play_media(track_details) #start playing `track_details`\n await stop() #stops playback\n await pause() #pauses playback\n await skip(offset) #positive or negative integer\n await set_volume(volume_level) #positive number\n await increase_volume() #increase volume by 1\n await decrease_volume() #decrease volume by 1\n await set_mute(muteRequested) #bool\n await set_source(index) #positive integer (use Sources() for indices)\n await invoke_pin(index) #positive integer (use Pins() for indices)\n```\n\n#### Informational\n\n```python\n uuid() #Unique identifier\n await name() #Name of device\n await room() #Name of room\n await is_in_standby() #returns true if in standby\n await transport_state() #returns one of Stopped, Playing, Paused or Buffering.\n volume_enabled #property true if the volume service is available\n await volume_level() #returns the volume setting or None if disabled\n await is_muted() #returns true if muted or None if disabled\n await source() #returns the currently connected source as a dictionary\n await sources() #returns an array of source dictionaries with indices\n await track_info() #returns a track dictionary\n await pins() #returns an array of pin dictionaries with indices\n pins_enabled #property true if the pins service is available\n```\n\n##### Source Response\n\n```python\n{\n 'type': 'Playlist',\n 'name': 'Playlist'\n}\n```\n\n##### Sources Response\n\n```python\n[\n { 'index': 0, 'type': 'Playlist', 'name': 'Playlist' },\n { 'index': 1, 'type': 'Radio', 'name': 'Radio' },\n { 'index': 3, 'type': 'Receiver', 'name': 'Songcast' },\n { 'index': 6, 'type': 'Analog', 'name': 'Front Aux' }\n]\n```\n\n##### Pins Response\n\n```python\n[\n {'index': 1, 'title': 'Playstation 4', 'artworkUri': 'external:///source?type=Hdmi&systemName=HDMI3'}\n {'index': 4, 'title': 'Classic FM', 'artworkUri': 'http://cdn-profiles.tunein.com/s8439/images/logoq.png?t=1'}\n {'index': 6, 'title': 'Chillout Playlist', 'artworkUri': 'http://media/artwork/chillout-playlist.png'}\n]\n```\n\n##### TrackInfo Response\n\n```python\n{\n \"mimeType\": \"http-get:*:audio/x-flac:DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01700000000000000000000000000000\",\n \"rating\": None,\n \"performer\": [\n \"Fahmi Alqhai, Performer - Johann Sebastian Bach, Composer\"\n ],\n \"bitDepth\": 16,\n \"channels\": 2,\n \"disc\": None,\n \"composer\": [],\n \"year\": 2017,\n \"duration\": 460,\n \"author\": [],\n \"albumArtist\": [],\n \"type\": \"object.item.audioItem.musicTrack\",\n \"narrator\": [],\n \"description\": None,\n \"conductor\": [],\n \"albumArtwork\": \"http://static.qobuz.com/images/covers/58/20/8424562332058_600.jpg\",\n \"track\": 2,\n \"tracks\": None,\n \"artwork\": None,\n \"genre\": [\n \"Klassiek\"\n ],\n \"publisher\": \"Glossa\",\n \"albumGenre\": [\n \"Klassiek\"\n ],\n \"artist\": [\n \"Fahmi Alqhai\"\n ],\n \"bitRate\": None,\n \"albumTitle\": \"The Bach Album\",\n \"uri\": \"http://192.168.0.110:58050/stream/audio/b362f0f7a1ff33b176bcf2adde75af96.flac\",\n \"discs\": None,\n \"published\": None,\n \"title\": \"Violin Sonata No. 2 in A Minor, BWV 1003 (Arr. for Viola da gamba) : Violin Sonata No. 2 in A Minor, BWV 1003 (Arr. for Viola da gamba): II. Fuga\",\n \"sampleRate\": 44100\n}\n```\n\n##### Playing A Track\n\nUse this to play a short audio track, a podcast Uri or radio station Uri. The audio will be played using the radio source of the device. The `trackDetails` object should be the same as the one described in the `TrackInfo` section above.\n\n```python\n trackDetails = {}\n trackDetails[\"uri\"] = \"http://opml.radiotime.com/Tune.ashx?id=s122119\"\n trackDetails[\"title\"] = 'Linn Radio (Eclectic Music)'\n trackDetails[\"albumArtwork\"] = 'http://cdn-radiotime-logos.tunein.com/s122119q.png'\n\n openhomeDevice.PlayMedia(trackDetails)\n```\n\n## Example\n\n```python\npython3 demo.py\n```\n\n## Running Tests\n\n```bash\nPYTHONPATH=. pytest ./tests/*\n```\n\n## Uploading Package\n\nFollowing guide from https://packaging.python.org/tutorials/packaging-projects/\n\nUpdate version in `setup.py`\n\n```sh\npython3 setup.py sdist\ntwine upload dist/*\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/bazwilliams/openhomedevice/tarball/2.0.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bazwilliams/openhomedevice", "keywords": "upnp,dlna,openhome,linn,ds,music,render,async", "license": "", "maintainer": "", "maintainer_email": "", "name": "openhomedevice", "package_url": "https://pypi.org/project/openhomedevice/", "platform": null, "project_url": "https://pypi.org/project/openhomedevice/", "project_urls": { "Download": "https://github.com/bazwilliams/openhomedevice/tarball/2.0.1", "Homepage": "https://github.com/bazwilliams/openhomedevice" }, "release_url": "https://pypi.org/project/openhomedevice/2.0.2/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Provides an API for requesting information from an Openhome device", "version": "2.0.2", "yanked": false, "yanked_reason": null }, "last_serial": 13508157, "releases": { "0.1": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "28c0649cc51ba2d8ecc3fae2233c33df", "sha256": "f10a0f36b84d08b3df9f072f3f1453fb88f79d02a8029a2ae02ba0a6415df3db" }, "downloads": -1, "filename": "openhomedevice-0.1.1.tar.gz", "has_sig": false, "md5_digest": "28c0649cc51ba2d8ecc3fae2233c33df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2307, "upload_time": "2017-02-16T20:11:06", "upload_time_iso_8601": "2017-02-16T20:11:06.046339Z", "url": "https://files.pythonhosted.org/packages/b0/74/eefb0a927b9ed87778e61e8f5c83fcb9bbb9eafdc8f4db23a51882cf9214/openhomedevice-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "39aa3c7373a97989ca2b027fa6fe6c2a", "sha256": "5bcf4f34b4dd3a8bd2506080dc4f4e512bf31085fe61bd1f1d9e66e4193997c9" }, "downloads": -1, "filename": "openhomedevice-0.2.tar.gz", "has_sig": false, "md5_digest": "39aa3c7373a97989ca2b027fa6fe6c2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5116, "upload_time": "2017-02-16T21:24:33", "upload_time_iso_8601": "2017-02-16T21:24:33.724314Z", "url": "https://files.pythonhosted.org/packages/90/51/7942c7fde72cbe5f06e7b1c74c01796263404a9f5d767d76238e98a77232/openhomedevice-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "73f53165512f4cbea0f7bbe8a3676d81", "sha256": "b9b0ccc1fcf0e4030a6d74b803c26f0a5fa09b6b4f08962a31af7f18965625f4" }, "downloads": -1, "filename": "openhomedevice-0.2.1.tar.gz", "has_sig": false, "md5_digest": "73f53165512f4cbea0f7bbe8a3676d81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5141, "upload_time": "2017-03-05T22:54:22", "upload_time_iso_8601": "2017-03-05T22:54:22.198674Z", "url": "https://files.pythonhosted.org/packages/80/6f/dbcc341fac12d9479ad92714f6c22af2c11c8f42bdbb241c2acb8e025111/openhomedevice-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b8e40ef92956f8534942f0d6028607ad", "sha256": "ccdfa4e83655fc21e4d9a6d8a441749b59e9240703e9005e741bf04fa67d8b54" }, "downloads": -1, "filename": "openhomedevice-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b8e40ef92956f8534942f0d6028607ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5141, "upload_time": "2017-04-27T06:26:25", "upload_time_iso_8601": "2017-04-27T06:26:25.966116Z", "url": "https://files.pythonhosted.org/packages/1f/ad/ea2cb7be683dc72c7c00ffc862741ce967254e0ed6f220c3ee7ee3f6d30b/openhomedevice-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8d365c2ed7c6104305c2e77941b084b4", "sha256": "ff3eeb9fe33ab56d5907e07126e6209e5505109e9af072f07e3b09bfec920f47" }, "downloads": -1, "filename": "openhomedevice-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8d365c2ed7c6104305c2e77941b084b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6065, "upload_time": "2017-05-09T20:55:53", "upload_time_iso_8601": "2017-05-09T20:55:53.894967Z", "url": "https://files.pythonhosted.org/packages/0a/15/6e5bda3679aa624352af40a7fd8ca2554bda0e908e51e94c240910c24054/openhomedevice-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "56a9dc10371b8dbca3793065713fe9e4", "sha256": "bbff9aae658951e5186736dfca8bd839485a957b2598c855dbcc5727f0f39ed3" }, "downloads": -1, "filename": "openhomedevice-0.4.0.tar.gz", "has_sig": false, "md5_digest": "56a9dc10371b8dbca3793065713fe9e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6140, "upload_time": "2017-05-20T07:11:57", "upload_time_iso_8601": "2017-05-20T07:11:57.821714Z", "url": "https://files.pythonhosted.org/packages/ee/33/3683bfb5e2dbe2ab66bbc0c96cf39f45788a2c74dfdfa2ed613ef06c6888/openhomedevice-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ac88f5e3f844001e0d4888513e97904c", "sha256": "a27c76f634a891762a17beb1cac44d2b7bba938e538871365a1830e59358a3ab" }, "downloads": -1, "filename": "openhomedevice-0.4.1.tar.gz", "has_sig": false, "md5_digest": "ac88f5e3f844001e0d4888513e97904c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144, "upload_time": "2017-06-08T19:38:27", "upload_time_iso_8601": "2017-06-08T19:38:27.741343Z", "url": "https://files.pythonhosted.org/packages/21/ff/56b04d87142bd413d74e1744846fe7183d2791b4bb797a56c74ca2c96563/openhomedevice-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "d7fdd188e841ec0f7bc1ec3dcf0d751d", "sha256": "dc372d3442b3685847969278267298e69c6041a519df7437774ebd6ffbeb885b" }, "downloads": -1, "filename": "openhomedevice-0.4.2.tar.gz", "has_sig": false, "md5_digest": "d7fdd188e841ec0f7bc1ec3dcf0d751d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6139, "upload_time": "2017-06-08T19:42:11", "upload_time_iso_8601": "2017-06-08T19:42:11.942626Z", "url": "https://files.pythonhosted.org/packages/26/de/54d9c31095a60b09981dfe10fe6b2caee3950746a7702ac60fcf1e1efe41/openhomedevice-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "0355a9a1ff9e41e0aa7882c3b53d7a8c", "sha256": "d01001c70ee2c8d781ba66c15540871acbee7b32ae614ee85e7ae0c3eaf6d8fc" }, "downloads": -1, "filename": "openhomedevice-0.4.3.tar.gz", "has_sig": false, "md5_digest": "0355a9a1ff9e41e0aa7882c3b53d7a8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6330, "upload_time": "2018-01-19T09:53:59", "upload_time_iso_8601": "2018-01-19T09:53:59.829467Z", "url": "https://files.pythonhosted.org/packages/21/7e/db022b4460ee23582127159d54e96aeefd47eb515b5cb63b1b214db7258a/openhomedevice-0.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "7bded6d8711e09631d30cb47cd722158", "sha256": "89465c7e16718ed79a729e36b8c535f6d6b76fe524054ba354620b5a6fe72ca0" }, "downloads": -1, "filename": "openhomedevice-0.5.0.tar.gz", "has_sig": false, "md5_digest": "7bded6d8711e09631d30cb47cd722158", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6606, "upload_time": "2018-01-23T10:13:13", "upload_time_iso_8601": "2018-01-23T10:13:13.241349Z", "url": "https://files.pythonhosted.org/packages/c4/32/005a51b09407beed1a19d70ec6f0799cd02f9a29713dc6feb2a09dbb5c18/openhomedevice-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "da5a4ed2bbcdb5cf9efa4326b96bde9f", "sha256": "f035f4ff22e02a04ab3e5bc3a20f06b77f1bcde78c058e1cb67f18f71980093f" }, "downloads": -1, "filename": "openhomedevice-0.6.0.tar.gz", "has_sig": false, "md5_digest": "da5a4ed2bbcdb5cf9efa4326b96bde9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6623, "upload_time": "2018-01-23T12:53:44", "upload_time_iso_8601": "2018-01-23T12:53:44.302353Z", "url": "https://files.pythonhosted.org/packages/63/59/cd726a4322e3679c68f839e15d1a465f213518bdcae4f7e8aae82ba6a44b/openhomedevice-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "a70073ee6fcdd635089607534a6c29ce", "sha256": "40bbae1923fab91e23f6f91383b9ee71215bcf04026f61aec694705fe9d1a2b7" }, "downloads": -1, "filename": "openhomedevice-0.6.1.tar.gz", "has_sig": false, "md5_digest": "a70073ee6fcdd635089607534a6c29ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6845, "upload_time": "2019-08-08T10:00:54", "upload_time_iso_8601": "2019-08-08T10:00:54.394408Z", "url": "https://files.pythonhosted.org/packages/98/c8/258168cd8e78894f960c1cda4a33520f659ee746d7021d525d9b26a1b162/openhomedevice-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "e1038e172fcac704de37ac587fdc5dd3", "sha256": "687029c5e8d087f6c70c8b2d5dde416744daaab40ac5c2b71b24d26486659c63" }, "downloads": -1, "filename": "openhomedevice-0.6.2.tar.gz", "has_sig": false, "md5_digest": "e1038e172fcac704de37ac587fdc5dd3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11709, "upload_time": "2019-10-25T15:03:42", "upload_time_iso_8601": "2019-10-25T15:03:42.291720Z", "url": "https://files.pythonhosted.org/packages/be/c1/b25718ce0f910d082c282de2140ffbff923fc0d08d9cfdf947e8b4319284/openhomedevice-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "e334ab9b2898859490ac8f9781160b92", "sha256": "e9a2592b244814b5bdb721eccb1d5501707424075e2d4a542218b6b5c990ada5" }, "downloads": -1, "filename": "openhomedevice-0.6.3.tar.gz", "has_sig": false, "md5_digest": "e334ab9b2898859490ac8f9781160b92", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 11945, "upload_time": "2019-10-30T15:40:17", "upload_time_iso_8601": "2019-10-30T15:40:17.616723Z", "url": "https://files.pythonhosted.org/packages/3d/d5/cafbfce68ac347ff5a4febd8962b8388f04fe594d48da9890d04614b956d/openhomedevice-0.6.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "e8252009f7439265e886e4f23f0f3a10", "sha256": "2766f38d4313549e895761262a0175e5b3e06afa38aaf12bde890d5d81e63871" }, "downloads": -1, "filename": "openhomedevice-0.7.0.tar.gz", "has_sig": false, "md5_digest": "e8252009f7439265e886e4f23f0f3a10", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12435, "upload_time": "2020-01-21T19:41:21", "upload_time_iso_8601": "2020-01-21T19:41:21.534429Z", "url": "https://files.pythonhosted.org/packages/e1/e6/b8c0df69e55d58e94e6644b19119ac4f0429a15de99eb13c2e5e20ea434f/openhomedevice-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "adf990a9cfbcbcae7601a327c434dcc3", "sha256": "f0f040e115ec9eab90689eb163308b3c5f0d5b5f6bed92dff03e83f0556a1df3" }, "downloads": -1, "filename": "openhomedevice-0.7.1.tar.gz", "has_sig": false, "md5_digest": "adf990a9cfbcbcae7601a327c434dcc3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12537, "upload_time": "2020-01-21T22:11:17", "upload_time_iso_8601": "2020-01-21T22:11:17.365071Z", "url": "https://files.pythonhosted.org/packages/b1/b2/61d8dca9de675b4b35f590a8c10f7ae4656562b3106fdcaf5292cef305da/openhomedevice-0.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "1c1d4bbeb37b04e4b8158f5e0c58985e", "sha256": "79df109718e8d545ae27384f812e41ca91dc83bc16a03eeccbf7d7a7916a673e" }, "downloads": -1, "filename": "openhomedevice-0.7.2.tar.gz", "has_sig": false, "md5_digest": "1c1d4bbeb37b04e4b8158f5e0c58985e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12710, "upload_time": "2020-01-23T00:08:11", "upload_time_iso_8601": "2020-01-23T00:08:11.457800Z", "url": "https://files.pythonhosted.org/packages/9e/ee/609c517db8fa5a30e099b46893d3586852755018aa6663ec2ea480013e35/openhomedevice-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "86bbf3ad46a140925ccdc492e2652ded", "sha256": "834e103b0687a3e78842812550b795b0f17a93040f23498d2a927b66bc2095ce" }, "downloads": -1, "filename": "openhomedevice-1.0.0.tar.gz", "has_sig": false, "md5_digest": "86bbf3ad46a140925ccdc492e2652ded", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 7793, "upload_time": "2021-03-22T21:01:17", "upload_time_iso_8601": "2021-03-22T21:01:17.033789Z", "url": "https://files.pythonhosted.org/packages/e1/df/f32b2746ef7ac287ba7649335d4a4f72bb0d3eb830a59d216159d7c8de56/openhomedevice-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b9e454689ba4da14371e196bad657260", "sha256": "2c5a537ea83af5dde8d6d72fd5f11b1943dd8305b48c05b365f431fd5701e049" }, "downloads": -1, "filename": "openhomedevice-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b9e454689ba4da14371e196bad657260", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8632, "upload_time": "2021-04-22T23:38:57", "upload_time_iso_8601": "2021-04-22T23:38:57.543485Z", "url": "https://files.pythonhosted.org/packages/21/86/999252268b24b008b81783cacf6939f3996a95a37daeca94d6c12da81116/openhomedevice-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "8c80e4d29952a7568cd00e00ccf0ceb9", "sha256": "e368688b36891822b3d331a0e9dbb6d603f0e2d02985589705ba268f116ad1bd" }, "downloads": -1, "filename": "openhomedevice-2.0.0.tar.gz", "has_sig": false, "md5_digest": "8c80e4d29952a7568cd00e00ccf0ceb9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8650, "upload_time": "2021-04-23T20:17:42", "upload_time_iso_8601": "2021-04-23T20:17:42.804679Z", "url": "https://files.pythonhosted.org/packages/9e/ff/1a7e6e16d2896bd24d6b27501e2482799bfcef465826143ad9bd518ed82a/openhomedevice-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "8327547c96819d7ef19b48ed8c3fd530", "sha256": "1b803afa4ed675c0ee5f237d5c31e1815dc331b95a69226627119127bc5b6586" }, "downloads": -1, "filename": "openhomedevice-2.0.1.tar.gz", "has_sig": false, "md5_digest": "8327547c96819d7ef19b48ed8c3fd530", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8631, "upload_time": "2021-04-23T21:09:06", "upload_time_iso_8601": "2021-04-23T21:09:06.662736Z", "url": "https://files.pythonhosted.org/packages/85/78/a0b94c6950a361e9f184278101802a7be55112fdf600d794ea7b5c624037/openhomedevice-2.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "8a53edc2e6b3cb0910c6abfd11b618f5", "sha256": "ff89397b35c5c98c3dfc65268b42e8039f7eb5f2e6a0e8c668223c6c5be42480" }, "downloads": -1, "filename": "openhomedevice-2.0.2.tar.gz", "has_sig": false, "md5_digest": "8a53edc2e6b3cb0910c6abfd11b618f5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8608, "upload_time": "2022-04-13T22:58:50", "upload_time_iso_8601": "2022-04-13T22:58:50.929301Z", "url": "https://files.pythonhosted.org/packages/bc/33/fee4069ed32fc6b1a4f552710ae401af8f9c5ca602bedbd5a621827b7dce/openhomedevice-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8a53edc2e6b3cb0910c6abfd11b618f5", "sha256": "ff89397b35c5c98c3dfc65268b42e8039f7eb5f2e6a0e8c668223c6c5be42480" }, "downloads": -1, "filename": "openhomedevice-2.0.2.tar.gz", "has_sig": false, "md5_digest": "8a53edc2e6b3cb0910c6abfd11b618f5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8608, "upload_time": "2022-04-13T22:58:50", "upload_time_iso_8601": "2022-04-13T22:58:50.929301Z", "url": "https://files.pythonhosted.org/packages/bc/33/fee4069ed32fc6b1a4f552710ae401af8f9c5ca602bedbd5a621827b7dce/openhomedevice-2.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }