Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Jan 2022 06:55:08 GMT
From:      Hiroki Tagato <tagattie@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 5397c5e80dab - main - www/py-fastapi-users: add port: Ready-to-use and customizable users management for FastAPI
Message-ID:  <202201290655.20T6t8K4096764@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by tagattie:

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

commit 5397c5e80dab3825d0edaa31746adcea47aa361a
Author:     Goran Mekić <meka@tilda.center>
AuthorDate: 2022-01-29 06:52:38 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2022-01-29 06:54:40 +0000

    www/py-fastapi-users: add port: Ready-to-use and customizable users management for FastAPI
    
    Add quickly a registration and authentication system to your FastAPI project.
    FastAPI Users is designed to be as customizable and adaptable as possible.
    Features:
      * Extensible base user model
      * Ready-to-use register, login, reset password and verify e-mail routes
      * Ready-to-use social OAuth2 login flow
      * Dependency callables to inject current user in route
      * Pluggable password validation
      * Customizable database backend
        * SQLAlchemy async backend included thanks to encode/databases
        * MongoDB async backend included thanks to mongodb/motor
        * Tortoise ORM backend included
        * ormar backend included
      * Multiple customizable authentication backends
        * JWT authentication backend included
        * Cookie authentication backend included
      * Full OpenAPI schema support, even with several authentication backends
    
    WWW: https://github.com/fastapi-users/fastapi-users
    
    PR:             257369
    Reported by:    Goran Mekić <meka@tilda.center> (new maintainer)
    Reviewed by:    koobs
---
 www/Makefile                              |  1 +
 www/py-fastapi-users/Makefile             | 61 +++++++++++++++++++++++++++++++
 www/py-fastapi-users/distinfo             |  3 ++
 www/py-fastapi-users/files/patch-setup.py | 52 ++++++++++++++++++++++++++
 www/py-fastapi-users/pkg-descr            | 19 ++++++++++
 5 files changed, 136 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index 1993f1baa630..b473b4e9f8b1 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1589,6 +1589,7 @@
     SUBDIR += py-fake-useragent
     SUBDIR += py-falcon
     SUBDIR += py-fastapi
+    SUBDIR += py-fastapi-users
     SUBDIR += py-feedgenerator
     SUBDIR += py-flask
     SUBDIR += py-flask-admin
