asyncpg | A fast PostgreSQL Database Client Library | Reactive Programming library

 by   MagicStack Python Version: 0.27.0 License: Apache-2.0

kandi X-RAY | asyncpg Summary

kandi X-RAY | asyncpg Summary

asyncpg is a Python library typically used in Programming Style, Reactive Programming applications. asyncpg has build file available, it has a Permissive License and it has high support. However asyncpg has 10 bugs and it has 7 vulnerabilities. You can install using 'pip install asyncpg' or download it from GitHub, PyPI.
A fast PostgreSQL Database Client Library for Python/asyncio.

            kandi-support Support

              asyncpg has a highly active ecosystem.
              It has 6007 star(s) with 385 fork(s). There are 124 watchers for this library.
              There were 2 major release(s) in the last 12 months.
              There are 180 open issues and 521 have been closed. On average issues are closed in 91 days. There are 19 open pull requests and 0 closed requests.
              It has a positive sentiment in the developer community.
              The latest version of asyncpg is 0.27.0

            kandi-Quality Quality

              asyncpg has 10 bugs (0 blocker, 0 critical, 10 major, 0 minor) and 101 code smells.

            kandi-Security Security

              asyncpg has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              asyncpg code analysis shows 7 unresolved vulnerabilities (2 blocker, 1 critical, 4 major, 0 minor).
              There are 52 security hotspots that need review.

            kandi-License License

              asyncpg is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              asyncpg releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              asyncpg saves you 5223 person hours of effort in developing the same functionality from scratch.
              It has 10970 lines of code, 761 functions and 46 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed asyncpg and discovered the below as its top functions. This is intended to give you an instant insight into asyncpg implemented functionality, and help decide if they suit your requirements.
            • Start the cluster
            • Get connection address from pidfile
            • Tries to connect to the server
            • Get connection spec
            • Copy records to a table
            • Returns whether the connection is closed
            • Prepare a prepared statement
            • Retrieve a single statement
            • Return the error name for a SQL statement
            • Execute a command
            • Find pg_config
            • Fetch a query
            • Reset the connection
            • Create a new PostgresMessage instance
            • Acquire a connection
            • Copy data to a table
            • Copy data from a table to a file
            • Run async
            • Release a pooled connection
            • Copy data from a query to a file
            • Create a Cursor instance
            • Fetch a single row from the database
            • Copy data from a query
            • Copy data from a table
            • Release a connection
            • Copy data into a table
            Get all kandi verified functions for this library.

            asyncpg Key Features

            A fast PostgreSQL Database Client Library for Python/asyncio.

            asyncpg Examples and Code Snippets

            Pythondot img1Lines of Code : 21dot img1License : Permissive (MIT)
            copy iconCopy
            import asyncio
            import asyncpg
            import asyncpg_listen
            async def handle_notifications(notification: asyncpg_listen.NotificationOrTimeout) -> None:
                print(f"{notification} has been received")
            listener = asyncpg_listen.NotificationListener(async  
            buildpg,With asyncpg
            Pythondot img2Lines of Code : 9dot img2License : Permissive (MIT)
            copy iconCopy
            import asyncio
            from buildpg import asyncpg
            async def main():
               async with asyncpg.create_pool_b('postgres://postgres@localhost:5432/db') as pool:
                   await pool.fetchval_b('select spam from mytable where x=:foo and y=:bar', foo=123, bar='whateve  
            python-postgis,Example with asyncpg
            Pythondot img3Lines of Code : 3dot img3no licencesLicense : No License
            copy iconCopy
            from postgis.asyncpg import register
            pool = await create_pool(**DB_CONFIG, loop=loop, max_size=100,
            apscheduler - asgi noframework
            Pythondot img4Lines of Code : 50dot img4License : Permissive (MIT License)
            copy iconCopy
            Example demonstrating use with ASGI (raw ASGI application, no framework).
            Requires the "postgresql" service to be running.
            To install prerequisites: pip install sqlalchemy asyncpg uvicorn
            To run: uvicorn asgi_noframework:app
            It should print a l  
            apscheduler - async scheduler
            Pythondot img5Lines of Code : 19dot img5License : Permissive (MIT License)
            copy iconCopy
            This is an example demonstrating the use of the scheduler as only an interface to the
            scheduling system. This script adds or updates a single schedule and then exits. To see
            the schedule acted on, you need to run the corresponding worker script (  
            apscheduler - async postgres
            Pythondot img6Lines of Code : 18dot img6License : Permissive (MIT License)
            copy iconCopy
            Example demonstrating use of the asynchronous scheduler with persistence via PostgreSQL
            in a simple asyncio app.
            Requires the "postgresql" service to be running.
            To install prerequisites: pip install sqlalchemy asyncpg
            To run: python async_postg  
            Create CompositeArray of CompositeType without using sqlalchemy_utils
            Pythondot img7Lines of Code : 31dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            class Dotdict(dict):
                __getattr__ = dict.get
                __setattr__ = dict.__setitem__
                __delattr__ = dict.__delitem__
            class AsyncCompositeType(CompositeType):
                # async sessions return asyncpg.Record not the type
            SQLAlchemy async event listen engine.sync_engine SET string parameter replacement
            Pythondot img8Lines of Code : 3dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            cursor.execute("select set_config('iam.identity', %s, false)", (identity,))
            How can I insert a None/Null value for a int column?
            Pythondot img9Lines of Code : 4dot img9License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            update_frequency_month = 'null' if update_frequency_month is None else update_frequency_month
            How can I insert a None/Null value for a int column?
            Pythondot img10Lines of Code : 5dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
                INSERT INTO company.transition_company (company_name, target_carbon..)
                    VALUES ($1, $2,..) 
             ''', company, target,..)

            Community Discussions


            sqlalchemy (vesrion 1.4 !) - get last inserted id
            Asked 2021-Apr-24 at 07:54

            How I can get the last inserted id? Please, pay attention on the sqlalchemy version, so this question isn't my case.

            I tried:



            Answered 2021-Apr-24 at 07:54

            SQLAlchemy's support for the lastrowid depends on the underlying DB-API implementation, so it isn't safe to rely on this attribute. However SQLAlchemy provides an inserted_primary_key attribute on the CursorResult object which ought to be reliable.

            The return value is a tuple of the primary key values for the inserted row.

            This version of the code in the question:



            How to make multiple runtimes available inside docker? Like how Java and python altogether inside docker with required dependencies like asyncpg
            Asked 2021-Apr-20 at 10:56

            I am working in a Java spring boot application, running as a docker container.

            The main purose of this application was to execute python scripts. So inside the docker container, I had to make available python environment. I added the python runtime with this code. But seems this is very basic python verson and I can not make other important libraries available.

            Like, I wanted to add 'asyncpg' library so that I can use connection pool.

            But it is not letting me to add asyncpg library.

            Below is the docker file.

            Note: I have commented '#FROM python:3.6-alpine', if I make this open then java runtime will not be available which is 'FROM openjdk:8u191-jre-alpine3.8'

            ------- Docker file --------------



            Answered 2021-Apr-20 at 10:56

            I have got one solution .. that at the first line of the docker file, I will first decleare the 'FROM alpine:3.7', and then inside the docker file I will keep adding the required runtimes and the dependent libraries accordingly. This way we can add mutiple runtimes.

            Below the working docker compose where I have commented out both the lines for openjdk and python runtime and added FROM alpine:3.7: Also some trick to add asyncpg library to the python runtime. This way I can now add any dependencies. I can now work on asyncpg.

            -------- Docker file ----------------



            Issue getting a number of rows
            Asked 2021-Apr-18 at 18:47

            Hi I'm moving to asyncpg from psycopg2 and I'm having an issue trying to return a number of rows in asyncpg in this case 10. In psycopg2 I would do this by the following:




            Answered 2021-Apr-18 at 18:47

            You can simply use the LIMIT clause



            Install python packages from github with Docker
            Asked 2021-Apr-13 at 09:41

            I am trying to install a package that is not on PyPi. i.e from github. Adding the repo as git+url to the requirements file gives



            Answered 2021-Apr-13 at 08:59

            As the error tells us, we have to simply install git, so that pip can clone the repo and run the setup file. We can install git with



            Asyncpg INSERT query for timestamp returns ERROR syntax error at or near "18"
            Asked 2021-Apr-12 at 21:14

            Hi I'm getting an error that occurs when trying to add the timestamp. I keep getting the error asyncpg.exceptions.PostgresSyntaxError: syntax error at or near "18" and this line end_date = duration + # timestamp seems to be the culprit however I'm unsure why this is the case.

            Here is what I'm working with:



            Answered 2021-Apr-12 at 21:14

            You don't pass the arguments in f-strings when dealing with SQL queries, the syntax for query arguments in asyncpg is $n, also I see that you're using the Connection.fetch method but you're simply updating the table, I'd suggest you to use Connection.execute

            Your code fixed:



            How to define a variable with an argument?
            Asked 2021-Mar-30 at 21:35

            I have a bot that is trying to read a different entry to a postgresql table depending on what argument is given in the command. For example, if one was to do $playtime penguin then it would give the entry in minutes_played for the account 'penguin'. Here is what I have so far.



            Answered 2021-Mar-30 at 21:35

            From what I see in the documentation the arg should contain the name provided as the first argument for the command. Also make sure to use parametrized queries to avoid sql injections. The following code should work:



            Using apscheduler with asyncpg db as Job Store: Error MissingGreenlet
            Asked 2021-Mar-30 at 18:45

            I'm trying to use Apscheduler with a postgresql db via an asyncpg connection. I thought it would working, because asyncpg supports sqlalchemy ref. But yeah, it isn't working. And to make it even worst, I don't understand the error message, so I have not even a guess what to google for.



            Answered 2021-Mar-30 at 18:45

            I think problem is in ApScheduler.

            What is happening is that scheduler.start() will attempt to create the job table in your database. But since your database url is specified as +asyncpg and there is no async coroutine running (ie: async def) when ApScheduler tries to create the table. Hence the "coroutine 'connect' was never awaited" error.

            After reading the ApScheduler code, I think "integrates with asyncio" is a little misleading - specifically the scheduler can run asyncio, but the JobStore itself has no provision for an asyncio database connection.

            You can get it working by removing +asyncpg in the connection url used with ApScheduler.

            Note it would still be possible to use async db calls within job functions with a separate asyncpg connection.



            python asyncpg TypeError: _execute() got an unexpected keyword argument 'record_class'
            Asked 2021-Mar-20 at 08:37

            So I'm working on REST API using aiohttp & asyncpg. Here is my base view for handlers:



            Answered 2021-Mar-20 at 08:37

            The problem was due to incompatibility between asyncpg and its wrapper asyncpgsa. The fetch() snippet I pasted above was from asyncpg/ of asyncpg v0.22, and _execute() snippet is from asyncpgsa/ of asyncpgsa v0.16.5, which is now not even a valid version. Version 0.17.0 is compatible with 0.22 asyncpg and its record_class fields, and 0.16.5 is obviously outdated. So, what I had to do is reconfiguring my requirements.txt:



            Asyncpg cannot fetch data from the database
            Asked 2021-Mar-18 at 11:52

            I am writing my API using aiohttp, asycpg and asyncpgsa. I create my application:



            Answered 2021-Mar-18 at 11:52

            Your dsn is incorrect, so you can't connect to your database.

            postgres://user:pass@host:port/database?option=value is the correct format. You forgot the user and the password. Also asyncpgsa.create_pool() should be awaited, if not. You don't get the error, because you only assign a coroutine to the variable app['db']. So the connection pool is also not created.

            Your second error (from is caused by not initizalising the connection pool.

            More about that you can find in the documentation of asyncpg here (because asyncpgsa's connection pool is based on asyncpg's connection pool).



   Test-Driven Development with FastAPI and Docker: Heroku: Getting asyncpg.exceptions.InvalidAuthorizationSpecificationError
            Asked 2021-Mar-14 at 17:08

            I'm going through the course Test-Driven Development with FastAPI and Docker from and just stucked with releasing my app to heroku (Part 2: Deployment). Everything was fine before I released the image to heroku:



            Answered 2021-Feb-24 at 21:53

            So I ran into the same issue, and after puttering around for a bit, this is how I got it to work. I 100% know there is a better way, but I just wanted to move on.


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install asyncpg

            You can install using 'pip install asyncpg' or download it from GitHub, PyPI.
            You can use asyncpg like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • PyPI

            pip install asyncpg

          • CLONE
          • HTTPS


          • CLI

            gh repo clone MagicStack/asyncpg

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Reuse Pre-built Kits with asyncpg

            Consider Popular Reactive Programming Libraries


            by axios


            by ReactiveX


            by caolan


            by ReactiveX


            by github

            Try Top Libraries by MagicStack


            by MagicStackPython


            by MagicStackJavaScript


            by MagicStackPython


            by MagicStackC


            by MagicStackPython