{ "info": { "author": "roger", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Utilities" ], "description": "\npyrtlsdr\n========\n\nA Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)\n\n\n.. image:: https://travis-ci.org/roger-/pyrtlsdr.svg?branch=master\n :target: https://travis-ci.org/roger-/pyrtlsdr\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/github/roger-/pyrtlsdr/badge.svg?branch=master\n :target: https://coveralls.io/github/roger-/pyrtlsdr?branch=master\n :alt: Coverage Status\n\n\nDescription\n===========\n\npyrtlsdr is a simple Python interface to devices supported by the RTL-SDR project, which turns certain USB DVB-T dongles\nemploying the Realtek RTL2832U chipset into low-cost, general purpose software-defined radio receivers. It wraps many of the\nfunctions in the `librtlsdr library `_ including asynchronous read support\nand also provides a more Pythonic API.\n\nLinks\n=====\n\n\n* Documentation:\n\n * https://nocarryr.github.io/pyrtlsdr/\n\n* Releases:\n\n * https://pypi.org/project/pyrtlsdr/\n\n* Source code and project home:\n\n * https://github.com/roger-/pyrtlsdr\n\n* Releases for ``librtlsdr``\\ :\n\n * https://github.com/librtlsdr/librtlsdr/releases\n\nUsage\n=====\n\npyrtlsdr can be installed by downloading the source files and running ``python setup.py install``\\ , or using `pip `_ and\n``pip install pyrtlsdr``.\n\nAll functions in librtlsdr are accessible via librtlsdr.py and a Pythonic interface is available in rtlsdr.py (recommended).\nSome documentation can be found in docstrings in the latter file.\n\nExamples\n--------\n\nSimple way to read and print some samples:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n from rtlsdr import RtlSdr\n\n sdr = RtlSdr()\n\n # configure device\n sdr.sample_rate = 2.048e6 # Hz\n sdr.center_freq = 70e6 # Hz\n sdr.freq_correction = 60 # PPM\n sdr.gain = 'auto'\n\n print(sdr.read_samples(512))\n\nPlotting the PSD with matplotlib:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n from pylab import *\n from rtlsdr import *\n\n sdr = RtlSdr()\n\n # configure device\n sdr.sample_rate = 2.4e6\n sdr.center_freq = 95e6\n sdr.gain = 4\n\n samples = sdr.read_samples(256*1024)\n sdr.close()\n\n # use matplotlib to estimate and plot the PSD\n psd(samples, NFFT=1024, Fs=sdr.sample_rate/1e6, Fc=sdr.center_freq/1e6)\n xlabel('Frequency (MHz)')\n ylabel('Relative power (dB)')\n\n show()\n\nResulting Plot:\n^^^^^^^^^^^^^^^\n\n\n.. image:: https://i.imgur.com/hFhg8.png\n :target: https://i.imgur.com/hFhg8.png\n :alt: \n\n\nSee the files 'demo_waterfall.py' and 'test.py' for more examples.\n\nHandling multiple devices:\n--------------------------\n\n*(added in v2.5.6)*\n\n.. code-block:: python\n\n from rtlsdr import RtlSdr\n\n # Get a list of detected device serial numbers (str)\n serial_numbers = RtlSdr.get_device_serial_addresses()\n\n # Find the device index for a given serial number\n device_index = RtlSdr.get_device_index_by_serial('00000001')\n\n sdr = RtlSdr(device_index)\n\n\n # Or pass the serial number directly:\n sdr = RtlSdr(serial_number='00000001')\n\nNote\n^^^^\n\nMost devices by default have the same serial number: '0000001'. This can be set\nto a custom value by using the `rtl_eeprom `_ utility packaged with ``librtlsdr``.\n\nExperimental features\n=====================\n\nTwo new submodules are available for testing: **rtlsdraio**\\ , which adds native Python 3 asynchronous support (asyncio module), and **rtlsdrtcp** which adds a TCP server/client for accessing a device over the network. See the respective modules in the rtlsdr folder for more details and feel free to test and report any bugs!\n\nrtlsdraio\n---------\n\nNote that the rtlsdraio module is automatically imported and adds ``stream()`` and ``stop()`` methods to the normal ``RtlSdr`` class. It also requires the new ``async``\\ /\\ ``await`` syntax introduced in Python 3.5+.\n\nThe syntax is basically:\n\n.. code-block:: python\n\n import asyncio\n from rtlsdr import RtlSdr\n\n async def streaming():\n sdr = RtlSdr()\n\n async for samples in sdr.stream():\n # do something with samples\n # ...\n\n # to stop streaming:\n await sdr.stop()\n\n # done\n sdr.close()\n\n loop = asyncio.get_event_loop()\n loop.run_until_complete(streaming())\n\nrtlsdrtcp\n---------\n\nThe ``RtlSdrTcpServer`` class is meant to be connected physically to an SDR dongle and communicate with an instance of ``RtlSdrTcpClient``. The client is intended to function as closely as possible to the base RtlSdr class (as if it had a physical dongle attatched to it).\n\nBoth of these classes have the same arguments as the base ``RtlSdr`` class with the addition of ``hostname`` and ``port``\\ :\n\n.. code-block:: python\n\n server = RtlSdrTcpServer(hostname='192.168.1.100', port=12345)\n server.run_forever()\n # Will listen for clients until Ctrl-C is pressed\n\n.. code-block:: python\n\n # On another machine (typically)\n client = RtlSdrTcpClient(hostname='192.168.1.100', port=12345)\n client.center_freq = 2e6\n data = client.read_samples()\n\nTCP Client Mode\n---------------\n\nOn platforms where the ``librtlsdr`` library cannot be installed/compiled, it is possible to import the ``RtlSdrTcpClient`` only by setting the environment variable ``\"RTLSDR_CLIENT_MODE\"`` to ``\"true\"``. If this is set, no other modules will be available.\n\n*Feature added in v0.2.4*\n\nDependencies\n============\n\n\n* Windows/Linux/OSX\n* Python 2.7.x/3.3+\n* `librtlsdr `_\n* **Optional**\\ : NumPy (wraps samples in a more convenient form)\n\nmatplotlib is also useful for plotting data. The librtlsdr binaries (rtlsdr.dll in Windows and librtlsdr.so in Linux)\nshould be in the pyrtlsdr directory, or a system path. Note that these binaries may have additional dependencies.\n\nTodo\n====\n\nThere are a few remaining functions in librtlsdr that haven't been wrapped yet. It's a simple process if there's an additional\nfunction you need to add support for, and please send a pull request if you'd like to share your changes.\n\nTroubleshooting\n===============\n\n\n* \n Some operating systems (Linux, OS X) seem to result in libusb buffer issues when performing small reads. Try reading 1024\n (or higher powers of two) samples at a time if you have problems.\n\n* \n If you're having librtlsdr import errors:\n\n\n * **Windows**\\ : Make sure all the librtlsdr DLL files (librtlsdr.dll, libusb-1.0.dll) are in your system path, or the same folder\n as this README file. Also make sure you have all of *their* dependencies (e.g. libgcc_s_dw2-1.dll or possibly the Visual Studio runtime files). If rtl_sdr.exe\n works, then you should be okay. Also note that you can't mix the 64 bit version of Python with 32 bit builds of librtlsdr, and vice versa.\n * **Linux**\\ : Make sure your LD_LIBRARY_PATH environment variable contains the directory where the librtlsdr.so.0 library is located. You can do this in a shell with (for example): ``export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib``. See `this issue `_ for more details.\n\nLicense\n=======\n\nAll of the code contained here is licensed by the GNU General Public License v3.\n\nCredit\n======\n\nCredit to dbasden for his earlier wrapper `python-librtlsdr `_ and all the\ncontributers on GitHub.\n\nCopyright (C) 2013 by Roger https://github.com/roger-\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/roger-/pyrtlsdr", "keywords": "radio librtlsdr rtlsdr sdr", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pyrtlsdr", "package_url": "https://pypi.org/project/pyrtlsdr/", "platform": "any", "project_url": "https://pypi.org/project/pyrtlsdr/", "project_urls": { "Homepage": "https://github.com/roger-/pyrtlsdr" }, "release_url": "https://pypi.org/project/pyrtlsdr/0.2.91/", "requires_dist": null, "requires_python": "", "summary": "A Python wrapper for librtlsdr (a driver for Realtek RTL2832U based SDR's)", "version": "0.2.91" }, "last_serial": 4603404, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "4d38f92928da366962661dd0e8708df4", "sha256": "e0b106bc5e1779ce0c1a0221bc269ca2d98908b7a65954c635b1366fa977681c" }, "downloads": -1, "filename": "pyrtlsdr-0.1.1.zip", "has_sig": false, "md5_digest": "4d38f92928da366962661dd0e8708df4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10241, "upload_time": "2013-04-23T23:47:12", "url": "https://files.pythonhosted.org/packages/4b/b6/dd988243edc92c58772cf64074e57791b173bd9fbacf9fe283a65d736bb9/pyrtlsdr-0.1.1.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "646336675a00d38e6f54e77a17011b95", "sha256": "cbb9086efe4320858c48f4856d09f7face191c4156510b1459ef4e5588935b6a" }, "downloads": -1, "filename": "pyrtlsdr-0.2.0.zip", "has_sig": false, "md5_digest": "646336675a00d38e6f54e77a17011b95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12654, "upload_time": "2014-06-11T21:58:05", "url": "https://files.pythonhosted.org/packages/e1/16/d127b09e6e4284dcb56226361df40eda93fc8c2ffc3c84acb556ea4c98a4/pyrtlsdr-0.2.0.zip" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "59ef66ccd53a512603eb4206cdd6539f", "sha256": "c3cb48e66e553e5a97c3f67c48d04f1c82d7f0b63280fa2c0cc10d2666f27bf0" }, "downloads": -1, "filename": "pyrtlsdr-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "59ef66ccd53a512603eb4206cdd6539f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23754, "upload_time": "2016-03-14T23:47:07", "url": "https://files.pythonhosted.org/packages/c9/af/4979eb41b0bfa3b99d9c456ced57c9e1d8ba7ddc5636394d9d180f911c83/pyrtlsdr-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be1dacee1d47e00cca8b7fbe20b8bf77", "sha256": "8315d37ec7d565131bc2bc8abf7a1503955c85a8fbc798b5ff7d5e4be7776a17" }, "downloads": -1, "filename": "pyrtlsdr-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "be1dacee1d47e00cca8b7fbe20b8bf77", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23758, "upload_time": "2016-03-14T23:47:13", "url": "https://files.pythonhosted.org/packages/4d/ff/b12479afebcfba144feebfc85f58d46e710c801be195b86d132c5d7962e9/pyrtlsdr-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08367162d1f6f848af82e49238afc8b7", "sha256": "c6685ddf6aaff833710dbfff1274eaf01e98836eebe795300451ea4c68177805" }, "downloads": -1, "filename": "pyrtlsdr-0.2.1.tar.gz", "has_sig": false, "md5_digest": "08367162d1f6f848af82e49238afc8b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19496, "upload_time": "2016-03-14T23:47:24", "url": "https://files.pythonhosted.org/packages/42/99/59cf621baebae57c5f46ee88a106b72bd555d34c7a8ad265c357b5c054fc/pyrtlsdr-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "134c5419971a7650c68b235be3014531", "sha256": "c4ba07f6546e3ab4626bd043ae341d35bbfd4c4082cef154a18f875975e21de8" }, "downloads": -1, "filename": "pyrtlsdr-0.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "134c5419971a7650c68b235be3014531", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23755, "upload_time": "2016-03-18T21:00:03", "url": "https://files.pythonhosted.org/packages/fe/0d/db9d193f4f148bcc93f378c5f6da79ab1a071506954c320c4f8519f9f82b/pyrtlsdr-0.2.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d584757cb2939784279077d1bcf1e65e", "sha256": "509e5cec0e6813cdccd3ccb928c6ea8bea4a08c679538381a3623c9646f48da0" }, "downloads": -1, "filename": "pyrtlsdr-0.2.2-py35-none-any.whl", "has_sig": false, "md5_digest": "d584757cb2939784279077d1bcf1e65e", "packagetype": "bdist_wheel", "python_version": "py35", "requires_python": null, "size": 23756, "upload_time": "2016-03-18T20:59:08", "url": "https://files.pythonhosted.org/packages/ab/93/00d0d64147c4d4399e0e575e33fc0d4255b6ce34e089a42b29559b8d2a4c/pyrtlsdr-0.2.2-py35-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f8dc111fc436886516a9c2f7f3d74d4", "sha256": "d10a397fa517a9dec0992304dd9863926d15a433238a999f7461d205f7a6fa66" }, "downloads": -1, "filename": "pyrtlsdr-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7f8dc111fc436886516a9c2f7f3d74d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23755, "upload_time": "2016-03-18T20:59:01", "url": "https://files.pythonhosted.org/packages/be/00/85a848cfddfd9bebde4eb54c9c57b53018f18314e9f7285e3395a0481dbe/pyrtlsdr-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe4edfb725d8f1c0c84587140e81aa54", "sha256": "cd632ac74f07cef8f9cc4aea348f50288a07146becf1ae0424f682c00b9fd67a" }, "downloads": -1, "filename": "pyrtlsdr-0.2.2.tar.gz", "has_sig": false, "md5_digest": "fe4edfb725d8f1c0c84587140e81aa54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17237, "upload_time": "2016-03-18T20:59:10", "url": "https://files.pythonhosted.org/packages/2b/16/4d170517fd2be3179aa010d422b06baa91c2fab0efb4aa6e4cc4e6f17fc2/pyrtlsdr-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "0b94dbded17c8f2c13147c12a8845b21", "sha256": "eb7c0b951e6480ac21d83709e303ac34b5b5deaf23b1720a9e5769637415db14" }, "downloads": -1, "filename": "pyrtlsdr-0.2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0b94dbded17c8f2c13147c12a8845b21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20640, "upload_time": "2016-04-30T17:45:46", "url": "https://files.pythonhosted.org/packages/db/64/76b15ff3df4e6a06ec60d800399cd1e136ec05eba5e646a0d7135891ef80/pyrtlsdr-0.2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e249f554543ccab4cdd16c3645d2c3fa", "sha256": "4055f2aa7c0be29a07ff6a7d3459a5a8398bda969f9bcadc9175f4817a256b10" }, "downloads": -1, "filename": "pyrtlsdr-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e249f554543ccab4cdd16c3645d2c3fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14242, "upload_time": "2016-04-30T17:45:52", "url": "https://files.pythonhosted.org/packages/2b/90/a91382a7b81cbbc6918798edb1a201d7e1989ba4fbf56b8390738056333d/pyrtlsdr-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "969e9c47f27fbfccd9016d6a4c5c9709", "sha256": "f6e156e24afafd166a8b317ceb20213266f47e6b75f9b1d27b10c9001d45d13f" }, "downloads": -1, "filename": "pyrtlsdr-0.2.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "969e9c47f27fbfccd9016d6a4c5c9709", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23734, "upload_time": "2016-08-18T18:17:48", "url": "https://files.pythonhosted.org/packages/81/33/b2b778a08401fe7a7d419eb579275ace8798c7483c2cb74647775b96d22a/pyrtlsdr-0.2.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0ece457d3b6a56e55c3d022755ef0cd", "sha256": "5f4635ef4cc223c666eee464ebd484b2a048594fded9927ce6d6af8bf4976ae5" }, "downloads": -1, "filename": "pyrtlsdr-0.2.4.tar.gz", "has_sig": false, "md5_digest": "b0ece457d3b6a56e55c3d022755ef0cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15760, "upload_time": "2016-08-18T18:17:50", "url": "https://files.pythonhosted.org/packages/dc/3a/72f0fad39a197bdcdb00fb4f9e6349e1ef7274f3055cd29b0ce58f9a1a70/pyrtlsdr-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "719debd3e2cb4375f67947bde6210d36", "sha256": "5aa87f2221dfded2554f93ba5b76a86e01ef7881acaddfa063e286451fc53abc" }, "downloads": -1, "filename": "pyrtlsdr-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "719debd3e2cb4375f67947bde6210d36", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 29090, "upload_time": "2017-07-07T20:46:32", "url": "https://files.pythonhosted.org/packages/d6/d5/f4ecaee4867bc1c92c16b6464a08f00cf02aaee6839e36db231e1c6c6877/pyrtlsdr-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4008b50a05a913187806e314fb8386a6", "sha256": "dd041143b68628c713c2227c78c40b0b4a0cb5d08df116f7bdc5f83c529be0e4" }, "downloads": -1, "filename": "pyrtlsdr-0.2.5.tar.gz", "has_sig": false, "md5_digest": "4008b50a05a913187806e314fb8386a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20049, "upload_time": "2017-07-07T20:46:33", "url": "https://files.pythonhosted.org/packages/77/54/70b7e62992f01b587812906f9d52ca78bdbf23c8388662c22002b3a3bb85/pyrtlsdr-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "f621cbee4f6c0f2e2a7cf45c22e57814", "sha256": "eec890ede8a32d80117a243c6f228c85d3e8a75276220a2dc4c0ca58c8a53e0e" }, "downloads": -1, "filename": "pyrtlsdr-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f621cbee4f6c0f2e2a7cf45c22e57814", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25444, "upload_time": "2017-09-30T20:15:10", "url": "https://files.pythonhosted.org/packages/2d/1d/1e59ba2f8bb2a696ed74c02620dece86df7e57b6143e1d4f8be392a0c498/pyrtlsdr-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23d1f6878bb1a04f6eaab1892569cd94", "sha256": "afd3a8077b9942a85565c1bae99fcd49cdff1e53e740d2ff1a62caf93f1a2625" }, "downloads": -1, "filename": "pyrtlsdr-0.2.6.tar.gz", "has_sig": false, "md5_digest": "23d1f6878bb1a04f6eaab1892569cd94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20530, "upload_time": "2017-09-30T20:15:12", "url": "https://files.pythonhosted.org/packages/27/08/0b724769644bc025a037110f43f54fe4af6918cfa09c564601f93be17cd6/pyrtlsdr-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "465a2401df756647c687945d511e8c6d", "sha256": "9ca0ecd7dba9d09b759cf77a9b084b4c6fd0f24dd4f3763085862690a460e797" }, "downloads": -1, "filename": "pyrtlsdr-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "465a2401df756647c687945d511e8c6d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25480, "upload_time": "2017-09-30T21:04:31", "url": "https://files.pythonhosted.org/packages/20/a4/8d30577f7c6cb779c5daf0721faa28758acd121efbc8008792b2356c9b1e/pyrtlsdr-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a92b55271cd90e841a9c1da21b34e2cc", "sha256": "7942fe2e7821d09206002ea7e820e694094b3f964885123eb6eee1167f39b8da" }, "downloads": -1, "filename": "pyrtlsdr-0.2.7.tar.gz", "has_sig": false, "md5_digest": "a92b55271cd90e841a9c1da21b34e2cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20550, "upload_time": "2017-09-30T21:04:33", "url": "https://files.pythonhosted.org/packages/e3/7b/644984c1eec60baee5ca121efa5551212958264ed4b095231efe92c15ba0/pyrtlsdr-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "ad4b47f6acaa656388e1d3fe5214cc28", "sha256": "10e9cc1a28a0685e5f67af66018525f6a4ca5bff94fc350d7890369c22093073" }, "downloads": -1, "filename": "pyrtlsdr-0.2.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ad4b47f6acaa656388e1d3fe5214cc28", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24555, "upload_time": "2018-05-04T17:12:29", "url": "https://files.pythonhosted.org/packages/d9/24/fdc3479f16d0daa8e8a809b206157befb11d972858fdc7b2b2ffb9e2030b/pyrtlsdr-0.2.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e684581c0a3e5afe80b0ccea76e319a", "sha256": "ec7ecfe22c9232ff79ae9116fb704fa890e332c76c959365b01562dc8e705517" }, "downloads": -1, "filename": "pyrtlsdr-0.2.8.tar.gz", "has_sig": false, "md5_digest": "6e684581c0a3e5afe80b0ccea76e319a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25055, "upload_time": "2018-05-04T17:12:30", "url": "https://files.pythonhosted.org/packages/07/42/abbe3ed73101731a828375533ea8f75e7d3c1a0df7cfbab45a8078101dad/pyrtlsdr-0.2.8.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "06bc2e2890085794c0181165f641931b", "sha256": "2f943cf29485d46a684818c55ecb3ee71a08ac8f1c2266c26d004c435bcb749e" }, "downloads": -1, "filename": "pyrtlsdr-0.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06bc2e2890085794c0181165f641931b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24942, "upload_time": "2018-08-17T17:01:23", "url": "https://files.pythonhosted.org/packages/50/08/83f97167e01c6dc359298a0d52922e223998439f045329e509225e6628e9/pyrtlsdr-0.2.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4798a3b0ce1b63f410c151b7421defa4", "sha256": "aa87d53bd4a56245eb0f4c054622ff784b47c2b458ff2f59331e5d27e08c0acc" }, "downloads": -1, "filename": "pyrtlsdr-0.2.9.tar.gz", "has_sig": false, "md5_digest": "4798a3b0ce1b63f410c151b7421defa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25469, "upload_time": "2018-08-17T17:01:25", "url": "https://files.pythonhosted.org/packages/6e/eb/eb18a0ad63cd742957844c5fc018302fe405a74a9e085ae2750352eb5b66/pyrtlsdr-0.2.9.tar.gz" } ], "0.2.91": [ { "comment_text": "", "digests": { "md5": "06b8396f76959c2d5cc8a5abad836f71", "sha256": "ddc18cb6f11bf6230952960d77c23bb93bf5246506617ec7017fd14c8fcbfc72" }, "downloads": -1, "filename": "pyrtlsdr-0.2.91-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06b8396f76959c2d5cc8a5abad836f71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24949, "upload_time": "2018-12-15T19:11:36", "url": "https://files.pythonhosted.org/packages/50/21/8c58fbe41f3b08e6a147e892156151430c30eb863f5e9e7ba12acb9b14a3/pyrtlsdr-0.2.91-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8044d38c20c1440539f496e53ff97e02", "sha256": "9d9e62c7a596ef2b9a60b86514a4bc7cf3c914a5c0a8480111140f7170955c85" }, "downloads": -1, "filename": "pyrtlsdr-0.2.91.tar.gz", "has_sig": false, "md5_digest": "8044d38c20c1440539f496e53ff97e02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26691, "upload_time": "2018-12-15T19:11:37", "url": "https://files.pythonhosted.org/packages/ee/cb/70496b7aa7d8e59468de010ed0f829a2da6b90683bab0f5e6eb6e96c3058/pyrtlsdr-0.2.91.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "06b8396f76959c2d5cc8a5abad836f71", "sha256": "ddc18cb6f11bf6230952960d77c23bb93bf5246506617ec7017fd14c8fcbfc72" }, "downloads": -1, "filename": "pyrtlsdr-0.2.91-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06b8396f76959c2d5cc8a5abad836f71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24949, "upload_time": "2018-12-15T19:11:36", "url": "https://files.pythonhosted.org/packages/50/21/8c58fbe41f3b08e6a147e892156151430c30eb863f5e9e7ba12acb9b14a3/pyrtlsdr-0.2.91-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8044d38c20c1440539f496e53ff97e02", "sha256": "9d9e62c7a596ef2b9a60b86514a4bc7cf3c914a5c0a8480111140f7170955c85" }, "downloads": -1, "filename": "pyrtlsdr-0.2.91.tar.gz", "has_sig": false, "md5_digest": "8044d38c20c1440539f496e53ff97e02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26691, "upload_time": "2018-12-15T19:11:37", "url": "https://files.pythonhosted.org/packages/ee/cb/70496b7aa7d8e59468de010ed0f829a2da6b90683bab0f5e6eb6e96c3058/pyrtlsdr-0.2.91.tar.gz" } ] }