{ "info": { "author": "Danilchenko Maksim", "author_email": "dmax.dev@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# aiochclient\n### Async http(s) ClickHouse client for python 3.6+ with types converting in both directions, streaming support, lazy decoding on select queries and fully typed interface\n\n[![PyPI version](https://badge.fury.io/py/aiochclient.svg)](https://badge.fury.io/py/aiochclient)\n[![Travis CI](https://travis-ci.org/maximdanilchenko/aiochclient.svg?branch=master)](https://travis-ci.org/maximdanilchenko/aiochclient)\n[![Documentation Status](https://readthedocs.org/projects/aiochclient/badge/?version=latest)](https://aiochclient.readthedocs.io/en/latest/?badge=latest)\n[![codecov](https://codecov.io/gh/maximdanilchenko/aiochclient/branch/master/graph/badge.svg)](https://codecov.io/gh/maximdanilchenko/aiochclient)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n## Contents\n\n- [Install](#install)\n- [Quick start](#quick-start)\n- [Types converting](#types-converting)\n- [Connection pool](#connection-pool)\n- [Speed](#speed)\n\n## Install\n```\n> pip install aiochclient\n```\nOr to install with extras requirements for speedup:\n```\n> pip install aiochclient[speedups]\n```\nIt will additionally install [cChardet](https://pypi.python.org/pypi/cchardet) \nand [aiodns](https://pypi.python.org/pypi/aiodns) for `aiohttp` speedup \nand [ciso8601](https://github.com/closeio/ciso8601) for ultra fast \ndatetime parsing while decoding data from ClickHouse.\n\nAlso while installing it will try to build Cython extensions for speed boost (about 30%).\n\n## Quick start\n\n### Connecting to ClickHouse\n\n`aiochclient` needs `aiohttp.ClientSession` for connecting:\n\n```python\nfrom aiochclient import ChClient\nfrom aiohttp import ClientSession\n\n\nasync def main():\n async with ClientSession() as s:\n client = ChClient(s)\n assert await client.is_alive() # returns True if connection is Ok\n\n```\n\n### Making queries\n```python\nawait client.execute(\n \"CREATE TABLE t (a UInt8, b Tuple(Date, Nullable(Float32))) ENGINE = Memory\"\n)\n```\nFor INSERT queries you can pass values as `*args`. Values should be iterables:\n```python\nawait client.execute(\n \"INSERT INTO t VALUES\",\n (1, (dt.date(2018, 9, 7), None)),\n (2, (dt.date(2018, 9, 8), 3.14)),\n)\n```\nFor fetching all rows at once use `fetch` method:\n```python\nall_rows = await client.fetch(\"SELECT * FROM t\")\n```\nFor fetching first row from result use `fetchrow` method:\n```python\nrow = await client.fetchrow(\"SELECT * FROM t WHERE a=1\")\n\nassert row[0] == 1\nassert row[\"b\"] == (dt.date(2018, 9, 7), None)\n```\nYou can also use `fetchval` method, which returns \nfirst value of the first row from query result:\n```python\nval = await client.fetchval(\"SELECT b FROM t WHERE a=2\")\n\nassert val == (dt.date(2018, 9, 8), 3.14)\n```\nWith async iteration on query results steam you can fetch \nmultiple rows without loading them all into memory at once:\n```python\nasync for row in client.iterate(\n \"SELECT number, number*2 FROM system.numbers LIMIT 10000\"\n):\n assert row[0] * 2 == row[1]\n```\n\nUse `fetch`/`fetchrow`/`fetchval`/`iterate` for SELECT queries \nand `execute` or any of last for INSERT and all another queries.\n\n### Working with query results\nAll fetch queries return rows as lightweight, memory \nefficient objects (**from v`1.0.0`, before it - just tuples**)\nwith full mapping interface, where \nyou can get fields by names or by indexes: \n```python\nrow = await client.fetchrow(\"SELECT a, b FROM t WHERE a=1\")\n\nassert row[\"a\"] == 1\nassert row[0] == 1\nassert row[:] == (1, (dt.date(2018, 9, 8), 3.14))\nassert list(row.keys()) == [\"a\", \"b\"]\nassert list(row.values()) == [1, (dt.date(2018, 9, 8), 3.14)]\n```\n\n## Types converting\n\n`aiochclient` automatically converts values to needed type both \nfrom ClickHouse response and for client INSERT queries.\n\n| ClickHouse type | Python type |\n|:----------------|:------------|\n| `UInt8` | `int` |\n| `UInt16` | `int` |\n| `UInt32` | `int` |\n| `UInt64` | `int` |\n| `Int8` | `int` |\n| `Int16` | `int` |\n| `Int32` | `int` |\n| `Int64` | `int` |\n| `Float32` | `float` |\n| `Float64` | `float` |\n| `String` | `str` |\n| `FixedString` | `str` |\n| `Enum8` | `str` |\n| `Enum16` | `str` |\n| `Date` | `datetime.date` |\n| `DateTime` | `datetime.datetime` |\n| `Decimal` | `decimal.Decimal` |\n| `Decimal32` | `decimal.Decimal` |\n| `Decimal64` | `decimal.Decimal` |\n| `Decimal128` | `decimal.Decimal` |\n| `Tuple(T1, T2, ...)` | `Tuple[T1, T2, ...]` |\n| `Array(T)` | `List[T]` |\n| `UUID` | `uuid.UUID` |\n| `Nullable(T)` | `None` or `T` |\n| `Nothing` | `None` |\n| `LowCardinality(T)` | `T` |\n\n## Connection pool\n\nIf you want to change connection pool size, you can use \n[aiohttp.TCPConnector](https://docs.aiohttp.org/en/stable/client_advanced.html#limiting-connection-pool-size). \nNote that by default pool limit is 100 connections.\n\n## Speed\n\nUsing of `uvloop` and installing with `aiochclient[speedups]`\nis highly recommended for sake of speed. \n\nAs for the last version of `aiochclient` its speed \nusing one task (without gather or parallel \nclients and so on) is about \n**180k-220k rows/sec** on SELECT and about \n**50k-80k rows/sec** on INSERT queries \ndepending on its environment and ClickHouse settings.\n\n------\n\nPlease star\ufe0f this repository if this project helped you!", "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/maximdanilchenko/aiochclient", "keywords": "clickhouse async python aiohttp", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiochclient", "package_url": "https://pypi.org/project/aiochclient/", "platform": "", "project_url": "https://pypi.org/project/aiochclient/", "project_urls": { "Homepage": "https://github.com/maximdanilchenko/aiochclient" }, "release_url": "https://pypi.org/project/aiochclient/1.2.1/", "requires_dist": null, "requires_python": "", "summary": "Async http clickhouse client for python 3.6+", "version": "1.2.1" }, "last_serial": 5878690, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6c8b09da3afc61163205863a3c553711", "sha256": "124027cf48c0f7198435eadb3ae0566a8042e2d88131fe8a3959a8994574d1f4" }, "downloads": -1, "filename": "aiochclient-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6c8b09da3afc61163205863a3c553711", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6581, "upload_time": "2018-09-12T09:08:11", "url": "https://files.pythonhosted.org/packages/53/2b/a9ad220c0d4e9778e8b6e5adbf58562007013d0ac8b0997289fa86eb28d1/aiochclient-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e984f27c7a57d1baf19c317c23b1e50", "sha256": "3b8738e1899562b6c904a720dd78e668a50573e1b7967b8ceb088d642911936f" }, "downloads": -1, "filename": "aiochclient-0.0.1.tar.gz", "has_sig": false, "md5_digest": "2e984f27c7a57d1baf19c317c23b1e50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5411, "upload_time": "2018-09-12T09:08:12", "url": "https://files.pythonhosted.org/packages/12/5d/aa7daca668972361ebd398f9506032005c9ac75c1e3cc0d24118247f87f5/aiochclient-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "bb63287ab61e12654f1291e094edf8e7", "sha256": "43b4c81b3d4f79b6614e74daf58e2d8aaf9060f8aee133e5b28225d731730b36" }, "downloads": -1, "filename": "aiochclient-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bb63287ab61e12654f1291e094edf8e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9381, "upload_time": "2018-09-13T18:32:48", "url": "https://files.pythonhosted.org/packages/aa/1c/da54c374478c2a26668194313f18be060aa97007875596477031726eee9f/aiochclient-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "915edd30b90fdf287fb248ea953f8f05", "sha256": "0e41c774fab4917d74fffd5dcf697e33aa7ec0c625de1f3e2dc9a6152790976c" }, "downloads": -1, "filename": "aiochclient-0.0.2.tar.gz", "has_sig": false, "md5_digest": "915edd30b90fdf287fb248ea953f8f05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5881, "upload_time": "2018-09-13T18:32:49", "url": "https://files.pythonhosted.org/packages/30/1f/492b8fed6af8479bf8cf70f839eedcf6ec4e76e6cd1efc992d57dadddc0b/aiochclient-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "e07d67221e24aad0912ef5be6a4b446c", "sha256": "12022da15b2a147e8ad46c17eccac3000be607058f2ab9b0a696ca5ac0d7574f" }, "downloads": -1, "filename": "aiochclient-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "e07d67221e24aad0912ef5be6a4b446c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9383, "upload_time": "2018-09-13T18:36:07", "url": "https://files.pythonhosted.org/packages/36/cb/622f7572884ab616010c544955ca417856c63d3f76763d9d2cd3034bc38e/aiochclient-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d9392604d0a904424c5768de5a7d7f8", "sha256": "bbfe20904e4c90469c52d9867f337af07f0eb3728cb6c6260777eeb31183e46b" }, "downloads": -1, "filename": "aiochclient-0.0.3.tar.gz", "has_sig": false, "md5_digest": "2d9392604d0a904424c5768de5a7d7f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5880, "upload_time": "2018-09-13T18:36:08", "url": "https://files.pythonhosted.org/packages/90/0b/b577a01c1a8cb679f75d3304b4ced189e5e3b12465aab5904c5102e32b12/aiochclient-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "31c7ee07f5f68dda4131fd87a540cce4", "sha256": "acf0f6ca45b29ce3e4d91f19ecd401c042d10614090067255d7ae4577f353736" }, "downloads": -1, "filename": "aiochclient-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "31c7ee07f5f68dda4131fd87a540cce4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7289, "upload_time": "2018-09-14T08:04:06", "url": "https://files.pythonhosted.org/packages/a0/59/f823f89aa259fba6a4418c522b3dc2f3d5b0fdddff82a2a806b8afe6507e/aiochclient-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35c1c9c545f9b18183dbfb583f8a2193", "sha256": "2929970ca74a8bbe20bb899038fab8176460a7728d7f6ff5e792e69e32d23822" }, "downloads": -1, "filename": "aiochclient-0.0.4.tar.gz", "has_sig": false, "md5_digest": "35c1c9c545f9b18183dbfb583f8a2193", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6214, "upload_time": "2018-09-14T08:04:07", "url": "https://files.pythonhosted.org/packages/a3/30/e6b17280d76497c46be7976633ec28cb3de05a3d1502c6c64b680486058f/aiochclient-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d87eaaefba142ef6361a07d023e9749c", "sha256": "939e017ff8baff5aff39dc3fe89e52fc7f424354562a799c68f5982cb1d42c07" }, "downloads": -1, "filename": "aiochclient-0.0.5.tar.gz", "has_sig": false, "md5_digest": "d87eaaefba142ef6361a07d023e9749c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6474, "upload_time": "2018-09-15T12:53:02", "url": "https://files.pythonhosted.org/packages/b8/c0/e22234e84dab689c3e3032e5c40ac47766ee8cb701b781ce4b3f23da7f12/aiochclient-0.0.5.tar.gz" } ], "0.1.0rc1": [ { "comment_text": "", "digests": { "md5": "d76659336962e971fc4876d13af5afef", "sha256": "434b3713e6e86845ced5ddd23c1184763db66728281b91131afb88283bede203" }, "downloads": -1, "filename": "aiochclient-0.1.0rc1.tar.gz", "has_sig": false, "md5_digest": "d76659336962e971fc4876d13af5afef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 114448, "upload_time": "2018-12-12T11:29:15", "url": "https://files.pythonhosted.org/packages/15/78/61194e9980e317c4da71430771f79440a6cbc5b48cd11ee9d93cb570a260/aiochclient-0.1.0rc1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "47d0fb4996b6a765eb5d74d1d1d3b08c", "sha256": "bb4083c20d8c8a367fddc523b80e16685677c9dc5e4bd890a5b24f1325f66381" }, "downloads": -1, "filename": "aiochclient-0.1.1.tar.gz", "has_sig": false, "md5_digest": "47d0fb4996b6a765eb5d74d1d1d3b08c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 114543, "upload_time": "2018-12-12T13:10:44", "url": "https://files.pythonhosted.org/packages/a6/11/cd685101e3310639081c38cf8df69d959089d08aa2d6ae68838dfdac6f83/aiochclient-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "bdea802e96631ae9674167c3af2c1ab9", "sha256": "bad265533f5f4184894ce97953ff75e4948f1155c8cb10f89c5eeda3eb11787c" }, "downloads": -1, "filename": "aiochclient-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bdea802e96631ae9674167c3af2c1ab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11665, "upload_time": "2019-03-03T15:03:03", "url": "https://files.pythonhosted.org/packages/45/dd/f54bd13681fd19a6a1f62a923a955fbb8e0d9834a6bd41f8ffcc85110c20/aiochclient-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "9e9eed27eb8b209a887fbc16bed3bbcd", "sha256": "31608e39eec4d62d9258d4dfe99ffd537d3ae14110f110a1596ee1be8e970207" }, "downloads": -1, "filename": "aiochclient-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9e9eed27eb8b209a887fbc16bed3bbcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11773, "upload_time": "2019-03-03T15:04:35", "url": "https://files.pythonhosted.org/packages/97/a0/661d49c570eab06c8b41ebe6f55bad7c1023aa62fdf178fa385c88f22ed0/aiochclient-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b43029c264b493bd3dd4043d711c30d0", "sha256": "74d2ccf31bb9d1b27d1006c8e452f6794556ed2cca52a4e00209ce11e4679868" }, "downloads": -1, "filename": "aiochclient-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b43029c264b493bd3dd4043d711c30d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 116982, "upload_time": "2019-03-03T15:16:28", "url": "https://files.pythonhosted.org/packages/65/ad/c0381becd0184ccd137ab757288fba54a6c493e12a240db3d9a3a3a703d8/aiochclient-0.2.2.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d0ac899cda43f2fad7696058e7f4a0a2", "sha256": "35916d19560eaa189baa34e0374eb01538ebbaa0d76cdf194668a2ef37410271" }, "downloads": -1, "filename": "aiochclient-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d0ac899cda43f2fad7696058e7f4a0a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 118117, "upload_time": "2019-05-27T15:09:38", "url": "https://files.pythonhosted.org/packages/73/61/925d9de97520cb14a478298eaa6ee7267ac6ed5d0fd446774b0923493b98/aiochclient-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9dcd06d97b72d273188ca28e68ecfbac", "sha256": "4b686be9fa140e5c5fc3ff77062ca91e8b521d2df3efd31868f032f773befb13" }, "downloads": -1, "filename": "aiochclient-1.0.2.tar.gz", "has_sig": false, "md5_digest": "9dcd06d97b72d273188ca28e68ecfbac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 118912, "upload_time": "2019-06-27T12:27:36", "url": "https://files.pythonhosted.org/packages/ca/5c/33326e9edb67be58b96ae2f24d30c3cdbfbd8876ef422dc0922a04140edd/aiochclient-1.0.2.tar.gz" } ], "1.1.0rc0": [ { "comment_text": "", "digests": { "md5": "17cdc2fa4fb5aa3f68d643f5b5f548e3", "sha256": "9750b53ad70bb0dd726ed3a3b4036880ca23b41190aa218dfad4a764d97bd265" }, "downloads": -1, "filename": "aiochclient-1.1.0rc0.tar.gz", "has_sig": false, "md5_digest": "17cdc2fa4fb5aa3f68d643f5b5f548e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 161342, "upload_time": "2019-08-16T07:56:48", "url": "https://files.pythonhosted.org/packages/d1/5d/0bd8288d9bdbabef799dc5a1c6374a5c8bbbba89db726bbb65880d97b878/aiochclient-1.1.0rc0.tar.gz" } ], "1.1.1rc0": [ { "comment_text": "", "digests": { "md5": "76a3b09b398c15fd4ea43a8a9dbf25b7", "sha256": "3b3765a6a9ececdba1d632de3811a1043e25bce7f6044e908cb7a8917ecc424d" }, "downloads": -1, "filename": "aiochclient-1.1.1rc0.tar.gz", "has_sig": false, "md5_digest": "76a3b09b398c15fd4ea43a8a9dbf25b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 161340, "upload_time": "2019-08-16T08:02:58", "url": "https://files.pythonhosted.org/packages/28/dc/84829a02157a4ae51745314d598fb5f24dee574f339b512493a11fae079d/aiochclient-1.1.1rc0.tar.gz" } ], "1.1.2rc0": [ { "comment_text": "", "digests": { "md5": "db980caaecd1db4ca629631b2da77e80", "sha256": "5e6eba0a90305c0f0e2895c808b439463400e9761778379487b6a92419f45f78" }, "downloads": -1, "filename": "aiochclient-1.1.2rc0.tar.gz", "has_sig": false, "md5_digest": "db980caaecd1db4ca629631b2da77e80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 161338, "upload_time": "2019-08-16T08:10:52", "url": "https://files.pythonhosted.org/packages/d4/f0/4db50945efe3d7f2859ce97d734b5f7457015605706c54ec33beb43c63ea/aiochclient-1.1.2rc0.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "26dba7420cda07236e3e60c9370d4cd3", "sha256": "41f0cbbc1b5e7deb4be48de91abc3d047200fe8f8f42f7be3950979ce2b25769" }, "downloads": -1, "filename": "aiochclient-1.1.3.tar.gz", "has_sig": false, "md5_digest": "26dba7420cda07236e3e60c9370d4cd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 161624, "upload_time": "2019-08-16T09:19:26", "url": "https://files.pythonhosted.org/packages/3f/00/b63ee460939a46c9b6bf20d67edef109d98bb6ebf1dee28d1e39c3fda987/aiochclient-1.1.3.tar.gz" } ], "1.1.3rc0": [ { "comment_text": "", "digests": { "md5": "16cb94c99c020cfb9f7d70e0d6f4ea79", "sha256": "b8c765193c6e171a777bdc63f1f77c88682e6d9ca2a5d0fbb22d1da12944875b" }, "downloads": -1, "filename": "aiochclient-1.1.3rc0.tar.gz", "has_sig": false, "md5_digest": "16cb94c99c020cfb9f7d70e0d6f4ea79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 161350, "upload_time": "2019-08-16T08:37:15", "url": "https://files.pythonhosted.org/packages/f4/43/5e236c8e8179b1a6810a629b361c072b4456547b433cef5b489fd1eb887f/aiochclient-1.1.3rc0.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "44a32b1ebd19a0157dc554002f68e29a", "sha256": "2557a36419b280bef74ad554d8440083bb763b0366a6008371f4e8b7b86ffac6" }, "downloads": -1, "filename": "aiochclient-1.1.4.tar.gz", "has_sig": false, "md5_digest": "44a32b1ebd19a0157dc554002f68e29a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 163834, "upload_time": "2019-08-19T09:48:46", "url": "https://files.pythonhosted.org/packages/da/9e/077520979cc6a4946650c379a8f9ce94ce1645fed2be5c61148a76f70c39/aiochclient-1.1.4.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "b8aa1e730957c44f601309f33b833401", "sha256": "7140739163bfaf0e90839552cda53b4ea7b37110b0d3a26ccd00f055d0a81b4b" }, "downloads": -1, "filename": "aiochclient-1.2.0.tar.gz", "has_sig": false, "md5_digest": "b8aa1e730957c44f601309f33b833401", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166533, "upload_time": "2019-08-26T12:20:07", "url": "https://files.pythonhosted.org/packages/d5/38/18d4f105cf34d93faf0e7ffcb9643ef88bae33618b4bca6260e45d0eb74b/aiochclient-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "e363cd40f9c188ef7a461e356f906f77", "sha256": "ff4d7c896512b6ed1121fe5630378e051bdbacc88c2c993a7ac5ddffb31a71a7" }, "downloads": -1, "filename": "aiochclient-1.2.1.tar.gz", "has_sig": false, "md5_digest": "e363cd40f9c188ef7a461e356f906f77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166550, "upload_time": "2019-09-24T09:55:13", "url": "https://files.pythonhosted.org/packages/3a/fd/63d3f663dd54f03e406bbfaec6666a8d57b93752a0659213c654f5f637e4/aiochclient-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e363cd40f9c188ef7a461e356f906f77", "sha256": "ff4d7c896512b6ed1121fe5630378e051bdbacc88c2c993a7ac5ddffb31a71a7" }, "downloads": -1, "filename": "aiochclient-1.2.1.tar.gz", "has_sig": false, "md5_digest": "e363cd40f9c188ef7a461e356f906f77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166550, "upload_time": "2019-09-24T09:55:13", "url": "https://files.pythonhosted.org/packages/3a/fd/63d3f663dd54f03e406bbfaec6666a8d57b93752a0659213c654f5f637e4/aiochclient-1.2.1.tar.gz" } ] }