git: d025e5c68e7e - main - databases/py-databases: add port: Async database support for Python

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Thu, 30 Dec 2021 02:59:07 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d025e5c68e7e9a9634fc8f2dc3d7ba129c148d20

commit d025e5c68e7e9a9634fc8f2dc3d7ba129c148d20
Author:     Goran Mekić <meka@tilda.center>
AuthorDate: 2021-12-30 02:19:13 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2021-12-30 02:58:27 +0000

    databases/py-databases: add port: Async database support for Python
    
    Databases gives you simple asyncio support for a range of databases.
    
    It allows you to make queries using the powerful SQLAlchemy Core expression
    language, and provides support for PostgreSQL, MySQL, and SQLite.
    
    Databases is suitable for integrating against any async Web framework, such as
    Starlette, Sanic, Responder, Quart, aiohttp, Tornado, or FastAPI.
    
    WWW: https://github.com/encode/databases
    
    PR:             257313
    Reported by:    Goran Mekić <meka@tilda.center> (new maintainer)
    Reviewed by:    koobs
---
 databases/Makefile                          |  1 +
 databases/py-databases/Makefile             | 51 +++++++++++++++++++++++++++++
 databases/py-databases/distinfo             |  3 ++
 databases/py-databases/files/patch-setup.py | 11 +++++++
 databases/py-databases/pkg-descr            |  9 +++++
 5 files changed, 75 insertions(+)

diff --git a/databases/Makefile b/databases/Makefile
index 8243c1fa738f..d36d4dea764e 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -775,6 +775,7 @@
     SUBDIR += py-cassandra-driver
     SUBDIR += py-caterva
     SUBDIR += py-couchdb
+    SUBDIR += py-databases
     SUBDIR += py-dbf
     SUBDIR += py-dbutils
     SUBDIR += py-fakeredis
diff --git a/databases/py-databases/Makefile b/databases/py-databases/Makefile
new file mode 100644
index 000000000000..376f5dbac05a
--- /dev/null
+++ b/databases/py-databases/Makefile
@@ -0,0 +1,51 @@
+PORTNAME=	databases
+DISTVERSION=	0.5.3
+CATEGORIES=	databases python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	meka@tilda.center
+COMMENT=	Async database support for Python
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE.md
+
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=0:databases/py-sqlalchemy14@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiomysql>0:databases/py-aiomysql@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}aiopg>0:databases/py-aiopg@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}async_timeout>0:devel/py-async_timeout@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}asyncpg>0:databases/py-asyncpg@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}starlette>=0:www/py-starlette@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR}
+
+USES=		python:3.6+
+USE_PYTHON=	autoplist concurrent distutils
+
+# USE_GITHUB=	yes
+# GH_ACCOUNT=	encode
+
+NO_ARCH=	yes
+
+OPTIONS_GROUP=			DATABASES
+OPTIONS_GROUP_DATABASES=	MYSQL PGSQL SQLITE
+OPTIONS_DEFAULT=		SQLITE
+DATABASES_DESC=			Database Support
+
+MYSQL_USES=		mysql
+MYSQL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiomysql>0:databases/py-aiomysql@${PY_FLAVOR}
+PGSQL_USES=		pgsql
+PGSQL_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiopg>0:databases/py-aiopg@${PY_FLAVOR}
+SQLITE_USES=		sqlite
+SQLITE_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiosqlite>0:databases/py-aiosqlite@${PY_FLAVOR}
+
+# do-test:
+# 	cd ${WRKSRC} && ${SETENV} ${TEST_ENV} TEST_DATABASE_URLS="sqlite:///testsuite" ${PYTHON_CMD} -m pytest -v -rs -o addopts=
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 30700
+RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}aiocontextvars>=0:devel/py-aiocontextvars@${PY_FLAVOR}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/databases/py-databases/distinfo b/databases/py-databases/distinfo
new file mode 100644
index 000000000000..c4eb89faba27
--- /dev/null
+++ b/databases/py-databases/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1640769505
+SHA256 (databases-0.5.3.tar.gz) = b69d74ee0b47fa30bb6e76db0c58da998e973393259d29215d8fb29352162bd6
+SIZE (databases-0.5.3.tar.gz) = 15152
diff --git a/databases/py-databases/files/patch-setup.py b/databases/py-databases/files/patch-setup.py
new file mode 100644
index 000000000000..2e6e2f595899
--- /dev/null
+++ b/databases/py-databases/files/patch-setup.py
@@ -0,0 +1,11 @@
+--- setup.py.orig	2021-09-05 21:12:23 UTC
++++ setup.py
+@@ -47,7 +47,7 @@ setup(
+     author_email="tom@tomchristie.com",
+     packages=get_packages("databases"),
+     package_data={"databases": ["py.typed"]},
+-    data_files=[("", ["LICENSE.md"])],
++    # data_files=[("", ["LICENSE.md"])],
+     install_requires=['sqlalchemy>=1.4,<1.5', 'aiocontextvars;python_version<"3.7"'],
+     extras_require={
+         "postgresql": ["asyncpg"],
diff --git a/databases/py-databases/pkg-descr b/databases/py-databases/pkg-descr
new file mode 100644
index 000000000000..d02c2a8a5026
--- /dev/null
+++ b/databases/py-databases/pkg-descr
@@ -0,0 +1,9 @@
+Databases gives you simple asyncio support for a range of databases.
+
+It allows you to make queries using the powerful SQLAlchemy Core expression
+language, and provides support for PostgreSQL, MySQL, and SQLite.
+
+Databases is suitable for integrating against any async Web framework, such as
+Starlette, Sanic, Responder, Quart, aiohttp, Tornado, or FastAPI.
+
+WWW: https://github.com/encode/databases