--- b/databases/Makefile +++ b/databases/Makefile @@ -776,6 +776,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 --- /dev/null +++ b/databases/py-ormar/Makefile @@ -0,0 +1,55 @@ +PORTNAME= ormar +DISTVERSION= 0.10.14 +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 + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pydantic>=1.6.1,<1.8.3:devel/py-pydantic@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sqlalchemy13>=1.3.18:databases/py-sqlalchemy13@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}databases>=0.3.2,<0.4.4:databases/py-databases@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.7:devel/py-typing-extensions@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0:devel/py-pytest-asyncio@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}fastapi>=0:www/py-fastapi@${PY_FLAVOR} + +USES= python:3.6+ +USE_PYTHON= distutils autoplist concurrent + +TEST_ENV= PYTHONPATH=${WRKSRC}/src + +NO_ARCH= yes + +USE_GITHUB= yes +GH_ACCOUNT= collerek + +OPTIONS_DEFINE= CRYPTO +OPTIONS_GROUP= DATABASES +OPTIONS_GROUP_DATABASES= SQLITE MYSQL PGSQL +OPTIONS_DEFAULT= SQLITE +DATABASES_DESC= Database Support + +CRYPTO_DESC= Support for password encryption +SQLITE_DESC= Support for SQLite database +MYSQL_DESC= Support for MySQL database +PGSQL_DESC= Support for PostgreSQL database + +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 --- /dev/null +++ b/databases/py-ormar/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1626870407 +SHA256 (collerek-ormar-0.10.14_GH0.tar.gz) = 2bb7b5f957f023b0b6e1cd457c2f265e0269546cf95385a90317d397283bd3ce +SIZE (collerek-ormar-0.10.14_GH0.tar.gz) = 331890 --- /dev/null +++ b/databases/py-ormar/files/patch-setup.py @@ -0,0 +1,10 @@ +--- setup.py.orig 2021-07-21 15:31:00 UTC ++++ setup.py +@@ -61,7 +61,6 @@ setup( + include_package_data=True, + zip_safe=False, + python_requires=">=3.6", +- data_files=[("", ["LICENSE.md"])], + install_requires=[ + "databases>=0.3.2,<0.4.4", + "pydantic>=1.6.1,!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<=1.8.2", --- /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