asyncpg-rkt


Nameasyncpg-rkt JSON
Version 0.27.3 PyPI version JSON
download
home_pagehttps://github.com/MagicStack/asyncpg
SummaryAn asyncio PostgreSQL driver that returns numpy arrays
upload_time2023-04-19 20:40:28
maintainer
docs_urlNone
authorMagicStack Inc
requires_python>=3.7.0
licenseApache License, Version 2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            asyncpg-🚀 -- A fast PostgreSQL Database Client Library for Python/asyncio that returns numpy arrays
====================================================================================================

.. image:: https://github.com/athenianco/asyncpg-rkt/workflows/Tests/badge.svg
   :target: https://github.com/athenianco/asyncpg-rkt/actions?query=workflow%3ATests+branch%3Amaster
   :alt: GitHub Actions status
.. image:: https://img.shields.io/pypi/v/asyncpg-rkt.svg
   :target: https://pypi.python.org/pypi/asyncpg-rkt

**asyncpg-rkt** is a fork of **asyncpg**, a database interface library designed specifically for
PostgreSQL and Python/asyncio.  asyncpg is an efficient, clean implementation
of PostgreSQL server binary protocol for use with Python's ``asyncio``
framework.  You can read more about asyncpg in an introductory
`blog post <http://magic.io/blog/asyncpg-1m-rows-from-postgres-to-python/>`_.

**asyncpg-rkt** extends **asyncpg** as follows:

* Backward compatible with the origin.
* It is possible to set the numpy dtype for the fetched query.
* Such "typed" queries return numpy arrays instead of lists of Record objects.
* We construct numpy arrays directly from the low-level PostgreSQL protocol, without materializing any Python objects.
* Although, we support `object` fields, too.
* The time from receiving the response from PostgreSQL server until `Connection.fetch()` returns is ~20x less. This is because we avoid the overhead of dealing with Python objects in the result.
* We return `ravel()`-ed indexes of nulls while writing NaN-s/NaT-s at the corresponding places in the array.
* There is an option to return data by column vs. by row.

**asyncpg-rkt** provides the best performance when there are thousands of rows returned and the field types map to numpy.

Read the blog post with the introduction.

asyncpg-🚀 requires Python 3.8 or later and is supported for PostgreSQL
versions 9.5 to 14.  Older PostgreSQL versions or other databases implementing
the PostgreSQL protocol *may* work, but are not being actively tested.


Documentation
-------------

The project documentation can be found
`here <https://magicstack.github.io/asyncpg/current/>`_.

See below about how to use the fork's special features.

Performance
-----------

In our testing asyncpg is, on average, **3x** faster than psycopg2
(and its asyncio variant -- aiopg).

.. image:: https://raw.githubusercontent.com/athenianco/asyncpg-rkt/master/performance.png
    :target: https://gistpreview.github.io/?b8eac294ac85da177ff82f784ff2cb60

The above results are a geometric mean of benchmarks obtained with PostgreSQL
`client driver benchmarking toolbench <https://github.com/MagicStack/pgbench>`_
in November 2020 (click on the chart to see full details).

Further improvement from writing numpy arrays is ~20x:

.. image:: https://raw.githubusercontent.com/athenianco/asyncpg-rkt/master/benchmark_20220522_142813.svg

.. image:: https://raw.githubusercontent.com/athenianco/asyncpg-rkt/master/benchmark_20220522_143838.svg

Features
--------

asyncpg implements PostgreSQL server protocol natively and exposes its
features directly, as opposed to hiding them behind a generic facade
like DB-API.

This enables asyncpg to have easy-to-use support for:

* **prepared statements**
* **scrollable cursors**
* **partial iteration** on query results
* automatic encoding and decoding of composite types, arrays,
  and any combination of those
* straightforward support for custom data types


Installation
------------

asyncpg-🚀 is available on PyPI and requires numpy 1.21+.
Use pip to install::

    $ pip install asyncpg-rkt


Basic Usage
-----------

.. code-block:: python

    import asyncio
    import asyncpg
    from asyncpg.rkt import set_query_dtype
    import numpy as np

    async def run():
        conn = await asyncpg.connect(user='user', password='password',
                                     database='database', host='127.0.0.1')
        dtype = np.dtype([
            ("a", int),
            ("b", "datetime64[s]"),
        ])
        array, nulls = await conn.fetch(
            set_query_dtype('SELECT * FROM mytable WHERE id = $1', dtype),
            10,
        )
        await conn.close()

    loop = asyncio.get_event_loop()
    loop.run_until_complete(run())


License
-------