diff --git a/www/py-fastapi-users/Makefile b/www/py-fastapi-users/Makefile
new file mode 100644
index 000000000000..afea11aa4333
--- /dev/null
+++ b/www/py-fastapi-users/Makefile
@@ -0,0 +1,61 @@
+PORTNAME=	fastapi-users
+PORTVERSION=	9.2.2
+CATEGORIES=	www devel python
+MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	meka@tilda.center
+COMMENT=	Ready-to-use and customizable users management for FastAPI
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}bcrypt>=3.1.0:security/py-bcrypt@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}email-validator>=1.1.0,<1.2:mail/py-email-validator@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}fastapi>=0.65.2,<0.71.0:www/py-fastapi@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}makefun>=1.11.2,<1.14:devel/py-makefun@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}passlib>=0:security/py-passlib@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyjwt>=2.1.0:www/py-pyjwt@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}python-multipart>=0.0.5:www/py-python-multipart@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}asynctest>=0:devel/py-asynctest@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}httpx-oauth>=0:www/py-httpx-oauth@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}ormar>=0.9.5,<0.11.0:databases/py-ormar@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pymongo>=0:databases/pymongo@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0:devel/py-pytest-asyncio@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest>=0:devel/py-pytest@${PY_FLAVOR}
+
+# Tests will need ${PYTHON_PKGNAMEPREFIX}asgi-lifespan>=0:devel/py-asgi-lifespan@${PY_FLAVOR}
+
+USES=		python:3.7+
+USE_PYTHON=	autoplist distutils
+
+TEST_ENV=	PYTHONPATH=${WRKSRC}/src
+
+NO_ARCH=	yes
+
+OPTIONS_DEFINE=			OAUTH
+OPTIONS_GROUP=			DATABASES
+OPTIONS_GROUP_DATABASES=	ORMAR SQLALCHEMY
+OPTIONS_DEFAULT=		ORMAR
+DATABASES_DESC=			Database Support
+
+OAUTH_DESC=		Authentication support via OAuth
+ORMAR_DESC=		Support for SQL database through Ormar
+SQLALCHEMY_DESC=	Support for SQL database through SQLAlchemy
+
+OAUTH_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}httpx-oauth>=0.3,<0.4:www/py-httpx-oauth@${PY_FLAVOR}
+ORMAR_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}ormar>=0.9.5,<0.11.0:databases/py-ormar@${PY_FLAVOR}
+SQLALCHEMY_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}databases>=0.3.0,<0.5:databases/py-databases@${PY_FLAVOR} \
+			${PYTHON_PKGNAMEPREFIX}sqlalchemy14>=1.4.0:databases/py-sqlalchemy14@${PY_FLAVOR}
+
+# Tests require tortoise and newer motor
+# do-test:
+	# cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ${PYTHON_CMD} -m pytest -v -rs -o addopts=
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 30800
+RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}typing-extensions>=3.7.4.3:devel/py-typing-extensions@${PY_FLAVOR}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/www/py-fastapi-users/distinfo b/www/py-fastapi-users/distinfo
new file mode 100644
index 000000000000..7343f4599267
--- /dev/null
+++ b/www/py-fastapi-users/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1643064924
+SHA256 (fastapi-users-9.2.2.tar.gz) = 59febb9302dd0590b6992343896437bd1941ec4c6726bf5abf9093d681a98f23
+SIZE (fastapi-users-9.2.2.tar.gz) = 103649
diff --git a/www/py-fastapi-users/files/patch-setup.py b/www/py-fastapi-users/files/patch-setup.py
new file mode 100644
index 000000000000..c56e9fe3c2d1
--- /dev/null
+++ b/www/py-fastapi-users/files/patch-setup.py
@@ -0,0 +1,52 @@
+--- setup.py.orig	2022-01-24 23:01:58 UTC
++++ setup.py
+@@ -0,0 +1,49 @@
++#!/usr/bin/env python
++# setup.py generated by flit for tools that don't yet use PEP 517
++
++from distutils.core import setup
++
++packages = [
++    "fastapi_users",
++    "fastapi_users.authentication",
++    "fastapi_users.authentication.strategy",
++    "fastapi_users.authentication.strategy.db",
++    "fastapi_users.authentication.transport",
++    "fastapi_users.db",
++    "fastapi_users.router",
++]
++
++package_data = {"": ["*"]}
++
++install_requires = [
++    "fastapi >=0.65.2,<0.72.0",
++    "passlib[bcrypt] ==1.7.4",
++    "email-validator >=1.1.0,<1.2",
++    "pyjwt ==2.3.0",
++    "python-multipart ==0.0.5",
++    "makefun >=1.11.2,<1.14",
++]
++
++extras_require = {
++    "mongodb": ["fastapi-users-db-mongodb >=1.1.0"],
++    "oauth": ["httpx-oauth >=0.4,<0.5"],
++    "ormar": ["fastapi-users-db-ormar >=1.0.0"],
++    "redis": ["aioredis >=2.0.1,<2.1.0", "hiredis >=2.0.0,<2.1.0"],
++    "sqlalchemy": ["fastapi-users-db-sqlalchemy >=1.1.0,<2.0.0"],
++    "sqlalchemy2": ["fastapi-users-db-sqlalchemy >=2.0.0"],
++    "tortoise-orm": ["fastapi-users-db-tortoise >=1.1.0"],
++}
++
++setup(
++    name="fastapi-users",
++    version="9.2.2",
++    description="Ready-to-use and customizable users management for FastAPI.",
++    author="François Voron",
++    author_email="fvoron@gmail.com",
++    url="https://github.com/fastapi-users/fastapi-users",
++    packages=packages,
++    package_data=package_data,
++    install_requires=install_requires,
++    extras_require=extras_require,
++    python_requires=">=3.7",
++)
diff --git a/www/py-fastapi-users/pkg-descr b/www/py-fastapi-users/pkg-descr
new file mode 100644
index 000000000000..74857534c461
--- /dev/null
+++ b/www/py-fastapi-users/pkg-descr
@@ -0,0 +1,19 @@
+Add quickly a registration and authentication system to your FastAPI project.
+FastAPI Users is designed to be as customizable and adaptable as possible.
+Features:
+  * Extensible base user model
+  * Ready-to-use register, login, reset password and verify e-mail routes
+  * Ready-to-use social OAuth2 login flow
+  * Dependency callables to inject current user in route
+  * Pluggable password validation
+  * Customizable database backend
+    * SQLAlchemy async backend included thanks to encode/databases
+    * MongoDB async backend included thanks to mongodb/motor
+    * Tortoise ORM backend included
+    * ormar backend included
+  * Multiple customizable authentication backends
+    * JWT authentication backend included
+    * Cookie authentication backend included
+  * Full OpenAPI schema support, even with several authentication backends
+
+WWW: https://github.com/fastapi-users/fastapi-users



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202201290655.20T6t8K4096764>