{ "info": { "author": "ndustrial.io", "author_email": "dev@ndustrial.io", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Contxt Python SDK\n[![pypi version](https://pypip.in/v/contxt-sdk/badge.png)](https://pypi.org/project/contxt-sdk/)\n[![wercker status](https://app.wercker.com/status/960b7b32c2d94d12a3a5c89ca17e13ba/s/ \"wercker status\")](https://app.wercker.com/project/byKey/960b7b32c2d94d12a3a5c89ca17e13ba)\n\n## Dependencies\nThis project **requires** Python 3.6+.\n\n## Installation \nTo install `contxt-sdk`, just use pip:\n\n```\n$ pip install contxt-sdk\n```\n\nThis also installs a command line interface (cli) available via `contxt`, as long as your active python environment has installed the package. To see the list of supported commands, run the following:\n\n```\n$ contxt -h\n```\n\n Additionally, there is support for command line tab completion via [argcomplete](https://github.com/kislyuk/argcomplete). To active, run the following and refresh your bash environment:\n\n```\n$ activate-global-python-argcomplete\n```\n\n## Contributing\nPlease refer to the [release guide](docs/release.md).\n\n## Command Line Interface\n\n### Getting Started\nIn order to access any Contxt API, we first need to login. To do so, run the following:\n\n```\n$ contxt auth login\n```\n\nIt will prompt you for your username and password, which is the same login you use for your Contxt applications.\n\n### Available Commands\n\n#### Auth\n```\n$ contxt auth -h\nusage: contxt auth [-h] {login,logout} ...\n\noptional arguments:\n -h, --help show this help message and exit\n\nsubcommands:\n {login,logout}\n login Login to contxt\n logout Logout of contxt\n```\n\n#### IOT\n\n```\n$ contxt iot -h \nusage: contxt iot [-h] {groupings,feeds,fields,unprovisioned,field-data} ...\n\noptional arguments:\n -h, --help show this help message and exit\n\nsubcommands:\n {groupings,feeds,fields,unprovisioned,field-data}\n groupings Get groupings\n feeds Get feeds\n fields Get fields\n unprovisioned Unprovisioned fields\n field-data Get field data\n```\n\n#### EMS\n```\n$ contxt ems -h \nusage: contxt ems [-h]\n {util-spend,util-usage,util-spend-metrics,util-usage-metrics}\n ...\n\noptional arguments:\n -h, --help show this help message and exit\n\nsubcommands:\n {util-spend,util-usage,util-spend-metrics,util-usage-metrics}\n util-spend Utility spend\n util-usage Utility usage\n util-spend-metrics Utility spend metrics\n util-usage-metrics Utility usage metrics\n```\n\n#### Assets\n```\n$ contxt assets -h \nusage: contxt assets [-h]\n {facilities,types,assets,attr,attr-vals,metrics,metric-vals}\n ...\n\noptional arguments:\n -h, --help show this help message and exit\n\nsubcommands:\n {facilities,types,assets,attr,attr-vals,metrics,metric-vals}\n facilities Get facility assets\n types Get asset types\n assets Get assets\n attr Get asset attributes\n attr-vals Get asset attribute values\n metrics Get asset metrics\n metric-vals Get asset metric values\n\n```\n\n#### Contxt\n```\n$ contxt contxt -h\nusage: contxt contxt [-h] {orgs,mk-org,users,add-user} ...\n\noptional arguments:\n -h, --help show this help message and exit\n\nsubcommands:\n {orgs,mk-org,users,add-user}\n orgs Get organizations\n mk-org Create organization\n users Get users\n add-user Add user to an organization\n```\n\n#### Bus\n```\n$ contxt bus -h\nusage: contxt bus [-h] {channels} ...\n\noptional arguments:\n -h, --help show this help message and exit\n\nsubcommands:\n {channels}\n channels Get channels\n```\n\n## Workers \n\n### Machine Authentication\nSince the CLI interface is just a wrapper around different functions in the SDK, users can also leverage these\nfunctions in their own code. Within Contxt we have a concept of a machine user that is identified by a unique\nclient_id / client_secret pair (instead of a user/pass combination like regular users). When writing code that\nwill eventually go to production that will need to call other APIs (this is obviously quite common), your service\nwill automatically be given a unique client_id / client_secret pair within Contxt. When you create this service,\nyou can use these credentials in your local development environment as well.\n\n### Base Worker Class\nIn order to make development easier, we have a Worker Base Class we provide in the SDK to abstract away the\nnuance of the authentication process (if you're curious, [here](https://contxt.readme.io/docs/machine-to-machine-authentication) is a link to the documentation on this process, in\ncase you're really REALLY bored and looking for some \"light\" reading). In the root path of this SDK, you'll\nsee an \"examples\" directory that contains a few example of how to do various tasks. In the file \"sample_worker.py\",\nyou will see a very simple example of how to implement the BaseWorker class.\n\nIn this sample worker file, you will see just a few lines of code, to get started. It is vitally important, however,\nto set your environment variables for CLIENT_ID and CLIENT_SECRET. We provide these in the environment for 2\nreasons:\n- You never want to put your client_id / client_secret pair in your code to be committed anywhere. This is a\nmajor no-no as these should be regarded the same as user credentials\n- Contxt will automatically set these in the environment upon deployment to a Contxt environment (staging, prod, etc.)\nso setting this up in development will make it seamless upon deployment\n\nLooking at this [example](examples/worker.py), you can see that we're implementing the `BaseWorker` class. Behind\nthe scenes, that class is doing all the work around getting tokens, refreshing tokens, etc. so you don't have to. In\nthis example, we're going to make a call to the Contxt Facilities (Assets) Service to get a list of facilities available\nto this worker (machine user). To do so, we must instantiate the Facilities class and pass in `self.auth`.\n\nNext, in the `do_work` method, it's just making a simple\ncall to `get_facilities`. You can iterate over this list, or just print it to\nthe console (like we've done here).\n\nFrom here, you can continue to code up your application logic to perform whatever tasks you need using all the SDK\nfunctions available to you.\n\n## CLI Examples\n\n#### Exporting IOT Data\n\nYou can export field data from the IOT service with the following command:\n\n```\n$ contxt iot field-data -h\nusage: contxt iot field-data [-h] [-e END_DATE] [-p]\n grouping_id start_date {0,60,900,3600}\n```\n\nFor example:\n```\n$ contxt iot field-data \"09d26434-7b5b-448f-911c-2deb5e9a78ce\" \"2019-02-01\" 60\n```\n\nThis command will create the directory `export__` with csv files of the associated records each field within the grouping and within the specified time range. There is also a `meta.json` file which contains specific information about the export like row counts, field ids, and units.\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/ndustrialio/contxt-sdk-python", "keywords": "", "license": "ISC", "maintainer": "ndustrial.io", "maintainer_email": "dev@ndustrial.io", "name": "contxt-sdk", "package_url": "https://pypi.org/project/contxt-sdk/", "platform": "", "project_url": "https://pypi.org/project/contxt-sdk/", "project_urls": { "Homepage": "https://github.com/ndustrialio/contxt-sdk-python", "Repository": "https://github.com/ndustrialio/contxt-sdk-python" }, "release_url": "https://pypi.org/project/contxt-sdk/1.0.0b8/", "requires_dist": [ "argcomplete (>=1.10,<2.0)", "auth0-python (>=3.9,<4.0)", "dataclasses (>=0.6.0,<0.7.0); python_version < \"3.7\"", "pyjwt (>=1.7,<2.0)", "python-dateutil (>=2.8,<3.0)", "python-jose-cryptodome (>=1.3,<2.0); extra == \"server\"", "pytz (>=2019.2,<2020.0)", "requests (>=2.22,<3.0)", "tabulate (>=0.8.3,<0.9.0)", "tqdm (>=4.36,<5.0)", "tzlocal (>=2.0,<3.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Contxt SDK from ndustrial.io", "version": "1.0.0b8" }, "last_serial": 5890979, "releases": { "0.0.1b0": [ { "comment_text": "", "digests": { "md5": "a2f041620937046591b43bbbdf66e13a", "sha256": "c1b533a57052008dbdbb039323b95609484ebc017c8b3896aa0f22cbee65a17b" }, "downloads": -1, "filename": "contxt_sdk-0.0.1b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a2f041620937046591b43bbbdf66e13a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 61123, "upload_time": "2019-03-19T14:59:56", "url": "https://files.pythonhosted.org/packages/57/03/a11ac7d6a08dfd1ae09e420ad36e637bc6e04bbc0cbff18538f003ee8692/contxt_sdk-0.0.1b0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c0f989d3e596d4c2df40d22913540a5", "sha256": "1d298aee1ccb547a8146e55590b84a2e2a727898c63db3fbc54def002b67d865" }, "downloads": -1, "filename": "contxt-sdk-0.0.1b0.tar.gz", "has_sig": false, "md5_digest": "6c0f989d3e596d4c2df40d22913540a5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 49233, "upload_time": "2019-03-19T14:59:59", "url": "https://files.pythonhosted.org/packages/99/63/d4368a8273ac2c811c8a85500a40b1290053258a947877faeda0ce020ed0/contxt-sdk-0.0.1b0.tar.gz" } ], "0.0.1b1": [ { "comment_text": "", "digests": { "md5": "4aa028664cf83ba0c08cff0595152f0e", "sha256": "65ddab084b9b515488064e5053c9ff5a9823cf07a217c20d90d83191c226635c" }, "downloads": -1, "filename": "contxt_sdk-0.0.1b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4aa028664cf83ba0c08cff0595152f0e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 61126, "upload_time": "2019-03-19T15:18:29", "url": "https://files.pythonhosted.org/packages/d2/b4/63496d0d225317fa2bf5c312ec8528cd1e715f0aa762e5749cbfa9e4dd14/contxt_sdk-0.0.1b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f129ce59b4003f257e33fcabbda9fc0", "sha256": "7d52610d8051e37e4be8a5346b8a2e322fc8bce38a21cd95d30a53325886a4b9" }, "downloads": -1, "filename": "contxt-sdk-0.0.1b1.tar.gz", "has_sig": false, "md5_digest": "3f129ce59b4003f257e33fcabbda9fc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 48793, "upload_time": "2019-03-19T15:18:30", "url": "https://files.pythonhosted.org/packages/e7/35/adfa80e38de09435f024552777faa531112fd31e477588f8a6b635ed69d1/contxt-sdk-0.0.1b1.tar.gz" } ], "0.0.1b2": [ { "comment_text": "", "digests": { "md5": "52198afe0dc8e9bb3cfc280d5751e0f6", "sha256": "73610d1389ca3f704334e280eac9a5a1f1259034863827bdee3ec7f41a1fbcf7" }, "downloads": -1, "filename": "contxt_sdk-0.0.1b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52198afe0dc8e9bb3cfc280d5751e0f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 67085, "upload_time": "2019-03-27T02:59:52", "url": "https://files.pythonhosted.org/packages/16/84/0947387425d2bf702226f40e26c6661ce50992706cfbecddf4357b6af37a/contxt_sdk-0.0.1b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "436dd80259bb7aa2605138205fea5900", "sha256": "2164beb5de365f9a018482afd7907a88efee664bbfd7d7145ef309c88258b91d" }, "downloads": -1, "filename": "contxt-sdk-0.0.1b2.tar.gz", "has_sig": false, "md5_digest": "436dd80259bb7aa2605138205fea5900", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 54570, "upload_time": "2019-03-27T02:59:53", "url": "https://files.pythonhosted.org/packages/9f/aa/f48a930ac1bf65f50dcd4e769be1bae78bfab0823dee3980111b805a39e7/contxt-sdk-0.0.1b2.tar.gz" } ], "0.0.1b4": [ { "comment_text": "", "digests": { "md5": "41dde832c137eb0df8ac004fb9066c75", "sha256": "f2a03cb5c7ec5b0a5eb86308dd39259f25c2870876ef59e88ede58d993cc99a9" }, "downloads": -1, "filename": "contxt_sdk-0.0.1b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41dde832c137eb0df8ac004fb9066c75", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 87142, "upload_time": "2019-04-04T03:11:07", "url": "https://files.pythonhosted.org/packages/aa/f0/72cef50a351f2eb5f62a5f056b734622e94b35656c901c2e90dd6ddd317f/contxt_sdk-0.0.1b4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f84b65397323c389add33196237def4", "sha256": "34af77a03fac8581a6c251e332104d0a99ebecb337f126cfd6b40331a53e70dd" }, "downloads": -1, "filename": "contxt-sdk-0.0.1b4.tar.gz", "has_sig": false, "md5_digest": "0f84b65397323c389add33196237def4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 59342, "upload_time": "2019-04-04T03:11:09", "url": "https://files.pythonhosted.org/packages/c4/25/1e98b31bbbaf8e5e979ad21c5579f6f970d17e15ae24c73637204a258de8/contxt-sdk-0.0.1b4.tar.gz" } ], "0.0.1b5": [ { "comment_text": "", "digests": { "md5": "2c4999645cf8039768397ced9a19ecab", "sha256": "ec2574c0dcf7d5056cb41de81cf59beac551e555f3d72574ac40f67f09f67473" }, "downloads": -1, "filename": "contxt_sdk-0.0.1b5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2c4999645cf8039768397ced9a19ecab", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 92527, "upload_time": "2019-04-11T13:17:09", "url": "https://files.pythonhosted.org/packages/29/88/a294700b031581c34b5ca01d6c14ddab40a11db9969b64834aa004ab1481/contxt_sdk-0.0.1b5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b98a2ebc1190ad6507330e6e7fd6eaf", "sha256": "921a30906c98aea81821fe8cef36be909f6a7a0124bf057187453124e3a0abf8" }, "downloads": -1, "filename": "contxt-sdk-0.0.1b5.tar.gz", "has_sig": false, "md5_digest": "2b98a2ebc1190ad6507330e6e7fd6eaf", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 58367, "upload_time": "2019-04-11T13:17:19", "url": "https://files.pythonhosted.org/packages/f8/d1/84210dfdbb38d56ae5b4b6f0fb7fcb8526789bd80d92834179f8d41413ff/contxt-sdk-0.0.1b5.tar.gz" } ], "0.0.1b6": [ { "comment_text": "", "digests": { "md5": "7fb15b8271ac49eacc54c981682be434", "sha256": "0aceb21f6f4c0f6fcec44ab1243d0b378e877c5895148f1414e0f9938e5ecaf1" }, "downloads": -1, "filename": "contxt_sdk-0.0.1b6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7fb15b8271ac49eacc54c981682be434", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 76882, "upload_time": "2019-04-19T18:26:41", "url": "https://files.pythonhosted.org/packages/04/69/2814fd613755185ad75665708457b11ed10bfc763ba26b4dbf8570a81376/contxt_sdk-0.0.1b6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79dc144cf74157f4c91fafd766d9d4d6", "sha256": "a4bc1e29dc4fe7c083aef2cf462ccbeaf9e47951260abaea487b905bdac4feef" }, "downloads": -1, "filename": "contxt-sdk-0.0.1b6.tar.gz", "has_sig": false, "md5_digest": "79dc144cf74157f4c91fafd766d9d4d6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 62017, "upload_time": "2019-04-19T18:26:43", "url": "https://files.pythonhosted.org/packages/49/7e/5ff8f0cb24c242ca1d007d62079d56be87baceb9d971fd9331db9b77f6a2/contxt-sdk-0.0.1b6.tar.gz" } ], "1.0.0b1": [ { "comment_text": "", "digests": { "md5": "aae5ee2ec5835ed330e008bf45b4cf16", "sha256": "da8ccaf95cda7128bbbff19ec03fb74c11ee2c7ef5c411db5c1fe8ac55d3ea19" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aae5ee2ec5835ed330e008bf45b4cf16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 96979, "upload_time": "2019-07-24T20:03:44", "url": "https://files.pythonhosted.org/packages/9f/65/8673a30ece8215845e08821b41adec3522e6ae6eabaf4fcbb9db33190609/contxt_sdk-1.0.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27394d547ccc96adc5336a3464cd9052", "sha256": "3d432c869b3530b587f88298ab87e6d84c7547ae171f30e7f2ff957a49414408" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b1.tar.gz", "has_sig": false, "md5_digest": "27394d547ccc96adc5336a3464cd9052", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 73942, "upload_time": "2019-07-24T20:03:46", "url": "https://files.pythonhosted.org/packages/42/e2/4ca1ba30985351b55cee314db8407fa1a77b93e61fb8f689ff057e56bc8f/contxt-sdk-1.0.0b1.tar.gz" } ], "1.0.0b2": [ { "comment_text": "", "digests": { "md5": "8b072696998caddf71561bf483ab5fef", "sha256": "76123260a04081d24d3dd074273b6dc1f0d26d99dcfb814345b3611cddf66a2a" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b072696998caddf71561bf483ab5fef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 97033, "upload_time": "2019-08-01T20:07:53", "url": "https://files.pythonhosted.org/packages/45/54/25d63b7c99bfdf593a4fb16d1a7bd79643a29db6d97c680d131705b682dd/contxt_sdk-1.0.0b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a5264c482d5b0083b76939c77ddcf1e", "sha256": "372d9ead8f0ae0a6d2ea2a6fce6dd9f96b52bdee9cf366b56e8278f373ac4dbb" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b2.tar.gz", "has_sig": false, "md5_digest": "1a5264c482d5b0083b76939c77ddcf1e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 74008, "upload_time": "2019-08-01T20:07:55", "url": "https://files.pythonhosted.org/packages/1f/a4/d88e9508a25f2634ec9d6d2b17ad23ba9c5f90a5798f5e0c0ceb70a519b2/contxt-sdk-1.0.0b2.tar.gz" } ], "1.0.0b3": [ { "comment_text": "", "digests": { "md5": "7bd0f138123f494c50a9ab872fdb479d", "sha256": "dcbae3c9891d8683bb2effdb18be03e6182949c5c457b8f493671895d20a9fda" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7bd0f138123f494c50a9ab872fdb479d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 97034, "upload_time": "2019-08-06T19:51:46", "url": "https://files.pythonhosted.org/packages/9e/9e/8baaae7d73b74aa3392fb38b36375332d3a79506017c8323e3db15435bb2/contxt_sdk-1.0.0b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7caf53bfd02a77e3e75344045f47ebb", "sha256": "d55560eafb1ac26e53e9c042ef39dcad470bf4ea8b8a4f35400b44acffa30f1e" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b3.tar.gz", "has_sig": false, "md5_digest": "b7caf53bfd02a77e3e75344045f47ebb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 74024, "upload_time": "2019-08-06T19:51:48", "url": "https://files.pythonhosted.org/packages/1c/d0/3ed61b4aff766d46ce778d8178e6c8674fe29bf6546fa45248d4639dd766/contxt-sdk-1.0.0b3.tar.gz" } ], "1.0.0b4": [ { "comment_text": "", "digests": { "md5": "bf1422a962c122f42e0e6e2d8e81c9b7", "sha256": "1835a9c1dd46e2d824d7d7fdd77d717258fd57225787ca3c04c0b8c5e1e40101" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bf1422a962c122f42e0e6e2d8e81c9b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 97093, "upload_time": "2019-08-15T14:49:31", "url": "https://files.pythonhosted.org/packages/1d/e4/a3c514f60d5d8a5c597c366f3d74bfa3b130c3f1868883b0ac2c803946c3/contxt_sdk-1.0.0b4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a668bbddf367290027048616ccd98bb", "sha256": "35f49d4695156ab885a21af24e5c2b2d05cb4bb7ee499e8ab65c25a215e52f79" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b4.tar.gz", "has_sig": false, "md5_digest": "3a668bbddf367290027048616ccd98bb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 74106, "upload_time": "2019-08-15T14:49:34", "url": "https://files.pythonhosted.org/packages/bf/ce/01466e58a8b6f896cade0788015ef7abc7ef7f13dfd1aa6e2efd4b51c6f1/contxt-sdk-1.0.0b4.tar.gz" } ], "1.0.0b5": [ { "comment_text": "", "digests": { "md5": "da59457b54f31017a13f44b4bf609ad6", "sha256": "b6957c53ea66264252b945793e85f54a6c0080222a52832b0431ed9683045466" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da59457b54f31017a13f44b4bf609ad6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 100862, "upload_time": "2019-08-28T23:04:52", "url": "https://files.pythonhosted.org/packages/a5/2a/6a9c9b407d6771b4dfeb8ec13f0663b57802f5ec45f0e478967d9554d8f8/contxt_sdk-1.0.0b5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "57430f6136758063fef2b5eda267f366", "sha256": "db1104c52daa26bcb1ed214b71b83486ef914a65c053ccee55610897b5cff35b" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b5.tar.gz", "has_sig": false, "md5_digest": "57430f6136758063fef2b5eda267f366", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 55404, "upload_time": "2019-08-28T23:04:53", "url": "https://files.pythonhosted.org/packages/ea/97/74cebf2dbd47ac1458500f155682374ac85fb8d852a216d1bec5f66ad27e/contxt-sdk-1.0.0b5.tar.gz" } ], "1.0.0b6": [ { "comment_text": "", "digests": { "md5": "a9db593beb735f76c082a3f98cb30ee8", "sha256": "b83a2694f560253c4cf1cdab18615f971f31c0dce67f68a90824c3b40f6693c7" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a9db593beb735f76c082a3f98cb30ee8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 59771, "upload_time": "2019-09-10T15:49:30", "url": "https://files.pythonhosted.org/packages/48/66/374a9d9fc585732d5ea83fefead2e1fc4e0a2135765b17e9c7b3d8749af6/contxt_sdk-1.0.0b6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b528c3226043e38e05f881e4335a8bee", "sha256": "003e78ec234003d419666947ff43b564981b2409fed9c9ca6fd5fc0ff1363fff" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b6.tar.gz", "has_sig": false, "md5_digest": "b528c3226043e38e05f881e4335a8bee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 48675, "upload_time": "2019-09-10T15:49:32", "url": "https://files.pythonhosted.org/packages/b3/af/9955ff58945685b6de10363c9ad84c6be1b4e2803a2c6363ba58fe5d512d/contxt-sdk-1.0.0b6.tar.gz" } ], "1.0.0b7": [ { "comment_text": "", "digests": { "md5": "a6a02b72fd68ff0efe2700dcebf40abc", "sha256": "0cecc0d392d447e813d6c11935e3301de745f9e81cf0cfcbb103bd507b5f0865" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6a02b72fd68ff0efe2700dcebf40abc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 60644, "upload_time": "2019-09-19T20:57:23", "url": "https://files.pythonhosted.org/packages/c1/aa/de2c6d439c50342c641a5386f69098360b2b1c6fd4e2a7cf23a815c347d1/contxt_sdk-1.0.0b7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "befad487fea54fda80fff9315a23cece", "sha256": "56c6610b65fdbc64f925989538046173a28a47cc4d775220188072f64dac900c" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b7.tar.gz", "has_sig": false, "md5_digest": "befad487fea54fda80fff9315a23cece", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 49378, "upload_time": "2019-09-19T20:57:25", "url": "https://files.pythonhosted.org/packages/89/c8/5c24d3ab415fa4cd93f9b33249d3b1f346aa022a1a7719e632a4e56f6ae7/contxt-sdk-1.0.0b7.tar.gz" } ], "1.0.0b8": [ { "comment_text": "", "digests": { "md5": "01a5320cb84a3bf0d077433e16f893b4", "sha256": "4feff73357186eb99edca310bec32f97fc8d41e8ae6bff3dc45aefdc16cd7a76" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b8-py3-none-any.whl", "has_sig": false, "md5_digest": "01a5320cb84a3bf0d077433e16f893b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 55790, "upload_time": "2019-09-26T14:40:50", "url": "https://files.pythonhosted.org/packages/4d/50/b0dacb4c11b611c80b5868e2207ad678ed95c6516437d413182d12664df1/contxt_sdk-1.0.0b8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "766e18ccb135fe2da8b199e779eb6791", "sha256": "1b62ce76e5af56ee9e8d312ee231a943050309342161a3805eb7cafcbe66ecda" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b8.tar.gz", "has_sig": false, "md5_digest": "766e18ccb135fe2da8b199e779eb6791", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 46259, "upload_time": "2019-09-26T14:40:47", "url": "https://files.pythonhosted.org/packages/59/92/1da54fdd44b42dc10914049c0a21a3ba083a17c3af7ba4e384836666f3e9/contxt-sdk-1.0.0b8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "01a5320cb84a3bf0d077433e16f893b4", "sha256": "4feff73357186eb99edca310bec32f97fc8d41e8ae6bff3dc45aefdc16cd7a76" }, "downloads": -1, "filename": "contxt_sdk-1.0.0b8-py3-none-any.whl", "has_sig": false, "md5_digest": "01a5320cb84a3bf0d077433e16f893b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 55790, "upload_time": "2019-09-26T14:40:50", "url": "https://files.pythonhosted.org/packages/4d/50/b0dacb4c11b611c80b5868e2207ad678ed95c6516437d413182d12664df1/contxt_sdk-1.0.0b8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "766e18ccb135fe2da8b199e779eb6791", "sha256": "1b62ce76e5af56ee9e8d312ee231a943050309342161a3805eb7cafcbe66ecda" }, "downloads": -1, "filename": "contxt-sdk-1.0.0b8.tar.gz", "has_sig": false, "md5_digest": "766e18ccb135fe2da8b199e779eb6791", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 46259, "upload_time": "2019-09-26T14:40:47", "url": "https://files.pythonhosted.org/packages/59/92/1da54fdd44b42dc10914049c0a21a3ba083a17c3af7ba4e384836666f3e9/contxt-sdk-1.0.0b8.tar.gz" } ] }