asyncpg-🚀 is developed and distributed under the Apache 2.0 license, just like the original project.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/MagicStack/asyncpg",
    "name": "asyncpg-rkt",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7.0",
    "maintainer_email": "",
    "keywords": "",
    "author": "MagicStack Inc",
    "author_email": "hello@magic.io",
    "download_url": "https://files.pythonhosted.org/packages/70/56/c7fdd67ad9602499d3d0fe7596738a92b97b541078a9711f9de95de6eceb/asyncpg-rkt-0.27.3.tar.gz",
    "platform": "macOS",
    "description": "asyncpg-\ud83d\ude80 -- A fast PostgreSQL Database Client Library for Python/asyncio that returns numpy arrays\n====================================================================================================\n\n.. image:: https://github.com/athenianco/asyncpg-rkt/workflows/Tests/badge.svg\n   :target: https://github.com/athenianco/asyncpg-rkt/actions?query=workflow%3ATests+branch%3Amaster\n   :alt: GitHub Actions status\n.. image:: https://img.shields.io/pypi/v/asyncpg-rkt.svg\n   :target: https://pypi.python.org/pypi/asyncpg-rkt\n\n**asyncpg-rkt** is a fork of **asyncpg**, a database interface library designed specifically for\nPostgreSQL and Python/asyncio.  asyncpg is an efficient, clean implementation\nof PostgreSQL server binary protocol for use with Python's ``asyncio``\nframework.  You can read more about asyncpg in an introductory\n`blog post <http://magic.io/blog/asyncpg-1m-rows-from-postgres-to-python/>`_.\n\n**asyncpg-rkt** extends **asyncpg** as follows:\n\n* Backward compatible with the origin.\n* It is possible to set the numpy dtype for the fetched query.\n* Such \"typed\" queries return numpy arrays instead of lists of Record objects.\n* We construct numpy arrays directly from the low-level PostgreSQL protocol, without materializing any Python objects.\n* Although, we support `object` fields, too.\n* The time from receiving the response from PostgreSQL server until `Connection.fetch()` returns is ~20x less. This is because we avoid the overhead of dealing with Python objects in the result.\n* We return `ravel()`-ed indexes of nulls while writing NaN-s/NaT-s at the corresponding places in the array.\n* There is an option to return data by column vs. by row.\n\n**asyncpg-rkt** provides the best performance when there are thousands of rows returned and the field types map to numpy.\n\nRead the blog post with the introduction.\n\nasyncpg-\ud83d\ude80 requires Python 3.8 or later and is supported for PostgreSQL\nversions 9.5 to 14.  Older PostgreSQL versions or other databases implementing\nthe PostgreSQL protocol *may* work, but are not being actively tested.\n\n\nDocumentation\n-------------\n\nThe project documentation can be found\n`here <https://magicstack.github.io/asyncpg/current/>`_.\n\nSee below about how to use the fork's special features.\n\nPerformance\n-----------\n\nIn our testing asyncpg is, on average, **3x** faster than psycopg2\n(and its asyncio variant -- aiopg).\n\n.. image:: https://raw.githubusercontent.com/athenianco/asyncpg-rkt/master/performance.png\n    :target: https://gistpreview.github.io/?b8eac294ac85da177ff82f784ff2cb60\n\nThe above results are a geometric mean of benchmarks obtained with PostgreSQL\n`client driver benchmarking toolbench <https://github.com/MagicStack/pgbench>`_\nin November 2020 (click on the chart to see full details).\n\nFurther improvement from writing numpy arrays is ~20x:\n\n.. image:: https://raw.githubusercontent.com/athenianco/asyncpg-rkt/master/benchmark_20220522_142813.svg\n\n.. image:: https://raw.githubusercontent.com/athenianco/asyncpg-rkt/master/benchmark_20220522_143838.svg\n\nFeatures\n--------\n\nasyncpg implements PostgreSQL server protocol natively and exposes its\nfeatures directly, as opposed to hiding them behind a generic facade\nlike DB-API.\n\nThis enables asyncpg to have easy-to-use support for:\n\n* **prepared statements**\n* **scrollable cursors**\n* **partial iteration** on query results\n* automatic encoding and decoding of composite types, arrays,\n  and any combination of those\n* straightforward support for custom data types\n\n\nInstallation\n------------\n\nasyncpg-\ud83d\ude80 is available on PyPI and requires numpy 1.21+.\nUse pip to install::\n\n    $ pip install asyncpg-rkt\n\n\nBasic Usage\n-----------\n\n.. code-block:: python\n\n    import asyncio\n    import asyncpg\n    from asyncpg.rkt import set_query_dtype\n    import numpy as np\n\n    async def run():\n        conn = await asyncpg.connect(user='user', password='password',\n                                     database='database', host='127.0.0.1')\n        dtype = np.dtype([\n            (\"a\", int),\n            (\"b\", \"datetime64[s]\"),\n        ])\n        array, nulls = await conn.fetch(\n            set_query_dtype('SELECT * FROM mytable WHERE id = $1', dtype),\n            10,\n        )\n        await conn.close()\n\n    loop = asyncio.get_event_loop()\n    loop.run_until_complete(run())\n\n\nLicense\n-------\n\nasyncpg-\ud83d\ude80 is developed and distributed under the Apache 2.0 license, just like the original project.\n",
    "bugtrack_url": null,
    "license": "Apache License, Version 2.0",
    "summary": "An asyncio PostgreSQL driver that returns numpy arrays",
    "version": "0.27.3",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "45fff0e3fe8720756a45cb29a628d388cb68db0be55badd475713cb5060bcebc",
                "md5": "1fc802bcdbd78a51a121abf792dab704",
                "sha256": "c293fc2094c07b8d01f13b120b2083515f9724f0742e79016006b516501c746c"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1fc802bcdbd78a51a121abf792dab704",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 686488,
            "upload_time": "2023-04-19T20:39:54",
            "upload_time_iso_8601": "2023-04-19T20:39:54.184102Z",
            "url": "https://files.pythonhosted.org/packages/45/ff/f0e3fe8720756a45cb29a628d388cb68db0be55badd475713cb5060bcebc/asyncpg_rkt-0.27.3-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a4792433a278febc82c8887dd1d26aa4a861a3d01c38751d653eccdb25371461",
                "md5": "bfefadb4e9ab08874a530456c44aacd7",
                "sha256": "de3186163c0dc042a9e099c0f08ec0d4f367b86dc501c00dc1f281b02bbe92ce"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bfefadb4e9ab08874a530456c44aacd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 2807223,
            "upload_time": "2023-04-19T20:39:56",
            "upload_time_iso_8601": "2023-04-19T20:39:56.784524Z",
            "url": "https://files.pythonhosted.org/packages/a4/79/2433a278febc82c8887dd1d26aa4a861a3d01c38751d653eccdb25371461/asyncpg_rkt-0.27.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4717d8d8bc38480c34f9c02760684efa3cf8d1a125836d5fa383b70145770200",
                "md5": "da509c4e1bd61854ae8a66ec1a0a09e3",
                "sha256": "d714470e38305fe805a83ff9ee8056ef6d23dc88c18e28cfa8d86b0636d420d6"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "da509c4e1bd61854ae8a66ec1a0a09e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 3364364,
            "upload_time": "2023-04-19T20:39:59",
            "upload_time_iso_8601": "2023-04-19T20:39:59.238736Z",
            "url": "https://files.pythonhosted.org/packages/47/17/d8d8bc38480c34f9c02760684efa3cf8d1a125836d5fa383b70145770200/asyncpg_rkt-0.27.3-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c090eb9c136f0687b2bb09135ec812cc1eb8f36c0abcdaf011196c429cc7850",
                "md5": "a88ff637609b2878cf3239eff0875187",
                "sha256": "168287edb9b9b9286ae481c646892317cd7f58664865a53341d519f28ec7d15d"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a88ff637609b2878cf3239eff0875187",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7.0",
            "size": 559624,
            "upload_time": "2023-04-19T20:40:01",
            "upload_time_iso_8601": "2023-04-19T20:40:01.891478Z",
            "url": "https://files.pythonhosted.org/packages/5c/09/0eb9c136f0687b2bb09135ec812cc1eb8f36c0abcdaf011196c429cc7850/asyncpg_rkt-0.27.3-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "324a648bd9121a2c7709e430923749e4e36e021cc9e3c5c98035fd5356716470",
                "md5": "e48ff8ad3cab4a5cd515c6eaf763df68",
                "sha256": "8d1dc0720509ae57a1827c75f7067a24227aef3ea9e757c6fc1b8066296cbaf9"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "e48ff8ad3cab4a5cd515c6eaf763df68",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 670202,
            "upload_time": "2023-04-19T20:40:03",
            "upload_time_iso_8601": "2023-04-19T20:40:03.794960Z",
            "url": "https://files.pythonhosted.org/packages/32/4a/648bd9121a2c7709e430923749e4e36e021cc9e3c5c98035fd5356716470/asyncpg_rkt-0.27.3-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f289863948155de3448832526e600ee5b076073ff001598af389f8e9b4ffc655",
                "md5": "1ad0b588f4a578794b9eb9560ef3c3ed",
                "sha256": "33ff2f172414622f99947c8ef1825962111e9a58acc62d7ca1180044db1cf5b8"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1ad0b588f4a578794b9eb9560ef3c3ed",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 2953084,
            "upload_time": "2023-04-19T20:40:05",
            "upload_time_iso_8601": "2023-04-19T20:40:05.755988Z",
            "url": "https://files.pythonhosted.org/packages/f2/89/863948155de3448832526e600ee5b076073ff001598af389f8e9b4ffc655/asyncpg_rkt-0.27.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd77812e101c3bacf66738cbed14c23b5075ff7fc0c9fd197559e9f8ef409dc1",
                "md5": "cb87a53679b2b98157fd19efba72a5af",
                "sha256": "c96755890cf818b40b087b8c9acdc8c1dd2b3dc13aa4b36296ba9ca89f420c8c"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cb87a53679b2b98157fd19efba72a5af",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 3533576,
            "upload_time": "2023-04-19T20:40:08",
            "upload_time_iso_8601": "2023-04-19T20:40:08.089051Z",
            "url": "https://files.pythonhosted.org/packages/fd/77/812e101c3bacf66738cbed14c23b5075ff7fc0c9fd197559e9f8ef409dc1/asyncpg_rkt-0.27.3-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "67e8e017cc0a65469cb9867f8918ad3d2a0ed61d098832970e2c0455695912df",
                "md5": "332004359dfa7d3f7605216827075922",
                "sha256": "5375dffd414f2bb53064afacfa738b2e0ca8435db41b96ca1ab7643921d3dae7"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "332004359dfa7d3f7605216827075922",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7.0",
            "size": 551213,
            "upload_time": "2023-04-19T20:40:09",
            "upload_time_iso_8601": "2023-04-19T20:40:09.523719Z",
            "url": "https://files.pythonhosted.org/packages/67/e8/e017cc0a65469cb9867f8918ad3d2a0ed61d098832970e2c0455695912df/asyncpg_rkt-0.27.3-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3621804b522e1da22d64d2b55f1c92f44b6e5b8e503cb4a108cbb1f9ae62f8c7",
                "md5": "c57920d2a9ed1c30fe5919e64b8500d2",
                "sha256": "0a093e33909f3ef82f25a6fff8006afb31894fa90c72d8f4a349b2d3de4b539c"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c57920d2a9ed1c30fe5919e64b8500d2",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 694794,
            "upload_time": "2023-04-19T20:40:11",
            "upload_time_iso_8601": "2023-04-19T20:40:11.824326Z",
            "url": "https://files.pythonhosted.org/packages/36/21/804b522e1da22d64d2b55f1c92f44b6e5b8e503cb4a108cbb1f9ae62f8c7/asyncpg_rkt-0.27.3-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6cfca3973223a9880057cdac6df0ceff3c786ec0405b6d80c93b4e13220d26f6",
                "md5": "6529fbce9eaa88c53ac19b5db2156596",
                "sha256": "2c5dfa236eefb2ff1c90d5662dca4f98521677ab9ab1ab01f6c84e26e07725e5"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6529fbce9eaa88c53ac19b5db2156596",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 3326930,
            "upload_time": "2023-04-19T20:40:14",
            "upload_time_iso_8601": "2023-04-19T20:40:14.279489Z",
            "url": "https://files.pythonhosted.org/packages/6c/fc/a3973223a9880057cdac6df0ceff3c786ec0405b6d80c93b4e13220d26f6/asyncpg_rkt-0.27.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ab43fda468e1e248bb1fc6a4027ebace23d78a085aaa32770cd66ca547fc1fa",
                "md5": "ca3dd9176dfb98d5317b174815615e0d",
                "sha256": "90e01f3f983607e65e7edbe315c6a0e1429ed97da3c6d13bc6179b0ca772795c"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ca3dd9176dfb98d5317b174815615e0d",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 3785475,
            "upload_time": "2023-04-19T20:40:16",
            "upload_time_iso_8601": "2023-04-19T20:40:16.713449Z",
            "url": "https://files.pythonhosted.org/packages/0a/b4/3fda468e1e248bb1fc6a4027ebace23d78a085aaa32770cd66ca547fc1fa/asyncpg_rkt-0.27.3-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8098abe7e4ffc2c32fede71727a53fb110ba003015c63fc8f032dc71e001168a",
                "md5": "495a14cfc7e0991b7a5bc5ed7ff422b3",
                "sha256": "a5675018955a2efb272c6313c916e4ec1e7a569f523a8cef752480e756534e1e"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "495a14cfc7e0991b7a5bc5ed7ff422b3",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.7.0",
            "size": 574748,
            "upload_time": "2023-04-19T20:40:18",
            "upload_time_iso_8601": "2023-04-19T20:40:18.116388Z",
            "url": "https://files.pythonhosted.org/packages/80/98/abe7e4ffc2c32fede71727a53fb110ba003015c63fc8f032dc71e001168a/asyncpg_rkt-0.27.3-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6a220d9691150fd89e45104fe333c41f33424a55629f126b2b3143ecb4b8f1ec",
                "md5": "b0ef978b2881c6f2d2334d5b81d7a168",
                "sha256": "ee09b3d855a7fb97db3e5c51455080b2ee2f5f449dd29c26ca23615c8ed03854"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b0ef978b2881c6f2d2334d5b81d7a168",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 704183,
            "upload_time": "2023-04-19T20:40:20",
            "upload_time_iso_8601": "2023-04-19T20:40:20.109720Z",
            "url": "https://files.pythonhosted.org/packages/6a/22/0d9691150fd89e45104fe333c41f33424a55629f126b2b3143ecb4b8f1ec/asyncpg_rkt-0.27.3-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8478b2e3a8e571f72ed0e83b466508cf962cf1a282a9228efe29ee15e5d9d9bd",
                "md5": "c82bb06626f37ca201436bb50b1e9047",
                "sha256": "0be243f8ee104fd447e3c8ac46694a85f84febddc54220774c1fad4d592b1f21"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c82bb06626f37ca201436bb50b1e9047",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 2912978,
            "upload_time": "2023-04-19T20:40:22",
            "upload_time_iso_8601": "2023-04-19T20:40:22.050575Z",
            "url": "https://files.pythonhosted.org/packages/84/78/b2e3a8e571f72ed0e83b466508cf962cf1a282a9228efe29ee15e5d9d9bd/asyncpg_rkt-0.27.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e83f07ba0d735b2fbfa981fe99d33d389cdb9b36b06b6dacc4de7657eab099cf",
                "md5": "ab4137849982d2fb4d7369d6cb833c3f",
                "sha256": "b9ca11382d3250ac9e28669329e0fbc18891c88063331086f229d9b2b6f4442e"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ab4137849982d2fb4d7369d6cb833c3f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 3433577,
            "upload_time": "2023-04-19T20:40:24",
            "upload_time_iso_8601": "2023-04-19T20:40:24.343030Z",
            "url": "https://files.pythonhosted.org/packages/e8/3f/07ba0d735b2fbfa981fe99d33d389cdb9b36b06b6dacc4de7657eab099cf/asyncpg_rkt-0.27.3-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa2cda46fa72113d1413da15fcbdb37eca10d05b60606fbb17ce42a11ed73c7d",
                "md5": "cdb31e553af225f0b64ccce79da3350d",
                "sha256": "7e1cb69641043a92e54a6a155a57a4f5babde74936853f8553aa6a64668c9c05"
            },
            "downloads": -1,
            "filename": "asyncpg_rkt-0.27.3-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "cdb31e553af225f0b64ccce79da3350d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7.0",
            "size": 574215,
            "upload_time": "2023-04-19T20:40:26",
            "upload_time_iso_8601": "2023-04-19T20:40:26.667374Z",
            "url": "https://files.pythonhosted.org/packages/aa/2c/da46fa72113d1413da15fcbdb37eca10d05b60606fbb17ce42a11ed73c7d/asyncpg_rkt-0.27.3-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7056c7fdd67ad9602499d3d0fe7596738a92b97b541078a9711f9de95de6eceb",
                "md5": "09008d8747e3d1466d7ded1a5223329f",
                "sha256": "36318dc9e354b7c9390dc684f66ef0ea42f6279b4ba0a943e84a0ab446f4759f"
            },
            "downloads": -1,
            "filename": "asyncpg-rkt-0.27.3.tar.gz",
            "has_sig": false,
            "md5_digest": "09008d8747e3d1466d7ded1a5223329f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7.0",
            "size": 884889,
            "upload_time": "2023-04-19T20:40:28",
            "upload_time_iso_8601": "2023-04-19T20:40:28.403948Z",
            "url": "https://files.pythonhosted.org/packages/70/56/c7fdd67ad9602499d3d0fe7596738a92b97b541078a9711f9de95de6eceb/asyncpg-rkt-0.27.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-19 20:40:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "MagicStack",
    "github_project": "asyncpg",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "asyncpg-rkt"
}
        
Elapsed time: 0.05492s