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