aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGoran Mekić <meka@tilda.center>2022-01-01 05:06:14 +0000
committerHiroki Tagato <tagattie@FreeBSD.org>2022-01-01 05:08:51 +0000
commit583287b7d536cc849d468332777339542a750f0a (patch)
tree3d8a438ee82daf3e3301fc97be0e90a1bbf0d3cf
parent97b1188b073a1e966708856902ff8b2036241b3a (diff)
downloadports-583287b7d536cc849d468332777339542a750f0a.tar.gz
ports-583287b7d536cc849d468332777339542a750f0a.zip
databases/py-ormar: add port: Simple async ORM with fastapi in mind and pydantic validation
The ormar package is an async mini ORM for Python, with support for Postgres, MySQL, and SQLite. The main benefit of using ormar are: * getting an async ORM that can be used with async frameworks (fastapi, starlette etc.) * getting just one model to maintain - you don't have to maintain pydantic and other orm model (sqlalchemy, peewee, gino etc.) The goal was to create a simple ORM that can be used directly (as request and response models) with fastapi that bases it's data validation on pydantic. WWW: https://github.com/collerek/ormar PR: 257370 Reported by: Goran Mekić <meka@tilda.center> (new maintainer) Reviewed by: koobs
-rw-r--r--databases/Makefile1
-rw-r--r--databases/py-ormar/Makefile50
-rw-r--r--databases/py-ormar/distinfo3
-rw-r--r--databases/py-ormar/pkg-descr13
4 files changed, 67 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile
index 2952b5e2e088..4b136c577340 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -796,6 +796,7 @@
SUBDIR += py-mycli
SUBDIR += py-mysql-connector-python
SUBDIR += py-mysqlclient
+ SUBDIR += py-ormar
SUBDIR += py-partd
SUBDIR += py-peewee
SUBDIR += py-peewee_migrate
diff --git a/databases/py-ormar/Makefile b/databases/py-ormar/Makefile
new file mode 100644
index 000000000000..62d78750f417
--- /dev/null
+++ b/databases/py-ormar/Makefile
@@ -0,0 +1,50 @@
+PORTNAME= ormar
+DISTVERSION= 0.10.23
+CATEGORIES= databases python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= meka@tilda.center
+COMMENT= Simple async ORM with fastapi in mind and pydantic validation
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}databases>=0.3.2,<0.5.4:databases/py-databases@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic>=1.6.1,<1.8.3:devel/py-pydantic@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=1.4.0,<1.4.28:databases/py-sqlalchemy14@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.7:devel/py-typing-extensions@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}fastapi>=0:www/py-fastapi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0:devel/py-pytest-asyncio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
+
+USES= python:3.6+
+USE_PYTHON= autoplist concurrent distutils
+
+TEST_ENV= PYTHONPATH=${WRKSRC}/src
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= CRYPTO
+OPTIONS_GROUP= DATABASES
+OPTIONS_GROUP_DATABASES= MYSQL PGSQL SQLITE
+OPTIONS_DEFAULT= SQLITE
+DATABASES_DESC= Database Support
+
+CRYPTO_DESC= Support for password encryption
+
+CRYPTO_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography>0:security/py-cryptography@${PY_FLAVOR}
+SQLITE_USES= sqlite
+SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiosqlite>0:databases/py-aiosqlite@${PY_FLAVOR}
+MYSQL_USES= mysql
+MYSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiomysql>0:databases/py-aiomysql@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pymysql>0:databases/py-pymysql@${PY_FLAVOR}
+PGSQL_USES= pgsql
+PGSQL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}asyncpg>0:databases/py-asyncpg@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}psycopg2>0:databases/py-psycopg2@${PY_FLAVOR}
+
+# Tests require newer pytest
+# do-test:
+ # cd ${WRKSRC} && ${SETENV} ${TEST_ENV} TEST_DATABASE_URLS="sqlite:///testsuite" ${PYTHON_CMD} -m pytest -v -rs -o addopts=
+
+.include <bsd.port.mk>
diff --git a/databases/py-ormar/distinfo b/databases/py-ormar/distinfo
new file mode 100644
index 000000000000..512cc08cd09d
--- /dev/null
+++ b/databases/py-ormar/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1640942160
+SHA256 (ormar-0.10.23.tar.gz) = bd8f86389db87f3844b25d7e1e47e18fa52b113877dcbad180f67d5a9597c9d3
+SIZE (ormar-0.10.23.tar.gz) = 125905
diff --git a/databases/py-ormar/pkg-descr b/databases/py-ormar/pkg-descr
new file mode 100644
index 000000000000..38f2ef1d47a9
--- /dev/null
+++ b/databases/py-ormar/pkg-descr
@@ -0,0 +1,13 @@
+The ormar package is an async mini ORM for Python, with support for Postgres,
+MySQL, and SQLite.
+
+The main benefit of using ormar are:
+* getting an async ORM that can be used with async frameworks (fastapi,
+ starlette etc.)
+* getting just one model to maintain - you don't have to maintain pydantic and
+ other orm model (sqlalchemy, peewee, gino etc.)
+
+The goal was to create a simple ORM that can be used directly (as request and
+response models) with fastapi that bases it's data validation on pydantic.
+
+WWW: https://github.com/collerek/ormar