summaryrefslogtreecommitdiff
path: root/dev-python/asyncpg
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/asyncpg')
-rw-r--r--dev-python/asyncpg/Manifest3
-rw-r--r--dev-python/asyncpg/asyncpg-0.30.0.ebuild86
-rw-r--r--dev-python/asyncpg/asyncpg-0.31.0.ebuild87
-rw-r--r--dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch15
-rw-r--r--dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch67
-rw-r--r--dev-python/asyncpg/metadata.xml16
6 files changed, 274 insertions, 0 deletions
diff --git a/dev-python/asyncpg/Manifest b/dev-python/asyncpg/Manifest
new file mode 100644
index 000000000000..8ae73e987189
--- /dev/null
+++ b/dev-python/asyncpg/Manifest
@@ -0,0 +1,3 @@
+DIST asyncpg-0.30.0.tar.gz 957746 BLAKE2B 2da92520bd30c1e5eebbfddabf78b9e9e221fb33ad77fa01f77ceb8bdf73e057868bf60987c2c67a6ed5d8b0cacb3b80c0aefd6afa1b574e2629d358c9158bbb SHA512 bbfc83ae881f454cb16343037ae48fbc9c9c65b57d11fc1e28ec054b9051d823f7da0735307090d0ce4e5dca166590b147d0f9d383a1ac0b894396290aa0782a
+DIST asyncpg-0.31.0.tar.gz 993667 BLAKE2B 41c88e652b280ccb2add527df35fd470a3c42573082022ba5e241a9c414f4bf32265249b22d5c7de8414b95c0b2de7ed974df1fff1d8777864553e3ba9b3dfce SHA512 150c5b989a0ecd9903e9c932030f30c58750a180e95d2fab7323cf2b8b20a13b85c346f9fae19efb74ced5dbe724fd2722bbd3b0c44eedca532fb79b42edf350
+DIST asyncpg-0.31.0.tar.gz.provenance 9517 BLAKE2B dc9a5462ab05b3a5dc5fd31104b801dd3f2699428bbf2eae4c3fbfa3479cb0912bcced83123d244ed4a51cce53dce12a841656de13b05c18113e74816aa4f193 SHA512 f8f9f93dd503a2c143006b9736a0460638e185be1352778b2556b200c79664f73c6c7dfae6364afe298c6d08566bad76871894b917b3f7a9ba53d249b2453608
diff --git a/dev-python/asyncpg/asyncpg-0.30.0.ebuild b/dev-python/asyncpg/asyncpg-0.30.0.ebuild
new file mode 100644
index 000000000000..88938fc950f1
--- /dev/null
+++ b/dev-python/asyncpg/asyncpg-0.30.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..14} ) # doesn't build with pypy3
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 pypi
+
+DESCRIPTION="An asyncio PostgreSQL driver"
+HOMEPAGE="
+ https://pypi.org/project/asyncpg/
+ https://github.com/MagicStack/asyncpg
+"
+
+LICENSE="Apache-2.0 PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="kerberos"
+
+RDEPEND="
+ kerberos? ( dev-python/gssapi[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ test? (
+ dev-db/postgresql[kerberos?,server,ssl]
+ dev-python/distro[${PYTHON_USEDEP}]
+ dev-python/uvloop[${PYTHON_USEDEP}]
+ kerberos? (
+ app-crypt/mit-krb5
+ dev-python/k5test[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.30.0-cflags.patch
+ "${FILESDIR}"/${PN}-0.30.0-disable-broken-tests.patch
+)
+
+EPYTEST_PLUGINS=( )
+EPYTEST_IGNORE=(
+ # checks versions from env variables
+ "${S}"/tests/test__environment.py
+ # runs flake8 (???)
+ "${S}"/tests/test__sourcecode.py
+)
+
+distutils_enable_tests pytest
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+python_prepare_all() {
+ # bug #926720
+ cat <<-EOF >> setup.cfg || die
+ [build_ext]
+ debug=False
+ cython_always=True
+ cython_annotate=False
+ cython_directives=
+ EOF
+
+ # remove pre-generated Cython sources
+ rm asyncpg/{pgproto/pgproto,protocol/protocol}.c || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ use debug && \
+ export ASYNCPG_DEBUG=1
+
+ use kerberos || \
+ EPYTEST_DESELECT+=( tests/test_connect.py::TestGssAuthentication )
+}
+
+python_test() {
+ cd "${T}" || die
+ for opt in "" "1"; do
+ einfo " testing with USE_UVLOOP='${opt}'"
+ USE_UVLOOP="${opt}" epytest "${S}"/tests
+ done
+}
diff --git a/dev-python/asyncpg/asyncpg-0.31.0.ebuild b/dev-python/asyncpg/asyncpg-0.31.0.ebuild
new file mode 100644
index 000000000000..33a01c48f330
--- /dev/null
+++ b/dev-python/asyncpg/asyncpg-0.31.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12..14} ) # doesn't build with pypy3
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO="https://github.com/MagicStack/asyncpg"
+inherit distutils-r1 pypi
+
+DESCRIPTION="An asyncio PostgreSQL driver"
+HOMEPAGE="
+ https://pypi.org/project/asyncpg/
+ https://github.com/MagicStack/asyncpg
+"
+
+LICENSE="Apache-2.0 PSF-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="kerberos"
+
+RDEPEND="
+ kerberos? ( dev-python/gssapi[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ >=dev-python/cython-3.2.1[${PYTHON_USEDEP}]
+ <dev-python/cython-4[${PYTHON_USEDEP}]
+ test? (
+ dev-db/postgresql[kerberos?,server,ssl]
+ dev-python/distro[${PYTHON_USEDEP}]
+ dev-python/uvloop[${PYTHON_USEDEP}]
+ kerberos? (
+ app-crypt/mit-krb5
+ dev-python/k5test[${PYTHON_USEDEP}]
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.30.0-cflags.patch
+)
+
+EPYTEST_PLUGINS=( )
+EPYTEST_IGNORE=(
+ # checks versions from env variables
+ "${S}"/tests/test__environment.py
+ # runs flake8 (???)
+ "${S}"/tests/test__sourcecode.py
+)
+
+distutils_enable_tests pytest
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-rtd-theme
+
+python_prepare_all() {
+ # bug #926720
+ cat <<-EOF >> setup.cfg || die
+ [build_ext]
+ debug=False
+ cython_always=True
+ cython_annotate=False
+ cython_directives=
+ EOF
+
+ # remove pre-generated Cython sources
+ rm asyncpg/{pgproto/pgproto,protocol/protocol}.c || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_configure_all() {
+ use debug && \
+ export ASYNCPG_DEBUG=1
+
+ use kerberos || \
+ EPYTEST_DESELECT+=( tests/test_connect.py::TestGssAuthentication )
+}
+
+python_test() {
+ cd "${T}" || die
+ for opt in "" "1"; do
+ einfo " testing with USE_UVLOOP='${opt}'"
+ USE_UVLOOP="${opt}" epytest "${S}"/tests
+ done
+}
diff --git a/dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch b/dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch
new file mode 100644
index 000000000000..19c197dd7bd1
--- /dev/null
+++ b/dev-python/asyncpg/files/asyncpg-0.30.0-cflags.patch
@@ -0,0 +1,15 @@
+Do not overwrite user's optimization.
+
+Bug: https://bugs.gentoo.org/887651
+
+--- a/setup.py
++++ b/setup.py
+@@ -27,7 +27,7 @@ from setuptools.command import build_ext as setuptools_build_ext
+
+ CYTHON_DEPENDENCY = 'Cython(>=0.29.24,<4.0.0)'
+
+-CFLAGS = ['-O2']
++CFLAGS = []
+ LDFLAGS = []
+
+ if platform.uname().system != 'Windows':
diff --git a/dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch b/dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch
new file mode 100644
index 000000000000..1fafbc25f3c0
--- /dev/null
+++ b/dev-python/asyncpg/files/asyncpg-0.30.0-disable-broken-tests.patch
@@ -0,0 +1,67 @@
+From 5a1ee01f8bc8fc6709ef4f636f7a67029d90e26d Mon Sep 17 00:00:00 2001
+From: Elvis Pranskevichus <elvis@edgedb.com>
+Date: Fri, 14 Mar 2025 17:58:46 -0700
+Subject: [PATCH] Disable connection URI tests broken by a recent Python fix
+ (#1244)
+
+A fix for python/cpython#105704 broke parsing of URIs containing
+multiple hosts if one or all of the hosts are IPv6 address literals.
+This blocks CI, so disable those tests for now until this is fixed
+properly.
+---
+ tests/test_connect.py | 39 ++++++++++++++++++++-------------------
+ 1 file changed, 20 insertions(+), 19 deletions(-)
+
+diff --git a/tests/test_connect.py b/tests/test_connect.py
+index 0037ee5..024c29e 100644
+--- a/tests/test_connect.py
++++ b/tests/test_connect.py
+@@ -846,25 +846,26 @@ class TestConnectParams(tb.TestCase):
+ ),
+ },
+
+- {
+- 'name': 'dsn_ipv6_multi_host',
+- 'dsn': 'postgresql://user@[2001:db8::1234%25eth0],[::1]/db',
+- 'result': ([('2001:db8::1234%eth0', 5432), ('::1', 5432)], {
+- 'database': 'db',
+- 'user': 'user',
+- 'target_session_attrs': 'any',
+- })
+- },
+-
+- {
+- 'name': 'dsn_ipv6_multi_host_port',
+- 'dsn': 'postgresql://user@[2001:db8::1234]:1111,[::1]:2222/db',
+- 'result': ([('2001:db8::1234', 1111), ('::1', 2222)], {
+- 'database': 'db',
+- 'user': 'user',
+- 'target_session_attrs': 'any',
+- })
+- },
++ # broken by https://github.com/python/cpython/pull/129418
++ # {
++ # 'name': 'dsn_ipv6_multi_host',
++ # 'dsn': 'postgresql://user@[2001:db8::1234%25eth0],[::1]/db',
++ # 'result': ([('2001:db8::1234%eth0', 5432), ('::1', 5432)], {
++ # 'database': 'db',
++ # 'user': 'user',
++ # 'target_session_attrs': 'any',
++ # })
++ # },
++
++ # {
++ # 'name': 'dsn_ipv6_multi_host_port',
++ # 'dsn': 'postgresql://user@[2001:db8::1234]:1111,[::1]:2222/db',
++ # 'result': ([('2001:db8::1234', 1111), ('::1', 2222)], {
++ # 'database': 'db',
++ # 'user': 'user',
++ # 'target_session_attrs': 'any',
++ # })
++ # },
+
+ {
+ 'name': 'dsn_ipv6_multi_host_query_part',
+--
+2.50.0
+
diff --git a/dev-python/asyncpg/metadata.xml b/dev-python/asyncpg/metadata.xml
new file mode 100644
index 000000000000..7340e7af2344
--- /dev/null
+++ b/dev-python/asyncpg/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>cyber+gentoo@sysrq.in</email>
+ <name>Anna</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">MagicStack/asyncpg</remote-id>
+ <remote-id type="pypi">asyncpg</remote-id>
+ <maintainer>
+ <name>MagicStack Inc</name>
+ <email>hello@magic.io</email>
+ </maintainer>
+ </upstream>
+</pkgmetadata>