{ "info": { "author": "Arch", "author_email": "info@archsys.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "# baBLE - Python interface\n\nThis is the cross-platform Python interface to communicate with the platform-dependent baBLE bridge, to use\nnative Bluetooth Low Energy in your projects.\n\n- [Usage](#usage)\n- [Installation](#installation)\n- [\"bable\" script](#\"bable\"-script)\n- [Installing Support for IOTile Based Devices](#installing-support-for-iotile-based-devices)\n- [How to use it without sudo](#how-to-use-it-without-sudo)\n\n\n## Usage\n\n```python\nimport bable_interface # Import the library\nimport time\n\nbable = bable_interface.BaBLEInterface() # Create a BaBLEInterface object to send commands\nconnections = {}\n\ndef on_notification_received(success, result, failure_reason):\n print(\"Notification received:\", result, failure_reason)\n\n\ndef on_connected(success, result, failure_reason):\n print(\"Connected callback called\", result, failure_reason)\n if not success:\n bable.cancel_connection()\n else:\n connections[result['address']] = result\n char = bable_interface.Characteristic(uuid='1234', handle='0x000a', value_handle='0x000b')\n # Command can be forced to be asynchronous by setting `sync` to False (if command is sync by default)\n # It is often useful if you want to call a command into a callback function (because they must not be blocking)\n bable.set_notification(True, result['connection_handle'], char, on_notification_received=on_notification_received, sync=False)\n\n\ndef on_unexpected_disconnection(success, result, failure_reason):\n print(\"Device has been unexpectedly disconnected\", result, failure_reason)\n\n\ndef on_device_found(success, result, failure_reason):\n print(\"Device found:\", result, failure_reason)\n if result['address'] == \"11:22:33:44:55:66\":\n print(\"Connecting...\")\n # You can precise timeout duration (meaning the time before an exception is raised if no response has been received)\n # by setting the `timeout` parameter with the value you want (in seconds)\n bable.connect(result['address'], result['address_type'], on_connected, on_unexpected_disconnection, timeout=5.0)\n\n\ndef on_disconnected(success, result, failure_reason):\n print(\"Disconnected callback called\", result, failure_reason)\n\n\ndef on_error(status, message):\n print(\"Error received:\", status, message)\n bable.stop(sync=False)\n\n\n# Start the bable interface (meaning starting the threads and the subprocess needed to make it work)\n# You can restrict baBLE to only one controller by setting the controller_id (if you want to use multiple controllers)\nbable.start(on_error=on_error, controller_id=1)\n\n# Commands that could take a long time are asynchronous by default: result is sent by calling a callback function.\n# If an error occures, callback function will be called with `success` parameter as False and failure_reason as the error\nbable.start_scan(on_device_found, timeout=1)\n\ntime.sleep(10) # We can sleep here without blocking the interface (because it is running in another thread)\n\ntry:\n print(\"Disconnecting...\")\n # Command can be forced to be synchronous by setting `sync` to True (if command is async by default)\n bable.disconnect(connections['11:22:33:44:55:66'], sync=True) # Will block until disconnected\n print(\"Disconnected\")\nexcept Exception as e: # Synchronous commands raise exception on error\n print(\"Error while disconnecting:\", e)\n\n# When we have finished, we have to stop the bable interface to cleanly terminate the threads and the subprocess.\nbable.stop()\nprint(\"End\")\n```\n\n## Installation\n\nCurrently, only Linux is available (Windows and Mac coming soon...)\n\n#### From Pypi\n\nIt is recommended to install it from Pypi to have a ready-to-go package with a pre-compiled bridge in it.\n\n```bash\npip install bable-interface\n```\n\nThis technique will work for for x86_64, i686 and armv7l architecture.\n\n#### From source\n\nYou can also build it from source but you'll have to compile the bridge by yourself\n(cf [platforms/](https://github.com/iotile/baBLE/tree/master/platforms) to see how to build your bridge from source).\n\n```bash\n$ git clone https://github.com/iotile/baBLE.git\n$ cd baBLE/interfaces/python\n\n# Here you can either copy your compiled bridge to the bin folder to add it to your package...\n$ cp ./bable_interface/bin\n\n# ... or you can add the folder where the bridge executable is to your PATH (and add use_path=True to BaBLEInterface.start())\n$ export PATH=:$PATH\n\n$ python setup.py install\n```\n\n## \"bable\" script\n\nAfter installing the Python bable interface, you'll have access to the `bable` command from your shell. It could be useful\nfor 2 things:\n - get the current bable version installed (`bable --version`)\n - set the capabilities of the bridge executable ([cf \"How to use it without sudo\" part](#how-to-use-it-without-sudo))\n (`bable --set-cap`)\n\n## How to use it without sudo\n\nBy default, on Linux, you need to have root rights to communicate with the Bluetooth subkernel. But if you don't want to\nexecute your program as sudo, you can simply set the capabilities of the bridge executable. \nThe simplest way to do so is simply to run:\n\n```bash\n$ bable --set-cap\n```\n\nThis will simply run the following command, that you can obviously run by yourself, especially if you want to use a\ndifferent bable bridge:\n\n```bash\n$ sudo setcap cap_net_raw,cap_net_admin+eip \n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/iotile/baBLE/interfaces/python", "keywords": "bable,arch,bridge,BLE,Bluetooth,cross-platform", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bable-interface", "package_url": "https://pypi.org/project/bable-interface/", "platform": "", "project_url": "https://pypi.org/project/bable-interface/", "project_urls": { "Homepage": "https://github.com/iotile/baBLE/interfaces/python" }, "release_url": "https://pypi.org/project/bable-interface/1.2.1/", "requires_dist": [ "flatbuffers (==1.9)", "future ; python_version < \"3.0\"", "trollius ; python_version < \"3.4\"" ], "requires_python": "", "summary": "Python interface for BaBLE", "version": "1.2.1" }, "last_serial": 4722485, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "aee192114507bfb4324d67421b0c258e", "sha256": "034a1d038a5a5fec2af8da5b5ac2d060d1cee232d51d9ea13b3f008ce838d9c2" }, "downloads": -1, "filename": "bable_interface-1.0.0-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "aee192114507bfb4324d67421b0c258e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 777180, "upload_time": "2018-06-28T22:01:59", "url": "https://files.pythonhosted.org/packages/a7/cf/13bf0246d9dea5a58afca09ff81973ac8ce0efb2780b7fe1de285c9e7c02/bable_interface-1.0.0-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "f5df2ff194b620ff06aa52958102a819", "sha256": "5f08100f4b4566f221a9fc57833902877025d2de7fb6d83d32c95535f2d6e387" }, "downloads": -1, "filename": "bable_interface-1.0.0-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "f5df2ff194b620ff06aa52958102a819", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1023205, "upload_time": "2018-06-28T22:01:57", "url": "https://files.pythonhosted.org/packages/c6/f1/41965420367879cf18fa04f42f092942e452b747a44208f8a1109c1a6cdc/bable_interface-1.0.0-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "c0f6bf8dfd9405436f54bb7bcd774b68", "sha256": "c09443a98fc310a202213d4b471befdbedb20eb671bed3a4233548fd86af2cc5" }, "downloads": -1, "filename": "bable_interface-1.0.0-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "c0f6bf8dfd9405436f54bb7bcd774b68", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1053666, "upload_time": "2018-06-28T22:02:01", "url": "https://files.pythonhosted.org/packages/d0/0a/0fa3d8103dbe459e75fe25b706b55915bae3dc04531aef19306f78fe64af/bable_interface-1.0.0-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f7075c84b9807c2f6b6ec3eb0d78fd06", "sha256": "c4543498f6c0edcb417d13788c5bd3a4b861187df24c71e0b7b9a5222b9d5799" }, "downloads": -1, "filename": "bable_interface-1.0.0-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "f7075c84b9807c2f6b6ec3eb0d78fd06", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 777181, "upload_time": "2018-06-28T22:01:18", "url": "https://files.pythonhosted.org/packages/fd/a6/7c56b41e20f50f1ca9eace33b5ca62d3427f2af97aae0e5117c6d87aaac7/bable_interface-1.0.0-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "7472213fa45874b4ee55d1923c50b66b", "sha256": "08fcf901a0d1b82e4a760020154fe4083720904152f0bb781f3312263adf3894" }, "downloads": -1, "filename": "bable_interface-1.0.0-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "7472213fa45874b4ee55d1923c50b66b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1023205, "upload_time": "2018-06-28T22:01:16", "url": "https://files.pythonhosted.org/packages/13/b3/43e4822b1a161c12190303c35daeb39827193ac6c6a459c1245598d219b5/bable_interface-1.0.0-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "17ba20c23e4c97706aad13877875f144", "sha256": "3e595029919015c569267ee83baeed4054b28842583a8ebd74feb1169934fa12" }, "downloads": -1, "filename": "bable_interface-1.0.0-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "17ba20c23e4c97706aad13877875f144", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1053665, "upload_time": "2018-06-28T22:01:14", "url": "https://files.pythonhosted.org/packages/b2/f1/dcd5ab1393c8637f9e7b4ffdae72888b0f9fa28e095c9c57a114d83d6699/bable_interface-1.0.0-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "86099de3a46c5a1d6eb47bc942fcc97a", "sha256": "b050d4bdfd979a2144865729f0878f1f8d162e92ea2071eab4f5d87776358e92" }, "downloads": -1, "filename": "bable-interface-1.0.0.tar.gz", "has_sig": false, "md5_digest": "86099de3a46c5a1d6eb47bc942fcc97a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753651, "upload_time": "2018-06-28T22:02:03", "url": "https://files.pythonhosted.org/packages/b6/9d/638160bb13330415ee268a7b78af766cc2448a58e72a132d3eb568ef41e3/bable-interface-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "568ba45fec7f2776a3d122bd0555bd7a", "sha256": "4a504739e84b1875ae8dea6182429a6562911480ce783c20f09ed0acde74d512" }, "downloads": -1, "filename": "bable_interface-1.0.1-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "568ba45fec7f2776a3d122bd0555bd7a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 777132, "upload_time": "2018-06-28T23:06:57", "url": "https://files.pythonhosted.org/packages/fa/28/da4f0f8abc0576ac9dfe8cb6b825b1cf1fd19964631196bb2ead3f167613/bable_interface-1.0.1-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "f68ecbca2aad637b946e44f2b13b4a58", "sha256": "af7f7605fddd24f2a0d36a1f4c1682346a1c17c03a5d8e8322e045a465326bad" }, "downloads": -1, "filename": "bable_interface-1.0.1-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "f68ecbca2aad637b946e44f2b13b4a58", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1023155, "upload_time": "2018-06-28T23:06:59", "url": "https://files.pythonhosted.org/packages/16/69/9121be953b991c0f687af465fecbf349d99591fc4d6de78675bd6d182916/bable_interface-1.0.1-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "a328e8c22cd9a44396b353c1c88f5637", "sha256": "3eb301db3269f7e36853afbf7bc6509240a63eab4c6069f02064ddbe7c66aad1" }, "downloads": -1, "filename": "bable_interface-1.0.1-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "a328e8c22cd9a44396b353c1c88f5637", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1053574, "upload_time": "2018-06-28T23:07:01", "url": "https://files.pythonhosted.org/packages/04/1a/05b194c9b59fb81abdaa943a6aa2258bd36d974fe78cb2937d935a3f8a96/bable_interface-1.0.1-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "e59ae1a2679fee49d9b3b9c1d7483bcc", "sha256": "3183859ae0fec6cff0dbbd0460cf32077e2fdbb81290557cdb08f8b1f86be20b" }, "downloads": -1, "filename": "bable_interface-1.0.1-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "e59ae1a2679fee49d9b3b9c1d7483bcc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 777132, "upload_time": "2018-06-28T23:07:10", "url": "https://files.pythonhosted.org/packages/eb/f4/4161fc2155b6a97ecfa378a171ad5735ac63201c7c8fda6b48cc3ec67864/bable_interface-1.0.1-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "104c3fdabaf2791425abfbeb4e1e59b6", "sha256": "996a6bd57996797d17204d2e64835d7d9032770664faaef2e960d04c73819127" }, "downloads": -1, "filename": "bable_interface-1.0.1-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "104c3fdabaf2791425abfbeb4e1e59b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1023154, "upload_time": "2018-06-28T23:07:08", "url": "https://files.pythonhosted.org/packages/f0/27/be21dc6d35819c0599520226e19f769b8a6b5cbc54c1a50ebb5ea55600f0/bable_interface-1.0.1-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "93a4a9b1d61b26824c37da68b1c3fda0", "sha256": "d39e2534bcde6470a1920119fad0ebdc754501128517a2b1fa92f9507aec7b29" }, "downloads": -1, "filename": "bable_interface-1.0.1-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "93a4a9b1d61b26824c37da68b1c3fda0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1053573, "upload_time": "2018-06-28T23:07:11", "url": "https://files.pythonhosted.org/packages/d6/35/b4bdb2d4eb8620fb3d12490acea3561286b1df7641b9494857f48f9f73f9/bable_interface-1.0.1-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "4cf2f60d9f13c0b00b63178d489d4040", "sha256": "fef30858d3e89b89873a629bcf943a48146604f826c537377b243b6ee99a977e" }, "downloads": -1, "filename": "bable-interface-1.0.1.tar.gz", "has_sig": false, "md5_digest": "4cf2f60d9f13c0b00b63178d489d4040", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 753588, "upload_time": "2018-06-28T23:07:02", "url": "https://files.pythonhosted.org/packages/29/6d/0fbc9af2f38424606e7c94b8a4113d6908deb4eedb74ddeb9834b15862ab/bable-interface-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "f669ecf4cf36724efeb125cb7c9774c1", "sha256": "e3c0ede68e0966ab9a27be4fa0366190431bd5901cfd1e782d203f701eafc36a" }, "downloads": -1, "filename": "bable_interface-1.0.2-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "f669ecf4cf36724efeb125cb7c9774c1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 785064, "upload_time": "2018-07-06T04:12:40", "url": "https://files.pythonhosted.org/packages/44/31/9a054c6964bf279a02f41090c4ef811d330a2edf4a9d6510bd05a26d906a/bable_interface-1.0.2-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "0ca9c9307b6a05b3da2c6d043c902b2f", "sha256": "9ffeac47a5055bdcb72d1695a7d9757d13f41354d194d2aa5c06d8c2a6af3a76" }, "downloads": -1, "filename": "bable_interface-1.0.2-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "0ca9c9307b6a05b3da2c6d043c902b2f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1029884, "upload_time": "2018-07-06T04:12:44", "url": "https://files.pythonhosted.org/packages/dc/d5/36da5cf2dc965b8e351bd694c052834d5692f9139e72d7c073789d630e17/bable_interface-1.0.2-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "d30590f3f7a6598103e8c9d3c7c96017", "sha256": "e6ac27a63f6c7d2562e475be96726282e1e677452f534b2679282be00b95ca3f" }, "downloads": -1, "filename": "bable_interface-1.0.2-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d30590f3f7a6598103e8c9d3c7c96017", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1060186, "upload_time": "2018-07-06T04:12:42", "url": "https://files.pythonhosted.org/packages/26/b9/c9f902e956fad329889fcd1d19ddd537950664e6fc19f694f572694f5d3c/bable_interface-1.0.2-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "cc1c3cb63282ad49b605185ab13639cb", "sha256": "2842d11f52ad7bb18fb8525ffe52c4e51a221adce1125dbcc3892efe60134ffb" }, "downloads": -1, "filename": "bable_interface-1.0.2-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "cc1c3cb63282ad49b605185ab13639cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 785064, "upload_time": "2018-07-06T04:12:15", "url": "https://files.pythonhosted.org/packages/ef/79/5c23dfd6e7825eb639baf62d48b84dc4d172e3d861ee9f2e6b992a6f1790/bable_interface-1.0.2-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "edf61cde2992dfe33018970d4a1f1111", "sha256": "501418ea29480578165539866c8042a0800ba55bc85cb5f39c2093498928b6db" }, "downloads": -1, "filename": "bable_interface-1.0.2-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "edf61cde2992dfe33018970d4a1f1111", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1029883, "upload_time": "2018-07-06T04:12:13", "url": "https://files.pythonhosted.org/packages/69/0b/74ed6f52f6afce106d26fdc8d40bb5fed05966915de45541c3f21fab3cf3/bable_interface-1.0.2-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "ee1b3007366d873b51a6f8edf0ab5a5a", "sha256": "40a0fc84fb51c5bce24ce0edfa23394cd1a3c8d43d299e72d557faffafd6f2b1" }, "downloads": -1, "filename": "bable_interface-1.0.2-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "ee1b3007366d873b51a6f8edf0ab5a5a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1060185, "upload_time": "2018-07-06T04:12:17", "url": "https://files.pythonhosted.org/packages/f7/3f/4c090a986c49d4414b82fe9b3f2c06f870caa237fe66e6b9e6b925a07b68/bable_interface-1.0.2-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "a5258d32f312a172de49984dfc7400a4", "sha256": "49fd90045dffbf20560b3ebeaca9f75216b9660f60c29141ec903d7bea93018f" }, "downloads": -1, "filename": "bable-interface-1.0.2.tar.gz", "has_sig": false, "md5_digest": "a5258d32f312a172de49984dfc7400a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 759361, "upload_time": "2018-07-06T04:12:45", "url": "https://files.pythonhosted.org/packages/60/53/e4393f878536b1ff9af51be7fbcb7a9ccc376d699717f3b20fe4c8c74c84/bable-interface-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "9bf0fb2ff4bc57ea20764354e01f9c0c", "sha256": "e69c8d5d22891aa8d2765ba53dbda5e93f14a0cf978b71f5165dbb31e5da1190" }, "downloads": -1, "filename": "bable_interface-1.1.0-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "9bf0fb2ff4bc57ea20764354e01f9c0c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 785090, "upload_time": "2018-07-06T18:44:40", "url": "https://files.pythonhosted.org/packages/0c/dc/e061c83ca80acc28763c6f42d6ada7feb683b2b920996732aa3af57a6926/bable_interface-1.1.0-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "b60f35a4547c0fc4293fd62b09e40d0b", "sha256": "81aafffb05bf9dd4c8f5eebe23cad4f9ceb534a1ded60848fc08fae39c5d3dcf" }, "downloads": -1, "filename": "bable_interface-1.1.0-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "b60f35a4547c0fc4293fd62b09e40d0b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1029905, "upload_time": "2018-07-06T18:44:42", "url": "https://files.pythonhosted.org/packages/44/ee/c199a020f91c0e94cbe3e116bba2d125fc9ab07af35197af092da66892f5/bable_interface-1.1.0-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "21fc05356beab6884c5571f1ab44027e", "sha256": "a1bdb70f58ecabaf4006e3cbad616e3de4eb5c63d4feb2891d11e5c309e4be8f" }, "downloads": -1, "filename": "bable_interface-1.1.0-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "21fc05356beab6884c5571f1ab44027e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1060211, "upload_time": "2018-07-06T18:44:39", "url": "https://files.pythonhosted.org/packages/6f/7d/84bbe5352b438ca0e43fae4396a44935db2fe7adead629e54f12e274129d/bable_interface-1.1.0-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "f1bde752bae396457a02e09aa62c141c", "sha256": "257bb146cfe48310efbccada0acf81ce065e7eb0bea4502ee6eb2ffcc1641450" }, "downloads": -1, "filename": "bable_interface-1.1.0-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "f1bde752bae396457a02e09aa62c141c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 785089, "upload_time": "2018-07-06T18:43:57", "url": "https://files.pythonhosted.org/packages/01/fa/be25895956b63ddbdf187ac9ee78b422f4c6e55ab71d3cf9808d653fb6cc/bable_interface-1.1.0-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "b01905033bfd48f61bb676938e988484", "sha256": "88e6c1ae9b2303f52d1801d9bc135431c408f32ef5ceff3dcfc43742ced1b889" }, "downloads": -1, "filename": "bable_interface-1.1.0-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "b01905033bfd48f61bb676938e988484", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1029904, "upload_time": "2018-07-06T18:43:55", "url": "https://files.pythonhosted.org/packages/f5/be/c3269eed6c1bd1da9ef8a28f5d8a5b74e3e8290a7ab351d4783e096411f2/bable_interface-1.1.0-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "f9ff18cbe5c304b47025924b4461fa9f", "sha256": "30401d1d3585aaf993f13c3dfd365707f43bee71da05107f66d2291b487c52df" }, "downloads": -1, "filename": "bable_interface-1.1.0-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "f9ff18cbe5c304b47025924b4461fa9f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1060211, "upload_time": "2018-07-06T18:43:58", "url": "https://files.pythonhosted.org/packages/72/46/d30fa7366fa150336d2d8e640aa8900fe3f076a61146a2953fbe6d339c3c/bable_interface-1.1.0-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "d5800e0bdd3593ab7ba9f30c2219577c", "sha256": "7217a0206d9732adeae83f685910f28b9c2d84e5cd32bb7a4df64e0d20642b30" }, "downloads": -1, "filename": "bable-interface-1.1.0.tar.gz", "has_sig": false, "md5_digest": "d5800e0bdd3593ab7ba9f30c2219577c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 759375, "upload_time": "2018-07-06T18:44:44", "url": "https://files.pythonhosted.org/packages/48/3c/b0166ad8047a7691120ebfb90921343c92a6753d9bee0c39de60116fbb31/bable-interface-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "192b57020835497cb7669a07b2ddff24", "sha256": "349cf466af9e8ced129f7bdb5ec43f17d710745339b075154fa61dc8a3d6a894" }, "downloads": -1, "filename": "bable_interface-1.2.0-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "192b57020835497cb7669a07b2ddff24", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 866550, "upload_time": "2018-08-02T00:19:59", "url": "https://files.pythonhosted.org/packages/8c/b0/2d91f50587e79de56dc66c9b07e0f26bdf77910117eafcdf8ba085c032ce/bable_interface-1.2.0-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "e378dee0e2dd509c4fddcc4d63ae04e5", "sha256": "f655b5ee2cda76b61c1210b4c5d36e9c6daffbd33c960b63a85e85088a416031" }, "downloads": -1, "filename": "bable_interface-1.2.0-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "e378dee0e2dd509c4fddcc4d63ae04e5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1127694, "upload_time": "2018-08-02T00:20:01", "url": "https://files.pythonhosted.org/packages/b7/8e/087a6bd66093af088186a2db9284ea4a5a3acf4273aedfe43bbe8a7a67ed/bable_interface-1.2.0-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "f21becce2d2791b515961503040eb121", "sha256": "c5c5594afd9ac875d03ceffa220af3d8d6041e4dbf89c890930d2a8858b8bd3a" }, "downloads": -1, "filename": "bable_interface-1.2.0-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "f21becce2d2791b515961503040eb121", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1171806, "upload_time": "2018-08-02T00:19:57", "url": "https://files.pythonhosted.org/packages/6b/08/b79df709aba1119645eff3ffb91640fb28a23dfd67af118dffe96719a62a/bable_interface-1.2.0-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "475157b06d70615d2010b5c89e021b0f", "sha256": "8286a796ff43643b63f383b1c9c8983e3596057ea3678146829539fb61d1f698" }, "downloads": -1, "filename": "bable_interface-1.2.0-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "475157b06d70615d2010b5c89e021b0f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 866549, "upload_time": "2018-08-02T00:19:41", "url": "https://files.pythonhosted.org/packages/1c/17/ca95dbda3bcbd2c977c885f0bd620ab6f8e8f2cb1ea630e33768115c2421/bable_interface-1.2.0-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "9ad8e7922d467bb7b64087237622dc61", "sha256": "44f2453b479578ead8898245ab4cc52712cb615525240af7409ce8cfcc91a156" }, "downloads": -1, "filename": "bable_interface-1.2.0-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "9ad8e7922d467bb7b64087237622dc61", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1127693, "upload_time": "2018-08-02T00:19:43", "url": "https://files.pythonhosted.org/packages/84/e9/7bf60b025b837cffd807e40a1d049780e71aaec69d2cf0709196b5bb0af2/bable_interface-1.2.0-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "c38cb6abd300e0427dbab362f24b530e", "sha256": "6eff36663d6bf5142a83634b7513f6179aeef0ebbfd5782e97dcb299dd9fdedb" }, "downloads": -1, "filename": "bable_interface-1.2.0-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "c38cb6abd300e0427dbab362f24b530e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1171805, "upload_time": "2018-08-02T00:19:39", "url": "https://files.pythonhosted.org/packages/e6/7e/0352844cc19c136c9767847213971afc7ab36465886c150928cb42d2ddd0/bable_interface-1.2.0-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "ecd1b7826c931773581bfdefd6932cf7", "sha256": "07ead371d6205feb4500b8c1465541a381a0f00243250890cd55827c4ea556d4" }, "downloads": -1, "filename": "bable-interface-1.2.0.tar.gz", "has_sig": false, "md5_digest": "ecd1b7826c931773581bfdefd6932cf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 835492, "upload_time": "2018-08-02T00:20:03", "url": "https://files.pythonhosted.org/packages/ff/c6/1c0b918d69ddca9c43566297834d16d0a9426c6940c2d6ef80495dd782ec/bable-interface-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d20fba15f30226541fe47d4893d2b60b", "sha256": "3351df5f19f9fbb49bb542e25027b632fc426d82fed046d9041373d3abb119a2" }, "downloads": -1, "filename": "bable_interface-1.2.1-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "d20fba15f30226541fe47d4893d2b60b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 866798, "upload_time": "2019-01-21T17:19:34", "url": "https://files.pythonhosted.org/packages/17/1f/92bfb38d14b186363fc3dc78552b6ab0f5e0201cc7a8bcb950afd0847ac8/bable_interface-1.2.1-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "fee27a4ff404b810b7b5d4754f349919", "sha256": "aac692d9875c18a6f188f0ea9a1bdd521271c68eb3732f8e4575671f4e05a617" }, "downloads": -1, "filename": "bable_interface-1.2.1-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "fee27a4ff404b810b7b5d4754f349919", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1127811, "upload_time": "2019-01-21T17:19:36", "url": "https://files.pythonhosted.org/packages/40/92/04eeb0817162f532e3cb309b86e5d3e341dad7ecac8a7a252465e2effa09/bable_interface-1.2.1-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "998ff08846c77c6624090a75e1bd157c", "sha256": "1e6b8b4d47905ca34efedaf0296b58c56e651679cf3e13b563e8b3ebd5b1e631" }, "downloads": -1, "filename": "bable_interface-1.2.1-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "998ff08846c77c6624090a75e1bd157c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1171938, "upload_time": "2019-01-21T17:19:38", "url": "https://files.pythonhosted.org/packages/96/3a/5c7b47dcc412c8b98683d1e406702a90eef9ad5439be1856854b541e2ed6/bable_interface-1.2.1-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "61043b42ee7be5d5aee0496a9de2b281", "sha256": "af928db6f500ab12d1f73ab96a3303e59fcaf4b8f3feb30e9e53a662b1192bd0" }, "downloads": -1, "filename": "bable_interface-1.2.1-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "61043b42ee7be5d5aee0496a9de2b281", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 866798, "upload_time": "2019-01-21T17:18:34", "url": "https://files.pythonhosted.org/packages/22/73/18d06aec7d9ab6a31b1f81001b4f7fd4827961fa590455edeb83a15ece4e/bable_interface-1.2.1-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "b741fceaa73076e7d2132983b440c686", "sha256": "69ae0e9d9ab28ebf16b625b6017e37dcbc7bdabbbf1d3de72d745ec1fb5a760d" }, "downloads": -1, "filename": "bable_interface-1.2.1-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "b741fceaa73076e7d2132983b440c686", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1127809, "upload_time": "2019-01-21T17:18:38", "url": "https://files.pythonhosted.org/packages/72/11/d799e56df8ace8012e00ad99190f12e49e721d5e6dd4589d49ec1d9b3188/bable_interface-1.2.1-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "0996a34d8679d81e7d01fb44028dbf89", "sha256": "d7aad5aa7d9d832b61f28a42a841dc5a1ce87f430210195c3c0cb45e431cb3d6" }, "downloads": -1, "filename": "bable_interface-1.2.1-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0996a34d8679d81e7d01fb44028dbf89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1171937, "upload_time": "2019-01-21T17:18:37", "url": "https://files.pythonhosted.org/packages/fe/41/448160026a4895bdb38b794259365d95a35cb04d3f6918be4d080aaab31e/bable_interface-1.2.1-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "82a45f20aaffb7b48322afa44a265330", "sha256": "79051b232c1fa11d036d0aa2b17d0cf77ded854e6dfa5adaeeb4f2bdb0e5e854" }, "downloads": -1, "filename": "bable-interface-1.2.1.tar.gz", "has_sig": false, "md5_digest": "82a45f20aaffb7b48322afa44a265330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 835690, "upload_time": "2019-01-21T17:19:40", "url": "https://files.pythonhosted.org/packages/2b/f2/a1bddb4a628dbb3765a3d9c1c409dd648aec9093043a3eda1d661106f0fc/bable-interface-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d20fba15f30226541fe47d4893d2b60b", "sha256": "3351df5f19f9fbb49bb542e25027b632fc426d82fed046d9041373d3abb119a2" }, "downloads": -1, "filename": "bable_interface-1.2.1-py2-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "d20fba15f30226541fe47d4893d2b60b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 866798, "upload_time": "2019-01-21T17:19:34", "url": "https://files.pythonhosted.org/packages/17/1f/92bfb38d14b186363fc3dc78552b6ab0f5e0201cc7a8bcb950afd0847ac8/bable_interface-1.2.1-py2-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "fee27a4ff404b810b7b5d4754f349919", "sha256": "aac692d9875c18a6f188f0ea9a1bdd521271c68eb3732f8e4575671f4e05a617" }, "downloads": -1, "filename": "bable_interface-1.2.1-py2-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "fee27a4ff404b810b7b5d4754f349919", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1127811, "upload_time": "2019-01-21T17:19:36", "url": "https://files.pythonhosted.org/packages/40/92/04eeb0817162f532e3cb309b86e5d3e341dad7ecac8a7a252465e2effa09/bable_interface-1.2.1-py2-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "998ff08846c77c6624090a75e1bd157c", "sha256": "1e6b8b4d47905ca34efedaf0296b58c56e651679cf3e13b563e8b3ebd5b1e631" }, "downloads": -1, "filename": "bable_interface-1.2.1-py2-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "998ff08846c77c6624090a75e1bd157c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 1171938, "upload_time": "2019-01-21T17:19:38", "url": "https://files.pythonhosted.org/packages/96/3a/5c7b47dcc412c8b98683d1e406702a90eef9ad5439be1856854b541e2ed6/bable_interface-1.2.1-py2-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "61043b42ee7be5d5aee0496a9de2b281", "sha256": "af928db6f500ab12d1f73ab96a3303e59fcaf4b8f3feb30e9e53a662b1192bd0" }, "downloads": -1, "filename": "bable_interface-1.2.1-py3-none-linux_armv7l.whl", "has_sig": false, "md5_digest": "61043b42ee7be5d5aee0496a9de2b281", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 866798, "upload_time": "2019-01-21T17:18:34", "url": "https://files.pythonhosted.org/packages/22/73/18d06aec7d9ab6a31b1f81001b4f7fd4827961fa590455edeb83a15ece4e/bable_interface-1.2.1-py3-none-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "b741fceaa73076e7d2132983b440c686", "sha256": "69ae0e9d9ab28ebf16b625b6017e37dcbc7bdabbbf1d3de72d745ec1fb5a760d" }, "downloads": -1, "filename": "bable_interface-1.2.1-py3-none-manylinux1_i686.whl", "has_sig": false, "md5_digest": "b741fceaa73076e7d2132983b440c686", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1127809, "upload_time": "2019-01-21T17:18:38", "url": "https://files.pythonhosted.org/packages/72/11/d799e56df8ace8012e00ad99190f12e49e721d5e6dd4589d49ec1d9b3188/bable_interface-1.2.1-py3-none-manylinux1_i686.whl" }, { "comment_text": "", "digests": { "md5": "0996a34d8679d81e7d01fb44028dbf89", "sha256": "d7aad5aa7d9d832b61f28a42a841dc5a1ce87f430210195c3c0cb45e431cb3d6" }, "downloads": -1, "filename": "bable_interface-1.2.1-py3-none-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0996a34d8679d81e7d01fb44028dbf89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1171937, "upload_time": "2019-01-21T17:18:37", "url": "https://files.pythonhosted.org/packages/fe/41/448160026a4895bdb38b794259365d95a35cb04d3f6918be4d080aaab31e/bable_interface-1.2.1-py3-none-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "82a45f20aaffb7b48322afa44a265330", "sha256": "79051b232c1fa11d036d0aa2b17d0cf77ded854e6dfa5adaeeb4f2bdb0e5e854" }, "downloads": -1, "filename": "bable-interface-1.2.1.tar.gz", "has_sig": false, "md5_digest": "82a45f20aaffb7b48322afa44a265330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 835690, "upload_time": "2019-01-21T17:19:40", "url": "https://files.pythonhosted.org/packages/2b/f2/a1bddb4a628dbb3765a3d9c1c409dd648aec9093043a3eda1d661106f0fc/bable-interface-1.2.1.tar.gz" } ] }