{ "info": { "author": "HARDWARIO s.r.o.", "author_email": "karel.blavka@bigclown.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Communications", "Topic :: Internet", "Topic :: Utilities" ], "description": "\"BigClown\n\n# Hub Service for BigClown USB Gateway\n\n[![Travis](https://img.shields.io/travis/bigclownlabs/bch-gateway/master.svg)](https://travis-ci.org/bigclownlabs/bch-gateway)\n[![Release](https://img.shields.io/github/release/bigclownlabs/bch-gateway.svg)](https://github.com/bigclownlabs/bch-gateway/releases)\n[![License](https://img.shields.io/github/license/bigclownlabs/bch-gateway.svg)](https://github.com/bigclownlabs/bch-gateway/blob/master/LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/bcg.svg)](https://pypi.org/project/bcg/)\n[![Twitter](https://img.shields.io/twitter/follow/BigClownLabs.svg?style=social&label=Follow)](https://twitter.com/BigClownLabs)\n\nThis repository contains CLI service for BigClown USB Gateway.\n\n## Introduction\n\nThe service connects to a serial port where BigClown USB Gateway is connected.\nIt converts messages from serial port to MQTT broker and vice versa.\nRun with `--help` parameter to see the available options.\nIt works with Python 2.7+ and Python 3.5+ environments and it has been tested under Linux, macOS and Windows.\n\n## Setup\n\n pip3 install -U bcg\n\nInstall as a system-wide local Python package.\n\n git clone https://github.com/bigclownlabs/bch-gateway.git\n cd bch-gateway\n sudo pip3 install -e .\n\n> Note: Parameter `-e` instructs to install files as symlinks, so changes to the source files will be immediately available to other users of the package on the host.\n\n\n## MQTT\n\n* Get info about all connected gateway\n ```\n mosquitto_pub -t 'gateway/all/info/get' -n\n ```\n\n response:\n ```\n gateway/{name}/info {\"id\": \"836d19839c3b\", \"firmware\": \"bcf-gateway-....\"}\n ```\n\n* List of paired nodes\n ```\n mosquitto_pub -t 'gateway/{name}/nodes/get' -n\n ```\n\n response:\n ```\n gateway/{name}/nodes [\"{id-node-0}\", \"{id-node-id1}\", \"{id-node-id2}\"]\n ```\n\n* Pairing mode\n\n * Start\n ```\n mosquitto_pub -t 'gateway/{name}/pairing-mode/start' -n\n ```\n LED on gateway start blink\n\n response:\n ```\n gateway/{name}/pairing-mode \"start\"\n ```\n\n Gateway is waiting to pair node. To pare node, long press the button on Core Module.\n\n response when the node is successfully added:\n ```\n gateway/{name}/attach \"{id-node-0}\"\n gateway/{name}/attach \"{id-node-1}\"\n ...\n ```\n\n Error response if there is not enough space:\n ```\n gateway/{name}/attach-failure \"{id-node-1}\"\n ```\n\n * Stop\n ```\n mosquitto_pub -t 'gateway/{name}/pairing-mode/stop' -n\n ```\n LED on gateway turns off\n\n response:\n ```\n gateway/{name}/pairing-mode \"stop\"\n ```\n\n* Purge all nodes\n ```\n mosquitto_pub -t 'gateway/{name}/nodes/purge' -n\n ```\n\n response:\n ```\n gateway/{name}/nodes []\n ```\n\n* Manual Add/Pair node\n ```\n mosquitto_pub -t 'gateway/{name}/nodes/add' -m '\"{id-node}\"'\n ```\n\n response:\n ```\n gateway/{name}/attach \"{id-node}\"\n ```\n\n Error response if there is not enough space:\n ```\n gateway/{name}/attach-failure \"{id-node-1}\"\n ```\n\n* Manual Remove/Unpair node\n ```\n mosquitto_pub -t 'gateway/{name}/nodes/remove' -m '\"{id-node}\"'\n ```\n\n response:\n ```\n gateway/{name}/detach \"{id-node}\"\n ```\n\n* Set node alias\n ```\n mosquitto_pub -t 'gateway/usb-dongle/alias/set' -m '{\"id\": \"id-node\", \"alias\": \"new-alias\"}'\n ```\n\n respose:\n ```\n gateway/usb-dongle/alias/set/ok {\"id\": \"id-node\", \"alias\": \"new-alias\"}\n ```\n\n\n* Remove node alias\n ```\n mosquitto_pub -t 'gateway/usb-dongle/alias/remove' -m '\"{id-node}\"'\n ```\n ```\n mosquitto_pub -t 'gateway/usb-dongle/alias/set' -m '{\"id\": \"id-node\", \"alias\": null}'\n ```\n\n* Scan Start\n\n * Start\n ```\n mosquitto_pub -t 'gateway/{name}/scan/start' -n\n ```\n\n response:\n ```\n gateway/{name}/scan \"start\"\n ```\n\n response for unknown node\n ```\n gateway/{name}/found \"{id-node-0}\"\n gateway/{name}/found \"{id-node-1}\"\n gateway/{name}/found \"{id-node-2}\"\n ...\n ```\n\n * Stop\n ```\n mosquitto_pub -t 'gateway/{name}/scan/stop' -n\n ```\n\n response:\n ```\n gateway/{name}/scan \"stop\"\n ```\n\n* Automatic pairing of all visible nodes\n\n !!! This is experimental features do not all work\n\n * Start\n\n ```\n mosquitto_pub -t 'gateway/{name}/automatic-pairing/start' -n\n ```\n\n LED on gateway start blink\n\n response:\n ```\n gateway/{name}/automatic-pairing \"start\"\n ```\n\n response when the node is successfully added:\n ```\n gateway/{name}/attach \"{id-node-0}\"\n gateway/{name}/attach \"{id-node-1}\"\n ...\n ```\n\n * Stop\n ```\n mosquitto_pub -t 'gateway/{name}/automatic-pairing/stop' -n\n ```\n\n LED on gateway turns off\n\n response:\n ```\n gateway/{name}/automatic-pairing \"stop\"\n ```\n\n## Configuration file\n\n* name: string\n\n support variables:\n * {ip} - ip address\n * {id} - the id of the connected usb-dongle or core-module\n\n default: null - automatic detect name from gateway firmware\n\n example: \"{ip}-ttyUSB0\"\n\n## Node-Red buttons\n\nIf you use Node-Red, you can import text below to create buttons in your flow. You can list, pair and delete nodes with a click of the mouse.\n\n* For bcf-gateway-usb-dongle\n\n ```\n [{\"id\":\"83c6c60c.209d78\",\"type\":\"mqtt in\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"#\",\"qos\":\"2\",\"broker\":\"de273190.7f6f2\",\"x\":610,\"y\":80,\"wires\":[[\"454a64bc.50f77c\"]]},{\"id\":\"454a64bc.50f77c\",\"type\":\"debug\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"active\":true,\"console\":\"false\",\"complete\":\"false\",\"x\":790,\"y\":80,\"wires\":[]},{\"id\":\"9e87ab30.a50be8\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"All gateway info\",\"topic\":\"gateway/all/info/get\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":639,\"y\":172,\"wires\":[[\"504dd396.bb5b4c\"]]},{\"id\":\"504dd396.bb5b4c\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"de273190.7f6f2\",\"x\":824,\"y\":173,\"wires\":[]},{\"id\":\"f447966d.ed0cb8\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"Pairing mode start\",\"topic\":\"gateway/usb-dongle/pairing-mode/start\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":660,\"y\":280,\"wires\":[[\"ae043e16.df77c\"]]},{\"id\":\"ae043e16.df77c\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"de273190.7f6f2\",\"x\":825,\"y\":281,\"wires\":[]},{\"id\":\"80092576.c83998\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"Pairing mode stop\",\"topic\":\"gateway/usb-dongle/pairing-mode/stop\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":660,\"y\":320,\"wires\":[[\"86c93689.7d0e58\"]]},{\"id\":\"86c93689.7d0e58\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"de273190.7f6f2\",\"x\":825,\"y\":321,\"wires\":[]},{\"id\":\"8f7b14c7.898c38\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"List of paired nodes\",\"topic\":\"gateway/usb-dongle/nodes/get\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":650,\"y\":220,\"wires\":[[\"75f5e8db.ed19a8\"]]},{\"id\":\"75f5e8db.ed19a8\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"de273190.7f6f2\",\"x\":825,\"y\":221,\"wires\":[]},{\"id\":\"ed3cfe08.3321b\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"purge all nodes\",\"topic\":\"gateway/usb-dongle/nodes/purge\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":640,\"y\":380,\"wires\":[[\"2acde0de.0d9de\"]]},{\"id\":\"2acde0de.0d9de\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"de273190.7f6f2\",\"x\":825,\"y\":381,\"wires\":[]},{\"id\":\"de273190.7f6f2\",\"type\":\"mqtt-broker\",\"z\":\"\",\"broker\":\"localhost\",\"port\":\"1883\",\"clientid\":\"\",\"usetls\":false,\"compatmode\":true,\"keepalive\":\"60\",\"cleansession\":true,\"willTopic\":\"\",\"willQos\":\"0\",\"willPayload\":\"\",\"birthTopic\":\"\",\"birthQos\":\"0\",\"birthPayload\":\"\"}]\n ```\n\n* For bcf-gateway-core-module\n ```\n [{\"id\":\"47ab49a8.0a88f8\",\"type\":\"mqtt in\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"#\",\"qos\":\"2\",\"broker\":\"deefb40d.51f818\",\"x\":370,\"y\":100,\"wires\":[[\"7208a9c6.a8d3e8\"]]},{\"id\":\"7208a9c6.a8d3e8\",\"type\":\"debug\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"active\":true,\"console\":\"false\",\"complete\":\"false\",\"x\":550,\"y\":100,\"wires\":[]},{\"id\":\"3e634a0c.8e15e6\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"All gateway info\",\"topic\":\"gateway/all/info/get\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":399,\"y\":192,\"wires\":[[\"84e9ef97.a81d5\"]]},{\"id\":\"84e9ef97.a81d5\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"deefb40d.51f818\",\"x\":584,\"y\":193,\"wires\":[]},{\"id\":\"6d1a6395.7b49ac\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"Pairing mode start\",\"topic\":\"gateway/core-module/pairing-mode/start\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":400,\"y\":320,\"wires\":[[\"6bb142ef.da565c\"]]},{\"id\":\"6bb142ef.da565c\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"deefb40d.51f818\",\"x\":585,\"y\":321,\"wires\":[]},{\"id\":\"191cf80e.901568\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"Pairing mode stop\",\"topic\":\"gateway/core-module/pairing-mode/stop\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":400,\"y\":360,\"wires\":[[\"11669b55.138775\"]]},{\"id\":\"11669b55.138775\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"deefb40d.51f818\",\"x\":585,\"y\":361,\"wires\":[]},{\"id\":\"de1bca38.1214f8\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"List of paired nodes\",\"topic\":\"gateway/core-module/nodes/get\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":410,\"y\":240,\"wires\":[[\"7cb77d25.465514\"]]},{\"id\":\"7cb77d25.465514\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"deefb40d.51f818\",\"x\":585,\"y\":241,\"wires\":[]},{\"id\":\"ec929b66.dddbb8\",\"type\":\"inject\",\"z\":\"97027127.a55f7\",\"name\":\"purge all nodes\",\"topic\":\"gateway/core-module/nodes/purge\",\"payload\":\"\",\"payloadType\":\"str\",\"repeat\":\"\",\"crontab\":\"\",\"once\":false,\"x\":400,\"y\":420,\"wires\":[[\"afe70282.f5ead\"]]},{\"id\":\"afe70282.f5ead\",\"type\":\"mqtt out\",\"z\":\"97027127.a55f7\",\"name\":\"\",\"topic\":\"\",\"qos\":\"\",\"retain\":\"\",\"broker\":\"deefb40d.51f818\",\"x\":585,\"y\":421,\"wires\":[]},{\"id\":\"deefb40d.51f818\",\"type\":\"mqtt-broker\",\"z\":\"\",\"broker\":\"localhost\",\"port\":\"1883\",\"clientid\":\"\",\"usetls\":false,\"compatmode\":true,\"keepalive\":\"60\",\"cleansession\":true,\"willTopic\":\"\",\"willQos\":\"0\",\"willPayload\":\"\",\"birthTopic\":\"\",\"birthQos\":\"0\",\"birthPayload\":\"\"}]\n ```\n\n## License\n\nThis project is licensed under the [MIT License](https://opensource.org/licenses/MIT/) - see the [LICENSE](LICENSE) file for details.\n\n---\n\nMade with ❤  by [**HARDWARIO s.r.o.**](https://www.hardwario.com/) in the heart of Europe.", "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/bigclownlabs/bch-usb-gateway", "keywords": "BigClown,BigClownLabs,gateway,MQTT", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bcg", "package_url": "https://pypi.org/project/bcg/", "platform": "", "project_url": "https://pypi.org/project/bcg/", "project_urls": { "Homepage": "https://github.com/bigclownlabs/bch-usb-gateway" }, "release_url": "https://pypi.org/project/bcg/1.16.2/", "requires_dist": null, "requires_python": "", "summary": "BigClown USB Gateway", "version": "1.16.2" }, "last_serial": 4878585, "releases": { "1.10.1": [ { "comment_text": "", "digests": { "md5": "72b97a328ab817a77c98eb3ab3ab8f22", "sha256": "72de072f6bbb31b4401d6af0188023010c871e5a51fdd4a88e5852fd076dac12" }, "downloads": -1, "filename": "bcg-1.10.1.tar.gz", "has_sig": false, "md5_digest": "72b97a328ab817a77c98eb3ab3ab8f22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6122, "upload_time": "2017-11-29T17:30:54", "url": "https://files.pythonhosted.org/packages/2e/b6/6d57b2667cdc48087d4eb62fc615a232d55d57d93516be24c1e59adf2151/bcg-1.10.1.tar.gz" } ], "1.10.2": [ { "comment_text": "", "digests": { "md5": "5debd36e3e8c7733571d307547350427", "sha256": "dd09257aca7d52584f3054872374ecead5f68cd020c04e4bbcad74ee2e20dff0" }, "downloads": -1, "filename": "bcg-1.10.2.tar.gz", "has_sig": false, "md5_digest": "5debd36e3e8c7733571d307547350427", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6136, "upload_time": "2017-12-05T15:11:00", "url": "https://files.pythonhosted.org/packages/d0/9a/aeba3c094ae9a868108e9c05afc88195945d62e11861827fa64ac00878a1/bcg-1.10.2.tar.gz" } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "e3c60a63cdfdf52b44386ff83f7307d4", "sha256": "644e336c0b3b0c285d850b49afb4088d93e2913a5c3c6e29685860646797feec" }, "downloads": -1, "filename": "bcg-1.11.0.tar.gz", "has_sig": false, "md5_digest": "e3c60a63cdfdf52b44386ff83f7307d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6209, "upload_time": "2017-12-08T12:16:34", "url": "https://files.pythonhosted.org/packages/97/13/68f1d0cbacd0c93173a966d69ec3042c59a4d629020dd099e811462e6c61/bcg-1.11.0.tar.gz" } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "f0ad7c988ed3c48d4d506f4e62fee92a", "sha256": "7ed2d19fab02024a147afd95f5567d8345d769e7ebd439abfab6e93c70c0a317" }, "downloads": -1, "filename": "bcg-1.12.0.tar.gz", "has_sig": false, "md5_digest": "f0ad7c988ed3c48d4d506f4e62fee92a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6472, "upload_time": "2017-12-31T14:56:29", "url": "https://files.pythonhosted.org/packages/97/35/68a3f9b93a4ea70c828fb5cc5f28e0251b2fcd1b8d1368bb356f9a67d846/bcg-1.12.0.tar.gz" } ], "1.12.1": [ { "comment_text": "", "digests": { "md5": "5b995e7340055c33fe3ae10ba22240bf", "sha256": "a001284524bf1f9ae51647b80d3a06dca84183ddea29defcd98af74ec7f23355" }, "downloads": -1, "filename": "bcg-1.12.1.tar.gz", "has_sig": false, "md5_digest": "5b995e7340055c33fe3ae10ba22240bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6427, "upload_time": "2017-12-31T20:20:28", "url": "https://files.pythonhosted.org/packages/1a/46/37461622e1a473674732f2be2142210e57b82bf72a676d8b787850ef78a2/bcg-1.12.1.tar.gz" } ], "1.12.2": [ { "comment_text": "", "digests": { "md5": "fdb13f75143dbc582dc41901bd1e66c2", "sha256": "6a572265fc055eb6e3e621a2dc1206a2823b37ef96ae7f2fc34a43ab6449c362" }, "downloads": -1, "filename": "bcg-1.12.2.tar.gz", "has_sig": false, "md5_digest": "fdb13f75143dbc582dc41901bd1e66c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6490, "upload_time": "2018-01-10T16:52:22", "url": "https://files.pythonhosted.org/packages/74/de/79f5564b612f787a95237b3f08e9f5dc11e42f8e665c50ec9809e4a34e59/bcg-1.12.2.tar.gz" } ], "1.13.0": [ { "comment_text": "", "digests": { "md5": "f5648b662f967cb22f51578c1f019877", "sha256": "c2d192534a0896ca4d616fd0e50716fac97fe3b4e65dcf0451e2aca87d541826" }, "downloads": -1, "filename": "bcg-1.13.0.tar.gz", "has_sig": false, "md5_digest": "f5648b662f967cb22f51578c1f019877", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9037, "upload_time": "2018-01-31T16:41:17", "url": "https://files.pythonhosted.org/packages/8f/cd/450242b31186426b60c49c1d3618445b0073c68d174e59c809696b21df3f/bcg-1.13.0.tar.gz" } ], "1.14.0": [ { "comment_text": "", "digests": { "md5": "3f71e2c0579f6d261e1475a9d5a34291", "sha256": "799c135a8f7800cea15056d56b9e6575c907e9869039bae29cc33218cff294d4" }, "downloads": -1, "filename": "bcg-1.14.0.tar.gz", "has_sig": false, "md5_digest": "3f71e2c0579f6d261e1475a9d5a34291", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9802, "upload_time": "2018-05-23T20:33:46", "url": "https://files.pythonhosted.org/packages/5b/f9/3b314f2206abd59fca202e8251fcb3e91d60750a4430111bb7feb0c63a48/bcg-1.14.0.tar.gz" } ], "1.15.0": [ { "comment_text": "", "digests": { "md5": "0af04bcfc0ec4323035d2a591380487b", "sha256": "125e426dea9f58a9536f1f0431c7d6877230510560a2fcdf754e4ae6a08bdf14" }, "downloads": -1, "filename": "bcg-1.15.0.tar.gz", "has_sig": false, "md5_digest": "0af04bcfc0ec4323035d2a591380487b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9970, "upload_time": "2018-08-07T10:13:51", "url": "https://files.pythonhosted.org/packages/0e/9e/dfd1b81f31330aa7344cd04213057a0c33948fb0aec0b46c02b05fca33cc/bcg-1.15.0.tar.gz" } ], "1.16.1": [ { "comment_text": "", "digests": { "md5": "4e3993d6d11b9887ababc9a2ed310882", "sha256": "3b670648f9f99ecb497884b9bdce8f7873cd9f4cddec7203eada1548f2a50ed7" }, "downloads": -1, "filename": "bcg-1.16.1.tar.gz", "has_sig": false, "md5_digest": "4e3993d6d11b9887ababc9a2ed310882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14039, "upload_time": "2019-02-07T09:33:30", "url": "https://files.pythonhosted.org/packages/89/9a/4855efdc65b15581327b4484a04c61f88620c43df8ef556b9d40eb7681a8/bcg-1.16.1.tar.gz" } ], "1.16.2": [ { "comment_text": "", "digests": { "md5": "aa5b656dd76db60af9d982c5945a80f5", "sha256": "ce7f27f372551c0beb3f8929af2d779417d9dcd0feaa2fa2dc49e87b1416c536" }, "downloads": -1, "filename": "bcg-1.16.2.tar.gz", "has_sig": false, "md5_digest": "aa5b656dd76db60af9d982c5945a80f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14014, "upload_time": "2019-02-28T10:17:20", "url": "https://files.pythonhosted.org/packages/70/5a/d4884bf54596ff7e412e742176de893dbd666b0a432818824497f4976545/bcg-1.16.2.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "2a163c4081c6419343d65c6ec11e4931", "sha256": "eb4cf05764c79e9f7ffe63408257efff6c71551fc3ba84cf00697e92b91ee7d3" }, "downloads": -1, "filename": "bcg-1.6.0.tar.gz", "has_sig": false, "md5_digest": "2a163c4081c6419343d65c6ec11e4931", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5153, "upload_time": "2017-10-17T22:15:50", "url": "https://files.pythonhosted.org/packages/7b/96/ad474f81d6322d2556195f37fb5e31e6a57d2f81d6974084d43d7a4fb7af/bcg-1.6.0.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "9d38cb377e1c1ef8495000a14bb8b322", "sha256": "c18880a8c7a45d6b5523e79d3be01c409a95c8cee611405bb82dd73a18d2fd6f" }, "downloads": -1, "filename": "bcg-1.8.0.tar.gz", "has_sig": false, "md5_digest": "9d38cb377e1c1ef8495000a14bb8b322", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5571, "upload_time": "2017-10-29T17:17:21", "url": "https://files.pythonhosted.org/packages/71/e0/21acbd2d04cfb718be3ca12b949d28d97d5aac24c3003f6f95a65713aa95/bcg-1.8.0.tar.gz" } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "44dfc86f0c339f8052a315afb93821e9", "sha256": "31840e56e9ba419699b9ecf1e4a6f90a5c792ef467209da9ad49f7fd8c94b4e5" }, "downloads": -1, "filename": "bcg-1.9.1.tar.gz", "has_sig": false, "md5_digest": "44dfc86f0c339f8052a315afb93821e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5460, "upload_time": "2017-11-14T12:18:25", "url": "https://files.pythonhosted.org/packages/99/f4/6cf9f5951aa45d0e9136207a07996b4d103a18ebbf60350617035632b00d/bcg-1.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aa5b656dd76db60af9d982c5945a80f5", "sha256": "ce7f27f372551c0beb3f8929af2d779417d9dcd0feaa2fa2dc49e87b1416c536" }, "downloads": -1, "filename": "bcg-1.16.2.tar.gz", "has_sig": false, "md5_digest": "aa5b656dd76db60af9d982c5945a80f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14014, "upload_time": "2019-02-28T10:17:20", "url": "https://files.pythonhosted.org/packages/70/5a/d4884bf54596ff7e412e742176de893dbd666b0a432818824497f4976545/bcg-1.16.2.tar.gz" } ] }