git: 4472d02b2c44 - main - www/py-werkzeug2: Python utilities collection for building WSGI applications (2.x)

From: Jose Alonso Cardenas Marquez <acm_at_FreeBSD.org>
Date: Thu, 22 Feb 2024 22:44:12 UTC
The branch main has been updated by acm:

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

commit 4472d02b2c44d5bab34ebcd3649e394cbc49c1e1
Author:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
AuthorDate: 2024-02-22 22:42:53 +0000
Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
CommitDate: 2024-02-22 22:42:53 +0000

    www/py-werkzeug2: Python utilities collection for building WSGI applications (2.x)
    
    A Python utilities collection for building WSGI applications.
    
    Werkzeug does not try to be a framework, and instead started as a simple
    collection of various utilities useful for building WSGI applications.
    It has since become one of the most advanced collections of its kind.
    
    It includes a powerful debugger, fully featured request and response
    objects, HTTP utilities to handle entity tags, cache control headers,
    HTTP dates, cookie handling, file uploads, a powerful URL routing
    system and a bunch of community contributed add-on modules.
---
 www/Makefile                                |   1 +
 www/py-werkzeug2/Makefile                   |  38 ++++++
 www/py-werkzeug2/distinfo                   |   3 +
 www/py-werkzeug2/files/patch-pyproject.toml |   9 ++
 www/py-werkzeug2/pkg-descr                  |  10 ++
 www/py-werkzeug2/pkg-plist                  | 178 ++++++++++++++++++++++++++++
 6 files changed, 239 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index ed0c2e05ea1a..c73871845fff 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -1875,6 +1875,7 @@
     SUBDIR += py-webtest
     SUBDIR += py-webunit
     SUBDIR += py-werkzeug
+    SUBDIR += py-werkzeug2
     SUBDIR += py-wfuzz
     SUBDIR += py-whitenoise
     SUBDIR += py-wikipedia
