From 76a1721da25c9ff6078485e917711feccfacd133 Mon Sep 17 00:00:00 2001
From: Marcel Telka <marcel@telka.sk>
Date: Sun, 07 Apr 2024 17:15:38 +0200
Subject: [PATCH] Add dirty_equals Python project

---
 components/python/dirty_equals/patches/02-no-pytest-examples.patch |    9 ++
 components/python/dirty_equals/dirty_equals-PYVER.p5m              |   48 ++++++++++++
 components/python/dirty_equals/patches/01-no-pytest-pretty.patch   |   10 ++
 components/python/dirty_equals/manifests/sample-manifest.p5m       |   48 ++++++++++++
 components/python/dirty_equals/python-integrate-project.conf       |   38 +++++++++
 components/python/dirty_equals/pkg5                                |   12 +++
 components/python/dirty_equals/Makefile                            |   63 +++++++++++++++
 7 files changed, 228 insertions(+), 0 deletions(-)

diff --git a/components/python/dirty_equals/Makefile b/components/python/dirty_equals/Makefile
new file mode 100644
index 0000000..39bab64
--- /dev/null
+++ b/components/python/dirty_equals/Makefile
@@ -0,0 +1,63 @@
+#
+# 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 dirty_equals
+#
+
+BUILD_STYLE = pyproject
+
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME =		dirty_equals
+HUMAN_VERSION =			0.7.1.post0
+COMPONENT_SUMMARY =		dirty_equals - Doing dirty (but extremely useful) things with equals.
+COMPONENT_PROJECT_URL =		https://github.com/samuelcolvin/dirty-equals
+COMPONENT_ARCHIVE_HASH =	\
+	sha256:78ff80578a46163831ecb3255cf30d03d1dc2fbca8e67f820105691a1bc556dc
+COMPONENT_LICENSE =		MIT
+COMPONENT_LICENSE_FILE =	LICENSE
+
+TEST_STYLE = pytest
+
+#
+# Following dependency loops were detected (where 'A --> B' means 'A needs B to
+# run tests', and 'A ==> B' means 'A needs B for build and/or run'):
+#
+# dirty_equals --> pydantic --> dirty_equals
+# dirty_equals --> pydantic ==> pydantic_core --> dirty_equals
+#
+# To break loops we need to allow this project to integrate without testing in
+# a case the required projects are not available yet (bootstrap).
+#
+PYTHON_TEST_BOOTSTRAP = yes
+
+include $(WS_MAKE_RULES)/common.mk
+
+# This project does not support tox so we need to provide test requirements
+# manually.
+TEST_REQUIREMENTS += requirements/tests.in
+TEST_REQUIREMENTS_EXTRAS += pydantic
+
+# We do not have pytest-examples packaged yet.
+PYTEST_ADDOPTS += --ignore tests/test_docs.py
+
+# Auto-generated dependencies
+PYTHON_REQUIRED_PACKAGES += library/python/hatchling
+PYTHON_REQUIRED_PACKAGES += library/python/pytz
+PYTHON_REQUIRED_PACKAGES += runtime/python
+TEST_REQUIRED_PACKAGES.python += library/python/coverage
+TEST_REQUIRED_PACKAGES.python += library/python/packaging
+TEST_REQUIRED_PACKAGES.python += library/python/pydantic
+TEST_REQUIRED_PACKAGES.python += library/python/pytest
+TEST_REQUIRED_PACKAGES.python += library/python/pytest-mock
+TEST_REQUIRED_PACKAGES.python += library/python/tomli
diff --git a/components/python/dirty_equals/dirty_equals-PYVER.p5m b/components/python/dirty_equals/dirty_equals-PYVER.p5m
new file mode 100644
index 0000000..f677265
--- /dev/null
+++ b/components/python/dirty_equals/dirty_equals-PYVER.p5m
@@ -0,0 +1,48 @@
+#
+# 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/dirty_equals-$(HUMAN_VERSION).dist-info/METADATA
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals-$(HUMAN_VERSION).dist-info/WHEEL
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals-$(HUMAN_VERSION).dist-info/licenses/LICENSE
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_base.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_boolean.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_datetime.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_dict.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_inspection.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_numeric.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_other.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_sequence.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_strings.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_utils.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/py.typed
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/version.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/pytz-$(PYV)
diff --git a/components/python/dirty_equals/manifests/sample-manifest.p5m b/components/python/dirty_equals/manifests/sample-manifest.p5m
new file mode 100644
index 0000000..a35461f
--- /dev/null
+++ b/components/python/dirty_equals/manifests/sample-manifest.p5m
@@ -0,0 +1,48 @@
+#
+# 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 2024 <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/dirty_equals-$(HUMAN_VERSION).dist-info/METADATA
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals-$(HUMAN_VERSION).dist-info/WHEEL
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals-$(HUMAN_VERSION).dist-info/licenses/LICENSE
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_base.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_boolean.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_datetime.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_dict.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_inspection.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_numeric.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_other.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_sequence.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_strings.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/_utils.py
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/py.typed
+file path=usr/lib/python$(PYVER)/vendor-packages/dirty_equals/version.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/pytz-$(PYV)
diff --git a/components/python/dirty_equals/patches/01-no-pytest-pretty.patch b/components/python/dirty_equals/patches/01-no-pytest-pretty.patch
new file mode 100644
index 0000000..8943c7c
--- /dev/null
+++ b/components/python/dirty_equals/patches/01-no-pytest-pretty.patch
@@ -0,0 +1,10 @@
+pytest-pretty is not needed to run tests
+
+--- dirty_equals-0.7.1.post0/requirements/tests.in.orig
++++ dirty_equals-0.7.1.post0/requirements/tests.in
+@@ -2,5 +2,4 @@
+ packaging
+ pytest
+ pytest-mock
+-pytest-pretty
+ pytest-examples
diff --git a/components/python/dirty_equals/patches/02-no-pytest-examples.patch b/components/python/dirty_equals/patches/02-no-pytest-examples.patch
new file mode 100644
index 0000000..b0a3bae
--- /dev/null
+++ b/components/python/dirty_equals/patches/02-no-pytest-examples.patch
@@ -0,0 +1,9 @@
+We do not have pytest-examples packaged yet.
+
+--- dirty_equals-0.7.1.post0/requirements/tests.in.orig
++++ dirty_equals-0.7.1.post0/requirements/tests.in
+@@ -2,4 +2,3 @@
+ packaging
+ pytest
+ pytest-mock
+-pytest-examples
diff --git a/components/python/dirty_equals/pkg5 b/components/python/dirty_equals/pkg5
new file mode 100644
index 0000000..eb066d4
--- /dev/null
+++ b/components/python/dirty_equals/pkg5
@@ -0,0 +1,12 @@
+{
+    "dependencies": [
+        "library/python/hatchling-39",
+        "library/python/pytz-39",
+        "runtime/python-39"
+    ],
+    "fmris": [
+        "library/python/dirty-equals",
+        "library/python/dirty-equals-39"
+    ],
+    "name": "dirty_equals"
+}
diff --git a/components/python/dirty_equals/python-integrate-project.conf b/components/python/dirty_equals/python-integrate-project.conf
new file mode 100644
index 0000000..5ece713
--- /dev/null
+++ b/components/python/dirty_equals/python-integrate-project.conf
@@ -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.
+#
+
+#
+# Copyright 2024 Marcel Telka
+#
+
+%patch% 01-no-pytest-pretty.patch
+%patch% 02-no-pytest-examples.patch
+
+%include-2%
+#
+# Following dependency loops were detected (where 'A --> B' means 'A needs B to
+# run tests', and 'A ==> B' means 'A needs B for build and/or run'):
+#
+# dirty_equals --> pydantic --> dirty_equals
+# dirty_equals --> pydantic ==> pydantic_core --> dirty_equals
+#
+# To break loops we need to allow this project to integrate without testing in
+# a case the required projects are not available yet (bootstrap).
+#
+PYTHON_TEST_BOOTSTRAP = yes
+%include-3%
+# This project does not support tox so we need to provide test requirements
+# manually.
+TEST_REQUIREMENTS += requirements/tests.in
+TEST_REQUIREMENTS_EXTRAS += pydantic
+
+# We do not have pytest-examples packaged yet.
+PYTEST_ADDOPTS += --ignore tests/test_docs.py

--
Gitblit v1.9.3