MagicStack / asyncpg

A fast PostgreSQL Database Client Library for Python/asyncio.
Apache License 2.0
6.99k stars 404 forks source link

asyncpg does not install with python 3.12-dev #1003

Open zx80 opened 1 year ago

zx80 commented 1 year ago

See Github CI trace

Python 3.12, under development, seems to have changed a structure:

      asyncpg/pgproto/pgproto.c: In function ‘__Pyx_PyInt_As_int’:
      asyncpg/pgproto/pgproto.c:40800:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      40800 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~

Also, there are two repeated warnings:

gcc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/opt/hostedtoolcache/Python/3.12.0-alpha.5/x64/include/python3.12 -c asyncpg/pgproto/pgproto.c -o build/temp.linux-x86_64-cpython-312/asyncpg/pgproto/pgproto.o -O2 -fsigned-char -Wall -Wsign-compare -Wconversion
      asyncpg/pgproto/pgproto.c: In function ‘__pyx_pf_7asyncpg_7pgproto_7pgproto_11WriteBuffer_2__dealloc__’:
      asyncpg/pgproto/pgproto.c:3127:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       3127 |     __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_BufferError); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 34, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /opt/hostedtoolcache/Python/3.12.0-alpha.5/x64/include/python3.12/dictobject.h:90,
                       from /opt/hostedtoolcache/Python/3.12.0-alpha.5/x64/include/python3.12/Python.h:61,
                       from asyncpg/pgproto/pgproto.c:31:
      /opt/hostedtoolcache/Python/3.12.0-alpha.5/x64/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~

 /opt/hostedtoolcache/Python/3.12.0-alpha.5/x64/include/python3.12/internal/pycore_code.h:434:41: warning: conversion to ‘int’ from ‘unsigned int’ may change the sign of the result [-Wsign-conversion]
        434 |     return adaptive_counter_bits(value, backoff);
            |                                         ^~~~~~~
zx80 commented 1 year ago

:musical_note: Is There Anybody Out There? :notes:

elprans commented 1 year ago

Asyncpg uses Cython, so until it supports 3.12 in a stable fashion there would be no support here. Usually that happens when Python hits release candidate status as that's when the ABI is frozen.

zx80 commented 1 year ago

Ok. Let's wait, probably till August, then. Thanks for the reply.

sudhirbits commented 1 year ago

hitting this issue as well.

osminogin commented 1 year ago

Any news on this issue? Python 3.12.0 is already released

raghav-rama commented 1 year ago

Python Version: 3.12 OS: Ubuntu 20.04 LTS

Getting this error when installing aiohttp.

