From 1c78d01e5d82de56c0f61339e919e3c77bb6b46d Mon Sep 17 00:00:00 2001
From: Marcel Telka <marcel@telka.sk>
Date: Tue, 17 Jan 2023 07:31:40 +0100
Subject: [PATCH] Add Paste python project

---
 components/python/Paste/python-integrate-project.conf |   17 +
 components/python/Paste/test/results-3.9.master       |  196 +++++++++++++++
 components/python/Paste/Makefile                      |   38 ++
 components/python/Paste/Paste.license                 |   20 +
 components/python/Paste/test/results-3.7.master       |  192 ++++++++++++++
 components/python/Paste/pkg5                          |   19 +
 components/python/Paste/Paste-PYVER.p5m               |  130 ++++++++++
 components/python/Paste/manifests/sample-manifest.p5m |  130 ++++++++++
 8 files changed, 742 insertions(+), 0 deletions(-)

diff --git a/components/python/Paste/Makefile b/components/python/Paste/Makefile
new file mode 100644
index 0000000..876ab70
--- /dev/null
+++ b/components/python/Paste/Makefile
@@ -0,0 +1,38 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# This file was automatically generated using the following command:
+#   $WS_TOOLS/python-integrate-project Paste
+#
+
+BUILD_STYLE = setup.py
+USE_COMMON_TEST_MASTER = no
+
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME =		Paste
+HUMAN_VERSION =			3.5.2
+COMPONENT_SUMMARY =		Paste - Tools for using a Web Server Gateway Interface stack
+COMPONENT_PROJECT_URL =		https://pythonpaste.readthedocs.io/
+COMPONENT_ARCHIVE_URL =		\
+	https://files.pythonhosted.org/packages/4c/2b/2e44afea5f8e397a5ce0f7ef78a79647f2c21e3fd7a463bf3be13aa6e819/Paste-3.5.2.tar.gz
+COMPONENT_ARCHIVE_HASH =	\
+	sha256:d5a7340c30bcdf3023dd0106c8a5c430dd8fe84aeb8113bc7b93f8dd729f4af6
+COMPONENT_LICENSE =		MIT
+
+include $(WS_MAKE_RULES)/common.mk
+
+# Auto-generated dependencies
+PYTHON_REQUIRED_PACKAGES += library/python/setuptools
+PYTHON_REQUIRED_PACKAGES += library/python/six
+PYTHON_REQUIRED_PACKAGES += runtime/python
+TEST_REQUIRED_PACKAGES.python += library/python/pytest
diff --git a/components/python/Paste/Paste-PYVER.p5m b/components/python/Paste/Paste-PYVER.p5m
new file mode 100644
index 0000000..040a3c4
--- /dev/null
+++ b/components/python/Paste/Paste-PYVER.p5m
@@ -0,0 +1,130 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# This file was automatically generated using python-integrate-project
+#
+
+set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.human-version value=$(HUMAN_VERSION)
+set name=pkg.summary value="$(COMPONENT_SUMMARY)"
+set name=info.classification value="$(COMPONENT_CLASSIFICATION)"
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+license $(COMPONENT_LICENSE_FILE) license='$(COMPONENT_LICENSE)'
+
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER)-nspkg.pth
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/PKG-INFO
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/SOURCES.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/dependency_links.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/entry_points.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/namespace_packages.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/not-zip-safe
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/requires.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/top_level.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/auth_tkt.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/basic.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/cas.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/cookie.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/digest.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/form.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/grantip.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/multi.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/open_id.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cascade.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cgiapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cgitb_catcher.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/config.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cowbell/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cowbell/bell-ascending.png
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cowbell/bell-descending.png
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/debugapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/doctest_webapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/fsdiff.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/prints.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/profile.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/testserver.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/watchthreads.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/wdg_validate.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/errordocument.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/evalcontext.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/MochiKit.packed.js
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/debug.js
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/minus.jpg
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/plus.jpg
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/middleware.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/collector.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/errormiddleware.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/formatter.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/reporter.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/serial_number_generator.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/fileapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/fixture.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/flup_session.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/gzipper.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/httpexceptions.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/httpheaders.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/httpserver.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/lint.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/modpython.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/pony.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/progress.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/proxy.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/recursive.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/registry.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/reloader.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/request.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/response.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/session.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/transaction.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/translogger.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/url.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/urlmap.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/urlparser.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/PySourceColor.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/classinit.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/classinstance.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/converters.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/dateinterval.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/datetimeutil.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/filemixin.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/finddata.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/findpackage.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/html.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/import_string.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/intset.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/ip4.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/killthread.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/looper.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/mimeparse.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/multidict.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/quoting.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/scgiserver.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/template.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/threadedprint.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/threadinglocal.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/wsgilib.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/wsgiwrappers.py
+
+# python modules are unusable without python runtime binary
+depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
+    pkg.debug.depend.path=usr/bin
+
+# Automatically generated dependencies based on distribution metadata
+depend type=require fmri=pkg:/library/python/setuptools-$(PYV)
+depend type=require fmri=pkg:/library/python/six-$(PYV)
diff --git a/components/python/Paste/Paste.license b/components/python/Paste/Paste.license
new file mode 100644
index 0000000..c810dec
--- /dev/null
+++ b/components/python/Paste/Paste.license
@@ -0,0 +1,20 @@
+Copyright (c) 2006-2007 Ian Bicking and Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/components/python/Paste/manifests/sample-manifest.p5m b/components/python/Paste/manifests/sample-manifest.p5m
new file mode 100644
index 0000000..6fe8799
--- /dev/null
+++ b/components/python/Paste/manifests/sample-manifest.p5m
@@ -0,0 +1,130 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2023 <contributor>
+#
+
+set name=pkg.fmri value=pkg:/$(COMPONENT_FMRI)-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.human-version value=$(HUMAN_VERSION)
+set name=pkg.summary value="$(COMPONENT_SUMMARY)"
+set name=info.classification value="$(COMPONENT_CLASSIFICATION)"
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+
+license $(COMPONENT_LICENSE_FILE) license='$(COMPONENT_LICENSE)'
+
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER)-nspkg.pth
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/PKG-INFO
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/SOURCES.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/dependency_links.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/entry_points.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/namespace_packages.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/not-zip-safe
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/requires.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/Paste-$(HUMAN_VERSION)-py$(PYVER).egg-info/top_level.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/auth_tkt.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/basic.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/cas.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/cookie.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/digest.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/form.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/grantip.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/multi.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/auth/open_id.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cascade.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cgiapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cgitb_catcher.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/config.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cowbell/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cowbell/bell-ascending.png
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/cowbell/bell-descending.png
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/debugapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/doctest_webapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/fsdiff.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/prints.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/profile.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/testserver.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/watchthreads.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/debug/wdg_validate.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/errordocument.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/evalcontext.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/MochiKit.packed.js
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/debug.js
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/minus.jpg
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/media/plus.jpg
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/evalexception/middleware.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/collector.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/errormiddleware.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/formatter.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/reporter.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/exceptions/serial_number_generator.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/fileapp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/fixture.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/flup_session.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/gzipper.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/httpexceptions.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/httpheaders.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/httpserver.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/lint.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/modpython.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/pony.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/progress.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/proxy.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/recursive.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/registry.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/reloader.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/request.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/response.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/session.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/transaction.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/translogger.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/url.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/urlmap.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/urlparser.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/PySourceColor.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/classinit.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/classinstance.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/converters.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/dateinterval.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/datetimeutil.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/filemixin.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/finddata.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/findpackage.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/html.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/import_string.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/intset.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/ip4.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/killthread.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/looper.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/mimeparse.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/multidict.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/quoting.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/scgiserver.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/template.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/threadedprint.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/util/threadinglocal.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/wsgilib.py
+file path=usr/lib/python$(PYVER)/vendor-packages/paste/wsgiwrappers.py
+
+# python modules are unusable without python runtime binary
+depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
+    pkg.debug.depend.path=usr/bin
+
+# Automatically generated dependencies based on distribution metadata
+depend type=require fmri=pkg:/library/python/setuptools-$(PYV)
+depend type=require fmri=pkg:/library/python/six-$(PYV)
diff --git a/components/python/Paste/pkg5 b/components/python/Paste/pkg5
new file mode 100644
index 0000000..6dab52d
--- /dev/null
+++ b/components/python/Paste/pkg5
@@ -0,0 +1,19 @@
+{
+    "dependencies": [
+        "SUNWcs",
+        "library/python/setuptools-37",
+        "library/python/setuptools-39",
+        "library/python/six-37",
+        "library/python/six-39",
+        "runtime/python-37",
+        "runtime/python-39",
+        "shell/ksh93",
+        "system/library"
+    ],
+    "fmris": [
+        "library/python/paste-37",
+        "library/python/paste-39",
+        "library/python/paste"
+    ],
+    "name": "Paste"
+}
\ No newline at end of file
diff --git a/components/python/Paste/python-integrate-project.conf b/components/python/Paste/python-integrate-project.conf
new file mode 100644
index 0000000..193eeb2
--- /dev/null
+++ b/components/python/Paste/python-integrate-project.conf
@@ -0,0 +1,17 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source.  A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2023 Marcel Telka
+#
+
+%hook-no-license%
+cat "$SOURCE_DIR/docs/license.txt" > "$DISTRIBUTION.license"
diff --git a/components/python/Paste/test/results-3.7.master b/components/python/Paste/test/results-3.7.master
new file mode 100644
index 0000000..1f1b14e
--- /dev/null
+++ b/components/python/Paste/test/results-3.7.master
@@ -0,0 +1,192 @@
+py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV)
+py$(PYV): commands[0]> python -m pytest
+============================= test session starts ==============================
+platform sunos5 -- Python $(PYTHON_VERSION).X -- $(@D)/.tox/py$(PYV)/bin/python
+cachedir: .tox/py$(PYV)/.pytest_cache
+hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('$(@D)/.hypothesis/examples')
+rootdir: $(@D), configfile: setup.cfg, testpaths: tests
+asyncio: mode=strict
+collecting ... collected 151 items
+
+tests/test_auth/test_auth_cookie.py::test_basic PASSED
+tests/test_auth/test_auth_cookie.py::test_noop PASSED
+tests/test_auth/test_auth_cookie.py::test_roundtrip PASSED
+tests/test_auth/test_auth_digest.py::test_digest PASSED
+tests/test_auth/test_auth_tkt.py::test_auth_ticket_cookie PASSED
+tests/test_auth/test_auth_tkt.py::test_auth_ticket_digest_and_cookie_value PASSED
+tests/test_cgiapp.py::test_error PASSED
+tests/test_cgiapp.py::test_form PASSED
+tests/test_cgiapp.py::test_ok PASSED
+tests/test_cgiapp.py::test_stderr PASSED
+tests/test_cgitb_catcher.py::test_after_start PASSED
+tests/test_cgitb_catcher.py::test_iter_app PASSED
+tests/test_cgitb_catcher.py::test_makes_exception PASSED
+tests/test_cgitb_catcher.py::test_start_res PASSED
+tests/test_config.py::test_process_config PASSED
+tests/test_config.py::test_process_config_multi PASSED
+tests/test_config.py::test_request_config PASSED
+tests/test_config.py::test_request_config_multi PASSED
+tests/test_doctests.py::test_doctest_mods[paste.evalexception.evalcontext] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.exceptions.serial_number_generator] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.request] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.url] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.dateinterval] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.looper] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.quoting] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.template] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.wsgilib] PASSED
+tests/test_doctests.py::test_doctests[tests/template.txt] PASSED
+tests/test_errordocument.py::test_auth_docs_app PASSED
+tests/test_errordocument.py::test_bad_error PASSED
+tests/test_errordocument.py::test_error_docs_app PASSED
+tests/test_errordocument.py::test_forward PASSED
+tests/test_errordocument.py::test_ok PASSED
+tests/test_exceptions/test_error_middleware.py::test_after_start PASSED
+tests/test_exceptions/test_error_middleware.py::test_iter_app PASSED
+tests/test_exceptions/test_error_middleware.py::test_makes_exception PASSED
+tests/test_exceptions/test_error_middleware.py::test_start_res PASSED
+tests/test_exceptions/test_error_middleware.py::test_unicode_exception PASSED
+tests/test_exceptions/test_formatter.py::test_content PASSED
+tests/test_exceptions/test_formatter.py::test_excersize PASSED
+tests/test_exceptions/test_formatter.py::test_hide PASSED
+tests/test_exceptions/test_formatter.py::test_hide_after PASSED
+tests/test_exceptions/test_formatter.py::test_hide_before PASSED
+tests/test_exceptions/test_formatter.py::test_hide_supppressed PASSED
+tests/test_exceptions/test_formatter.py::test_make_wrappable PASSED
+tests/test_exceptions/test_formatter.py::test_trim PASSED
+tests/test_exceptions/test_httpexceptions.py::test_HTTPMove PASSED
+tests/test_exceptions/test_httpexceptions.py::test_badapp PASSED
+tests/test_exceptions/test_httpexceptions.py::test_misc PASSED
+tests/test_exceptions/test_httpexceptions.py::test_redapp PASSED
+tests/test_exceptions/test_httpexceptions.py::test_template PASSED
+tests/test_exceptions/test_httpexceptions.py::test_unicode PASSED
+tests/test_exceptions/test_reporter.py::test_logger PASSED
+tests/test_fileapp.py::test_cache PASSED
+tests/test_fileapp.py::test_data PASSED
+tests/test_fileapp.py::test_dir PASSED
+tests/test_fileapp.py::test_disposition PASSED
+tests/test_fileapp.py::test_file PASSED
+tests/test_fileapp.py::test_file_cache PASSED
+tests/test_fileapp.py::test_file_range PASSED
+tests/test_fileapp.py::test_methods PASSED
+tests/test_fileapp.py::test_modified PASSED
+tests/test_fileapp.py::test_range PASSED
+tests/test_fixture.py::test_fixture PASSED
+tests/test_fixture.py::test_fixture_form PASSED
+tests/test_fixture.py::test_fixture_form_end PASSED
+tests/test_fixture.py::test_params_and_upload_files PASSED
+tests/test_fixture.py::test_unicode_path PASSED
+tests/test_grantip.py::test_make_app PASSED
+tests/test_grantip.py::test_req PASSED
+tests/test_gzipper.py::test_gzip PASSED
+tests/test_gzipper.py::test_gzip_head PASSED
+tests/test_httpheaders.py::test_cache_control PASSED
+tests/test_httpheaders.py::test_content_disposition PASSED
+tests/test_httpheaders.py::test_copy PASSED
+tests/test_httpheaders.py::test_environ PASSED
+tests/test_httpheaders.py::test_environ_cgi PASSED
+tests/test_httpheaders.py::test_if_modified_since PASSED
+tests/test_httpheaders.py::test_normalize PASSED
+tests/test_httpheaders.py::test_range PASSED
+tests/test_httpheaders.py::test_response_headers PASSED
+tests/test_httpheaders.py::test_sorting PASSED
+tests/test_httpserver.py::test_address_family_v4 PASSED
+tests/test_httpserver.py::test_address_family_v4_host_and_port PASSED
+tests/test_httpserver.py::test_address_family_v6 PASSED
+tests/test_httpserver.py::test_environ PASSED
+tests/test_httpserver.py::test_environ_with_multiple_values PASSED
+tests/test_httpserver.py::test_limited_length_file PASSED
+tests/test_httpserver.py::test_limited_length_file_tell_on_socket PASSED
+tests/test_import_string.py::test_complex PASSED
+tests/test_import_string.py::test_simple PASSED
+tests/test_multidict.py::test_dict PASSED
+tests/test_multidict.py::test_unicode_dict PASSED
+tests/test_proxy.py::test_proxy_to_website PASSED
+tests/test_recursive.py::test_ForwardRequestException PASSED
+tests/test_recursive.py::test_ForwardRequest_environ PASSED
+tests/test_recursive.py::test_ForwardRequest_factory PASSED
+tests/test_recursive.py::test_ForwardRequest_url PASSED
+tests/test_registry.py::test_double_registry PASSED
+tests/test_registry.py::test_iterating_response PASSED
+tests/test_registry.py::test_really_deep_registry PASSED
+tests/test_registry.py::test_registry_no_object_error PASSED
+tests/test_registry.py::test_restorer_basic PASSED
+tests/test_registry.py::test_restorer_basic_manager_outside PASSED
+tests/test_registry.py::test_restorer_disabled PASSED
+tests/test_registry.py::test_restorer_middleman_nested_evalexception PASSED
+tests/test_registry.py::test_restorer_middlemen_nested_evalexception PASSED
+tests/test_registry.py::test_restorer_nested_middleman PASSED
+tests/test_registry.py::test_simple PASSED
+tests/test_registry.py::test_solo_registry PASSED
+tests/test_registry.py::test_with_default_object PASSED
+tests/test_request.py::test_bad_cookie PASSED
+tests/test_request.py::test_gets PASSED
+tests/test_request.py::test_language_parsing PASSED
+tests/test_request.py::test_mime_parsing PASSED
+tests/test_request_form.py::test_parse_querystring PASSED
+tests/test_request_form.py::test_parsevars PASSED
+tests/test_response.py::test_replace_header PASSED
+tests/test_session.py::test_app1 PASSED
+tests/test_session.py::test_app2 PASSED
+tests/test_urlmap.py::test_404 PASSED
+tests/test_urlmap.py::test_map PASSED
+tests/test_urlparser.py::test_deep PASSED
+tests/test_urlparser.py::test_egg_parser PASSED
+tests/test_urlparser.py::test_find_file PASSED
+tests/test_urlparser.py::test_hook PASSED
+tests/test_urlparser.py::test_not_found_hook PASSED
+tests/test_urlparser.py::test_python PASSED
+tests/test_urlparser.py::test_relative_path_in_static_parser PASSED
+tests/test_urlparser.py::test_static_parser PASSED
+tests/test_urlparser.py::test_xss PASSED
+tests/test_util/test_datetimeutil.py::test_date PASSED
+tests/test_util/test_datetimeutil.py::test_time PASSED
+tests/test_util/test_datetimeutil.py::test_timedelta PASSED
+tests/test_util/test_mimeparse.py::test_best_match PASSED
+tests/test_util/test_mimeparse.py::test_fitness_and_quality_parsed PASSED
+tests/test_util/test_mimeparse.py::test_illformed_best_match PASSED
+tests/test_util/test_mimeparse.py::test_parse_illformed_mime_type PASSED
+tests/test_util/test_mimeparse.py::test_parse_media_range PASSED
+tests/test_util/test_mimeparse.py::test_parse_mime_type PASSED
+tests/test_util/test_mimeparse.py::test_quality PASSED
+tests/test_util/test_mimeparse.py::test_quality_parsed PASSED
+tests/test_util/test_mimeparse.py::test_sorted_match PASSED
+tests/test_util/test_quoting.py::TestQuoting::test_html_quote PASSED
+tests/test_util/test_quoting.py::TestQuoting::test_html_unquote PASSED
+tests/test_wsgilib.py::test_add_close[app_iterable_func_bytes-expected0] PASSED
+tests/test_wsgilib.py::test_add_close[app_iterable_func_unicode-expected1] PASSED
+tests/test_wsgiwrappers.py::test_call_wsgiresponse PASSED
+tests/test_wsgiwrappers.py::test_wsgirequest_charset PASSED
+tests/test_wsgiwrappers.py::test_wsgirequest_charset_fileupload PASSED
+tests/test_wsgiwrappers.py::test_wsgiresponse_charset PASSED
+
+=============================== warnings summary ===============================
+tests/test_httpserver.py:7
+  $(@D)/tests/test_httpserver.py:7: DeprecationWarning: OpenSSL.tsafe is deprecated and will be removed
+    from paste.httpserver import LimitedLengthFile, WSGIHandler, serve
+
+tests/test_grantip.py: 1 warning
+tests/test_cgitb_catcher.py: 1 warning
+tests/test_request.py: 1 warning
+tests/test_urlmap.py: 1 warning
+tests/test_errordocument.py: 1 warning
+tests/test_fileapp.py: 1 warning
+tests/test_recursive.py: 1 warning
+tests/test_registry.py: 1 warning
+tests/test_urlparser.py: 1 warning
+tests/test_exceptions/test_error_middleware.py: 1 warning
+  $(PYTHON_DIR)/vendor-packages/_pytest/python.py:786: DeprecationWarning: setup_module is deprecated
+    func(arg)
+
+tests/test_grantip.py::test_make_app
+  $(PYTHON_DIR)/vendor-packages/_pytest/python.py:201: PytestReturnNotNoneWarning: Expected None, but tests/test_grantip.py::test_make_app returned <paste.fixture.TestApp object at 0x7fffa946ff50>, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
+    f"Expected None, but {pyfuncitem.nodeid} returned {result!r}, which will be an error in a "
+
+tests/test_recursive.py::test_ForwardRequestException
+  $(@D)/tests/test_recursive.py:104: DeprecationWarning: ForwardRequestException(path_info=...) has been deprecated; please use ForwardRequestException(url=...)
+    raise ForwardRequestException(path_info=self.url)
+
+-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
+======== 151 passed, 13 warnings ========
+  py$(PYV): OK
+  congratulations :)
diff --git a/components/python/Paste/test/results-3.9.master b/components/python/Paste/test/results-3.9.master
new file mode 100644
index 0000000..04c1e39
--- /dev/null
+++ b/components/python/Paste/test/results-3.9.master
@@ -0,0 +1,196 @@
+py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV)
+py$(PYV): commands[0]> python -m pytest
+============================= test session starts ==============================
+platform sunos5 -- Python $(PYTHON_VERSION).X -- $(@D)/.tox/py$(PYV)/bin/python
+cachedir: .tox/py$(PYV)/.pytest_cache
+hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('$(@D)/.hypothesis/examples')
+rootdir: $(@D), configfile: setup.cfg, testpaths: tests
+asyncio: mode=strict
+collecting ... collected 151 items
+
+tests/test_auth/test_auth_cookie.py::test_basic PASSED
+tests/test_auth/test_auth_cookie.py::test_noop PASSED
+tests/test_auth/test_auth_cookie.py::test_roundtrip PASSED
+tests/test_auth/test_auth_digest.py::test_digest PASSED
+tests/test_auth/test_auth_tkt.py::test_auth_ticket_cookie PASSED
+tests/test_auth/test_auth_tkt.py::test_auth_ticket_digest_and_cookie_value PASSED
+tests/test_cgiapp.py::test_error PASSED
+tests/test_cgiapp.py::test_form PASSED
+tests/test_cgiapp.py::test_ok PASSED
+tests/test_cgiapp.py::test_stderr PASSED
+tests/test_cgitb_catcher.py::test_after_start PASSED
+tests/test_cgitb_catcher.py::test_iter_app PASSED
+tests/test_cgitb_catcher.py::test_makes_exception PASSED
+tests/test_cgitb_catcher.py::test_start_res PASSED
+tests/test_config.py::test_process_config PASSED
+tests/test_config.py::test_process_config_multi PASSED
+tests/test_config.py::test_request_config PASSED
+tests/test_config.py::test_request_config_multi PASSED
+tests/test_doctests.py::test_doctest_mods[paste.evalexception.evalcontext] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.exceptions.serial_number_generator] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.request] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.url] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.dateinterval] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.looper] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.quoting] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.util.template] PASSED
+tests/test_doctests.py::test_doctest_mods[paste.wsgilib] PASSED
+tests/test_doctests.py::test_doctests[tests/template.txt] PASSED
+tests/test_errordocument.py::test_auth_docs_app PASSED
+tests/test_errordocument.py::test_bad_error PASSED
+tests/test_errordocument.py::test_error_docs_app PASSED
+tests/test_errordocument.py::test_forward PASSED
+tests/test_errordocument.py::test_ok PASSED
+tests/test_exceptions/test_error_middleware.py::test_after_start PASSED
+tests/test_exceptions/test_error_middleware.py::test_iter_app PASSED
+tests/test_exceptions/test_error_middleware.py::test_makes_exception PASSED
+tests/test_exceptions/test_error_middleware.py::test_start_res PASSED
+tests/test_exceptions/test_error_middleware.py::test_unicode_exception PASSED
+tests/test_exceptions/test_formatter.py::test_content PASSED
+tests/test_exceptions/test_formatter.py::test_excersize PASSED
+tests/test_exceptions/test_formatter.py::test_hide PASSED
+tests/test_exceptions/test_formatter.py::test_hide_after PASSED
+tests/test_exceptions/test_formatter.py::test_hide_before PASSED
+tests/test_exceptions/test_formatter.py::test_hide_supppressed PASSED
+tests/test_exceptions/test_formatter.py::test_make_wrappable PASSED
+tests/test_exceptions/test_formatter.py::test_trim PASSED
+tests/test_exceptions/test_httpexceptions.py::test_HTTPMove PASSED
+tests/test_exceptions/test_httpexceptions.py::test_badapp PASSED
+tests/test_exceptions/test_httpexceptions.py::test_misc PASSED
+tests/test_exceptions/test_httpexceptions.py::test_redapp PASSED
+tests/test_exceptions/test_httpexceptions.py::test_template PASSED
+tests/test_exceptions/test_httpexceptions.py::test_unicode PASSED
+tests/test_exceptions/test_reporter.py::test_logger PASSED
+tests/test_fileapp.py::test_cache PASSED
+tests/test_fileapp.py::test_data PASSED
+tests/test_fileapp.py::test_dir PASSED
+tests/test_fileapp.py::test_disposition PASSED
+tests/test_fileapp.py::test_file PASSED
+tests/test_fileapp.py::test_file_cache PASSED
+tests/test_fileapp.py::test_file_range PASSED
+tests/test_fileapp.py::test_methods PASSED
+tests/test_fileapp.py::test_modified PASSED
+tests/test_fileapp.py::test_range PASSED
+tests/test_fixture.py::test_fixture PASSED
+tests/test_fixture.py::test_fixture_form PASSED
+tests/test_fixture.py::test_fixture_form_end PASSED
+tests/test_fixture.py::test_params_and_upload_files PASSED
+tests/test_fixture.py::test_unicode_path PASSED
+tests/test_grantip.py::test_make_app PASSED
+tests/test_grantip.py::test_req PASSED
+tests/test_gzipper.py::test_gzip PASSED
+tests/test_gzipper.py::test_gzip_head PASSED
+tests/test_httpheaders.py::test_cache_control PASSED
+tests/test_httpheaders.py::test_content_disposition PASSED
+tests/test_httpheaders.py::test_copy PASSED
+tests/test_httpheaders.py::test_environ PASSED
+tests/test_httpheaders.py::test_environ_cgi PASSED
+tests/test_httpheaders.py::test_if_modified_since PASSED
+tests/test_httpheaders.py::test_normalize PASSED
+tests/test_httpheaders.py::test_range PASSED
+tests/test_httpheaders.py::test_response_headers PASSED
+tests/test_httpheaders.py::test_sorting PASSED
+tests/test_httpserver.py::test_address_family_v4 PASSED
+tests/test_httpserver.py::test_address_family_v4_host_and_port PASSED
+tests/test_httpserver.py::test_address_family_v6 PASSED
+tests/test_httpserver.py::test_environ PASSED
+tests/test_httpserver.py::test_environ_with_multiple_values PASSED
+tests/test_httpserver.py::test_limited_length_file PASSED
+tests/test_httpserver.py::test_limited_length_file_tell_on_socket PASSED
+tests/test_import_string.py::test_complex PASSED
+tests/test_import_string.py::test_simple PASSED
+tests/test_multidict.py::test_dict PASSED
+tests/test_multidict.py::test_unicode_dict PASSED
+tests/test_proxy.py::test_proxy_to_website PASSED
+tests/test_recursive.py::test_ForwardRequestException PASSED
+tests/test_recursive.py::test_ForwardRequest_environ PASSED
+tests/test_recursive.py::test_ForwardRequest_factory PASSED
+tests/test_recursive.py::test_ForwardRequest_url PASSED
+tests/test_registry.py::test_double_registry PASSED
+tests/test_registry.py::test_iterating_response PASSED
+tests/test_registry.py::test_really_deep_registry PASSED
+tests/test_registry.py::test_registry_no_object_error PASSED
+tests/test_registry.py::test_restorer_basic PASSED
+tests/test_registry.py::test_restorer_basic_manager_outside PASSED
+tests/test_registry.py::test_restorer_disabled PASSED
+tests/test_registry.py::test_restorer_middleman_nested_evalexception PASSED
+tests/test_registry.py::test_restorer_middlemen_nested_evalexception PASSED
+tests/test_registry.py::test_restorer_nested_middleman PASSED
+tests/test_registry.py::test_simple PASSED
+tests/test_registry.py::test_solo_registry PASSED
+tests/test_registry.py::test_with_default_object PASSED
+tests/test_request.py::test_bad_cookie PASSED
+tests/test_request.py::test_gets PASSED
+tests/test_request.py::test_language_parsing PASSED
+tests/test_request.py::test_mime_parsing PASSED
+tests/test_request_form.py::test_parse_querystring PASSED
+tests/test_request_form.py::test_parsevars PASSED
+tests/test_response.py::test_replace_header PASSED
+tests/test_session.py::test_app1 PASSED
+tests/test_session.py::test_app2 PASSED
+tests/test_urlmap.py::test_404 PASSED
+tests/test_urlmap.py::test_map PASSED
+tests/test_urlparser.py::test_deep PASSED
+tests/test_urlparser.py::test_egg_parser PASSED
+tests/test_urlparser.py::test_find_file PASSED
+tests/test_urlparser.py::test_hook PASSED
+tests/test_urlparser.py::test_not_found_hook PASSED
+tests/test_urlparser.py::test_python PASSED
+tests/test_urlparser.py::test_relative_path_in_static_parser PASSED
+tests/test_urlparser.py::test_static_parser PASSED
+tests/test_urlparser.py::test_xss PASSED
+tests/test_util/test_datetimeutil.py::test_date PASSED
+tests/test_util/test_datetimeutil.py::test_time PASSED
+tests/test_util/test_datetimeutil.py::test_timedelta PASSED
+tests/test_util/test_mimeparse.py::test_best_match PASSED
+tests/test_util/test_mimeparse.py::test_fitness_and_quality_parsed PASSED
+tests/test_util/test_mimeparse.py::test_illformed_best_match PASSED
+tests/test_util/test_mimeparse.py::test_parse_illformed_mime_type PASSED
+tests/test_util/test_mimeparse.py::test_parse_media_range PASSED
+tests/test_util/test_mimeparse.py::test_parse_mime_type PASSED
+tests/test_util/test_mimeparse.py::test_quality PASSED
+tests/test_util/test_mimeparse.py::test_quality_parsed PASSED
+tests/test_util/test_mimeparse.py::test_sorted_match PASSED
+tests/test_util/test_quoting.py::TestQuoting::test_html_quote PASSED
+tests/test_util/test_quoting.py::TestQuoting::test_html_unquote PASSED
+tests/test_wsgilib.py::test_add_close[app_iterable_func_bytes-expected0] PASSED
+tests/test_wsgilib.py::test_add_close[app_iterable_func_unicode-expected1] PASSED
+tests/test_wsgiwrappers.py::test_call_wsgiresponse PASSED
+tests/test_wsgiwrappers.py::test_wsgirequest_charset PASSED
+tests/test_wsgiwrappers.py::test_wsgirequest_charset_fileupload PASSED
+tests/test_wsgiwrappers.py::test_wsgiresponse_charset PASSED
+
+=============================== warnings summary ===============================
+tests/test_httpserver.py:7
+  $(@D)/tests/test_httpserver.py:7: DeprecationWarning: OpenSSL.tsafe is deprecated and will be removed
+    from paste.httpserver import LimitedLengthFile, WSGIHandler, serve
+
+paste/urlparser.py:10
+  $(@D)/paste/urlparser.py:10: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
+    import imp
+
+tests/test_urlparser.py: 1 warning
+tests/test_request.py: 1 warning
+tests/test_errordocument.py: 1 warning
+tests/test_grantip.py: 1 warning
+tests/test_urlmap.py: 1 warning
+tests/test_registry.py: 1 warning
+tests/test_fileapp.py: 1 warning
+tests/test_exceptions/test_error_middleware.py: 1 warning
+tests/test_recursive.py: 1 warning
+tests/test_cgitb_catcher.py: 1 warning
+  $(PYTHON_DIR)/vendor-packages/_pytest/python.py:786: DeprecationWarning: setup_module is deprecated
+    func(arg)
+
+tests/test_grantip.py::test_make_app
+  $(PYTHON_DIR)/vendor-packages/_pytest/python.py:199: PytestReturnNotNoneWarning: Expected None, but tests/test_grantip.py::test_make_app returned <paste.fixture.TestApp object at 0x7fffa76feac0>, which will be an error in a future version of pytest.  Did you mean to use `assert` instead of `return`?
+    warnings.warn(
+
+tests/test_recursive.py::test_ForwardRequestException
+  $(@D)/tests/test_recursive.py:104: DeprecationWarning: ForwardRequestException(path_info=...) has been deprecated; please use ForwardRequestException(url=...)
+    raise ForwardRequestException(path_info=self.url)
+
+-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
+======== 151 passed, 14 warnings ========
+  py$(PYV): OK
+  congratulations :)

--
Gitblit v1.9.3