diff --git a/www/py-werkzeug2/Makefile b/www/py-werkzeug2/Makefile
new file mode 100644
index 000000000000..8b9aa46e8f69
--- /dev/null
+++ b/www/py-werkzeug2/Makefile
@@ -0,0 +1,38 @@
+PORTNAME=	werkzeug
+PORTVERSION=	2.3.8
+CATEGORIES=	www python
+MASTER_SITES=	PYPI \
+		https://github.com/pallets/werkzeug/releases/download/${PORTVERSION}/
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+PKGNAMESUFFIX=	2
+
+MAINTAINER=	acm@FreeBSD.org
+COMMENT=	Python utilities collection for building WSGI applications (2.x)
+WWW=		https://palletsprojects.com/p/werkzeug/ \
+		https://github.com/pallets/werkzeug
+
+CONFLICTS=	${PYTHON_PKGNAMEPREFIX}werkzeug
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE.rst
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flit-core>=0<4:devel/py-flit-core@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}markupsafe>=2.1.1:textproc/py-markupsafe@${PY_FLAVOR}
+
+USES=		cpe python
+USE_PYTHON=	concurrent pep517
+
+NO_ARCH=	yes
+
+CPE_VENDOR=	palletsprojects
+
+OPTIONS_DEFINE=	EXAMPLES WATCHDOG
+WATCHDOG_DESC=	Monitor filesystem events
+
+WATCHDOG_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}watchdog>=2.3:devel/py-watchdog@${PY_FLAVOR}
+
+post-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
+
+.include <bsd.port.mk>
diff --git a/www/py-werkzeug2/distinfo b/www/py-werkzeug2/distinfo
new file mode 100644
index 000000000000..81195e482317
--- /dev/null
+++ b/www/py-werkzeug2/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1708634505
+SHA256 (werkzeug-2.3.8.tar.gz) = 554b257c74bbeb7a0d254160a4f8ffe185243f52a52035060b761ca62d977f03
+SIZE (werkzeug-2.3.8.tar.gz) = 819747
diff --git a/www/py-werkzeug2/files/patch-pyproject.toml b/www/py-werkzeug2/files/patch-pyproject.toml
new file mode 100644
index 000000000000..daceed5d440e
--- /dev/null
+++ b/www/py-werkzeug2/files/patch-pyproject.toml
@@ -0,0 +1,9 @@
+--- pyproject.toml.orig	2024-02-22 20:44:10 UTC
++++ pyproject.toml
+@@ -1,5 +1,5 @@
+ [project]
+-name = "Werkzeug"
++name = "werkzeug"
+ description = "The comprehensive WSGI web application library."
+ readme = "README.rst"
+ license = {file = "LICENSE.rst"}
diff --git a/www/py-werkzeug2/pkg-descr b/www/py-werkzeug2/pkg-descr
new file mode 100644
index 000000000000..0a2b7bfb5b9d
--- /dev/null
+++ b/www/py-werkzeug2/pkg-descr
@@ -0,0 +1,10 @@
+A Python utilities collection for building WSGI applications.
+
+Werkzeug does not try to be a framework, and instead started as a simple
+collection of various utilities useful for building WSGI applications.
+It has since become one of the most advanced collections of its kind.
+
+It includes a powerful debugger, fully featured request and response
+objects, HTTP utilities to handle entity tags, cache control headers,
+HTTP dates, cookie handling, file uploads, a powerful URL routing
+system and a bunch of community contributed add-on modules.
diff --git a/www/py-werkzeug2/pkg-plist b/www/py-werkzeug2/pkg-plist
new file mode 100644
index 000000000000..449ff2b87190
--- /dev/null
+++ b/www/py-werkzeug2/pkg-plist
@@ -0,0 +1,178 @@
+%%PYTHON_SITELIBDIR%%/werkzeug/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/_internal.py
+%%PYTHON_SITELIBDIR%%/werkzeug/_reloader.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/accept.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/accept.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/auth.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/cache_control.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/cache_control.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/csp.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/csp.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/etag.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/etag.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/file_storage.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/file_storage.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/headers.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/headers.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/mixins.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/mixins.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/range.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/range.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/structures.py
+%%PYTHON_SITELIBDIR%%/werkzeug/datastructures/structures.pyi
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/console.py
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/repr.py
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/shared/ICON_LICENSE.md
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/shared/console.png
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/shared/debugger.js
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/shared/less.png
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/shared/more.png
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/shared/style.css
+%%PYTHON_SITELIBDIR%%/werkzeug/debug/tbtools.py
+%%PYTHON_SITELIBDIR%%/werkzeug/exceptions.py
+%%PYTHON_SITELIBDIR%%/werkzeug/formparser.py
+%%PYTHON_SITELIBDIR%%/werkzeug/http.py
+%%PYTHON_SITELIBDIR%%/werkzeug/local.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/dispatcher.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/http_proxy.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/lint.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/profiler.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/proxy_fix.py
+%%PYTHON_SITELIBDIR%%/werkzeug/middleware/shared_data.py
+%%PYTHON_SITELIBDIR%%/werkzeug/py.typed
+%%PYTHON_SITELIBDIR%%/werkzeug/routing/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/routing/converters.py
+%%PYTHON_SITELIBDIR%%/werkzeug/routing/exceptions.py
+%%PYTHON_SITELIBDIR%%/werkzeug/routing/map.py
+%%PYTHON_SITELIBDIR%%/werkzeug/routing/matcher.py
+%%PYTHON_SITELIBDIR%%/werkzeug/routing/rules.py
+%%PYTHON_SITELIBDIR%%/werkzeug/sansio/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/sansio/http.py
+%%PYTHON_SITELIBDIR%%/werkzeug/sansio/multipart.py
+%%PYTHON_SITELIBDIR%%/werkzeug/sansio/request.py
+%%PYTHON_SITELIBDIR%%/werkzeug/sansio/response.py
+%%PYTHON_SITELIBDIR%%/werkzeug/sansio/utils.py
+%%PYTHON_SITELIBDIR%%/werkzeug/security.py
+%%PYTHON_SITELIBDIR%%/werkzeug/serving.py
+%%PYTHON_SITELIBDIR%%/werkzeug/test.py
+%%PYTHON_SITELIBDIR%%/werkzeug/testapp.py
+%%PYTHON_SITELIBDIR%%/werkzeug/urls.py
+%%PYTHON_SITELIBDIR%%/werkzeug/user_agent.py
+%%PYTHON_SITELIBDIR%%/werkzeug/utils.py
+%%PYTHON_SITELIBDIR%%/werkzeug/wrappers/__init__.py
+%%PYTHON_SITELIBDIR%%/werkzeug/wrappers/request.py
+%%PYTHON_SITELIBDIR%%/werkzeug/wrappers/response.py
+%%PYTHON_SITELIBDIR%%/werkzeug/wsgi.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/README.rst
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/application.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/helpers.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/public/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/templates/static/about.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/templates/static/index.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/templates/static/not_found.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/utils.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/views/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/coolmagic/views/static.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/README
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/application.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/models.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/static/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/templates/display.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/templates/list.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/templates/new.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/templates/not_found.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/utils.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/couchy/views.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/application.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/db.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/network.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/pages.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/content.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/down.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/favicon.ico
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/header.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/logo.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/shared/up.png
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/templates/missingpage.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/templates/search.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/templates/server.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/templates/serverlist.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cupoftee/utils.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/httpbasicauth.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/application.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/templates/about.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/templates/blog.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/templates/index.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/urls.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/i18nurls/views.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-coolmagic.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-couchy.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-cupoftee.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-i18nurls.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-plnt.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-shorty.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-simplewiki.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/manage-webpylike.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/partial/README
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/partial/complex_routing.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/database.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/shared/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/sync.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/templates/about.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/templates/index.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/utils.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/views.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/plnt/webapp.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortly/shortly.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortly/static/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortly/templates/404.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortly/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortly/templates/new_url.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shortly/templates/short_link_details.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/application.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/models.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/static/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/templates/display.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/templates/list.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/templates/new.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/templates/not_found.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/utils.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/shorty/views.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/__init__.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/actions.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/application.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/database.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/shared/style.css
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/specialpages.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/action_diff.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/action_edit.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/action_log.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/action_revert.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/action_show.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/layout.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/macros.xml
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/missing_action.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/page_index.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/page_missing.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/templates/recent_changes.html
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simplewiki/utils.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/upload.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/webpylike/example.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/webpylike/webpylike.py
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/wsecho.py