Building wheels for collected packages: aiohttp
  Building wheel for aiohttp (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for aiohttp (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [173 lines of output]
      *********************
      * Accelerated build *
      *********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-312
      creating build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/streams.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/abc.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/worker.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_server.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_parser.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_middlewares.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_websocket.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/multipart.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/payload.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_exceptions.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/formdata.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_urldispatcher.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_ws.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/locks.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/__init__.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/pytest_plugin.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/connector.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_response.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http_writer.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/typedefs.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_proto.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/helpers.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/test_utils.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/hdrs.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/resolver.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_routedef.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_exceptions.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_protocol.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/tcp_helpers.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/cookiejar.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_reqrep.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/payload_streamer.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_log.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_fileresponse.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/http.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/base_protocol.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_app.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_request.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client_ws.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_runner.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/client.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/tracing.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/web_exceptions.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/log.py -> build/lib.linux-x86_64-cpython-312/aiohttp
      running egg_info
      writing aiohttp.egg-info/PKG-INFO
      writing dependency_links to aiohttp.egg-info/dependency_links.txt
      writing requirements to aiohttp.egg-info/requires.txt
      writing top-level names to aiohttp.egg-info/top_level.txt
      reading manifest file 'aiohttp.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching 'aiohttp' anywhere in distribution
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '*.lib' found anywhere in distribution
      warning: no previously-included files matching '*.dll' found anywhere in distribution
      warning: no previously-included files matching '*.a' found anywhere in distribution
      warning: no previously-included files matching '*.obj' found anywhere in distribution
      warning: no previously-included files found matching 'aiohttp/*.html'
      no previously-included directories found matching 'docs/_build'
      adding license file 'LICENSE.txt'
      writing manifest file 'aiohttp.egg-info/SOURCES.txt'
      copying aiohttp/_cparser.pxd -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_find_header.pxd -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_headers.pxi -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_helpers.pyi -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_helpers.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_http_parser.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_http_writer.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/_websocket.pyx -> build/lib.linux-x86_64-cpython-312/aiohttp
      copying aiohttp/py.typed -> build/lib.linux-x86_64-cpython-312/aiohttp
      creating build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_cparser.pxd.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_find_header.pxd.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_helpers.pyi.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_helpers.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_http_parser.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_http_writer.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/_websocket.pyx.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      copying aiohttp/.hash/hdrs.py.hash -> build/lib.linux-x86_64-cpython-312/aiohttp/.hash
      running build_ext
      building 'aiohttp._websocket' extension
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/aiohttp
      gcc -pthread -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/hackerboy/Tegro/tegro/include -I/usr/local/include/python3.12 -c aiohttp/_websocket.c -o build/temp.linux-x86_64-cpython-312/aiohttp/_websocket.o
      aiohttp/_websocket.c: In function ‘__pyx_pf_7aiohttp_10_websocket__websocket_mask_cython’:
      aiohttp/_websocket.c:1475:3: warning: ‘Py_OptimizeFlag’ is deprecated [-Wdeprecated-declarations]
       1475 |   if (unlikely(!Py_OptimizeFlag)) {
            |   ^~
      In file included from /usr/local/include/python3.12/Python.h:48,
                       from aiohttp/_websocket.c:6:
      /usr/local/include/python3.12/cpython/pydebug.h:13:37: note: declared here
         13 | Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
            |                                     ^~~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function ‘__Pyx_get_tp_dict_version’:
      aiohttp/_websocket.c:2680:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2680 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |     ^~~~~~
      In file included from /usr/local/include/python3.12/dictobject.h:90,
                       from /usr/local/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /usr/local/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function ‘__Pyx_get_object_dict_version’:
      aiohttp/_websocket.c:2692:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2692 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |     ^~~~~~
      In file included from /usr/local/include/python3.12/dictobject.h:90,
                       from /usr/local/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /usr/local/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function ‘__Pyx_object_dict_version_matches’:
      aiohttp/_websocket.c:2696:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2696 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |     ^~
      In file included from /usr/local/include/python3.12/dictobject.h:90,
                       from /usr/local/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /usr/local/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function ‘__Pyx_CLineForTraceback’:
      aiohttp/_websocket.c:2741:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2741 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /usr/local/include/python3.12/dictobject.h:90,
                       from /usr/local/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /usr/local/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c:2741:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2741 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /usr/local/include/python3.12/dictobject.h:90,
                       from /usr/local/include/python3.12/Python.h:61,
                       from aiohttp/_websocket.c:6:
      /usr/local/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      aiohttp/_websocket.c: In function ‘__Pyx_PyInt_As_long’:
      aiohttp/_websocket.c:3042:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3042 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c:3097:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3097 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c: In function ‘__Pyx_PyInt_As_int’:
      aiohttp/_websocket.c:3238:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3238 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c:3293:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3293 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      aiohttp/_websocket.c: In function ‘__Pyx_PyIndex_AsSsize_t’:
      aiohttp/_websocket.c:3744:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
       3744 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
            |                                             ^~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for aiohttp
Failed to build aiohttp
ERROR: Could not build wheels for aiohttp, which is required to install pyproject.toml-based projects
LaurentGoderre commented 1 year ago

@raghav-rama https://github.com/aio-libs/aiohttp/issues/7229

zyv commented 1 year ago

I think this can be closed now. CI seems to work reliably. Only wheels have to be built, I've opened https://github.com/MagicStack/asyncpg/issues/1094 for this.

zyv commented 1 year ago

@elprans can't close this, but now done I think.

ngankhuong commented 11 months ago

Do you have any update for this issue? I still see it with python version 3.11.6

`building 'asyncpg.pgproto.pgproto' extension creating build/temp.macosx-14-x86_64-cpython-312 creating build/temp.macosx-14-x86_64-cpython-312/asyncpg creating build/temp.macosx-14-x86_64-cpython-312/asyncpg/pgproto clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -I/private/var/folders/d2/gpyz41k92g915wws6rxpy1tc0000gn/T/tmp44ulgs8m/.venv/include -I/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c asyncpg/pgproto/pgproto.c -o build/temp.macosx-14-x86_64-cpython-312/asyncpg/pgproto/pgproto.o -O2 -fsigned-char -Wall -Wsign-compare -Wconversion asyncpg/pgproto/pgproto.c:3127:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_4, pyx_n_s_BufferError); if (unlikely(!pyx_t_4)) PYX_ERR(1, 34, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:3340:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 50, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:3810:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 93, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:3959:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 106, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:4006:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 109, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:4053:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 111, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:4666:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_4, pyx_n_s_BufferError); if (unlikely(!pyx_t_4)) PYX_ERR(1, 171, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:5580:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_2, pyx_n_s_collections); if (unlikely(!pyx_t_2)) PYX_ERR(1, 244, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:5829:7: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 271, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:6068:7: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 304, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:6115:7: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_3, pyx_n_s_BufferError); if (unlikely(!pyx_t_3)) PYX_ERR(1, 306, pyx_L1_error) ^ asyncpg/pgproto/pgproto.c:1561:43: note: expanded from macro 'Pyx_GetModuleGlobalName' (var) = (likely(pyx_dict_version == PYX_GET_DICT_VERSION(__pyx_d))) ?\ ^ asyncpg/pgproto/pgproto.c:1533:65: note: expanded from macro 'PYX_GET_DICT_VERSION'

define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)

                                                              ^

/usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here Py_DEPRECATED(3.12) uint64_t ma_version_tag; ^ /usr/local/opt/python@3.12/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'

define Py_DEPRECATED(VERSION_UNUSED) attribute((deprecated))

                                                   ^

asyncpg/pgproto/pgproto.c:6348:7: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations] Pyx_GetModuleGlobalName(pyx_t_1, pyx_n_s_BufferError); if (unlikely(!pyx_t_1)) __PYX_ERR(1, 326, __pyx_L1_error) ^ `