git: 924f4e5dfca0 - main - devel/py-jsonschema: Include schemas

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Sun, 05 Jun 2022 16:34:25 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=924f4e5dfca078753a3b12db278625b7d5377857

commit 924f4e5dfca078753a3b12db278625b7d5377857
Author:     Sascha Biberhofer <ports@skyforge.at>
AuthorDate: 2022-06-05 16:27:04 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2022-06-05 16:34:00 +0000

    devel/py-jsonschema: Include schemas
    
    After the latest upgrade to 4.6.0 the pkg was missing the schemas file
    as the new hatch build system which doesn't create the full files as our
    building procedure requires dependency on a stub setup.py file.
    
    For future reference:
    The method I used for obtaining the setup.py file is to add
    
    [tool.hatch.build.targets.sdist]
    support-legacy = true
    
    to pyproject.toml. Afterwards, building an sdist with `python3 -m build
    -s` yields a corresponding archive in dist/jsonschema-4.6.0.tar.gz, from
    which the setup.py file can be extracted. The latter build still doesn't
    contain the subdirectory in MANIFEST.in though, so it didn't fix the
    issue entirely.
    
    While there are lots of dependent ports for now I am committing this but
    will look into a better solution to adapt the situation.
    
    PR:             264452
    Reported by:    stefan.haemmerl@gmx.de
---
 devel/py-jsonschema/Makefile                |  1 +
 devel/py-jsonschema/files/patch-MANIFEST.in |  7 +++
 devel/py-jsonschema/files/patch-setup.py    | 76 +++++++++++++++++++++++++----
 3 files changed, 74 insertions(+), 10 deletions(-)

diff --git a/devel/py-jsonschema/Makefile b/devel/py-jsonschema/Makefile
index ac0adc3c5989..6640344ef811 100644
--- a/devel/py-jsonschema/Makefile
+++ b/devel/py-jsonschema/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	jsonschema
 PORTVERSION=	4.6.0
+PORTREVISION=	1
 CATEGORIES=	devel python
 MASTER_SITES=	CHEESESHOP
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
diff --git a/devel/py-jsonschema/files/patch-MANIFEST.in b/devel/py-jsonschema/files/patch-MANIFEST.in
new file mode 100644
index 000000000000..fb22f9988615
--- /dev/null
+++ b/devel/py-jsonschema/files/patch-MANIFEST.in
@@ -0,0 +1,7 @@
+--- MANIFEST.in.orig	2022-06-04 16:19:42 UTC
++++ MANIFEST.in
+@@ -3,3 +3,4 @@ include *.rst
+ include COPYING
+ include pyproject.toml
+ include tox.ini
++graft jsonschema/schemas
diff --git a/devel/py-jsonschema/files/patch-setup.py b/devel/py-jsonschema/files/patch-setup.py
index aadc6f44df9f..34e2ea541b85 100644
--- a/devel/py-jsonschema/files/patch-setup.py
+++ b/devel/py-jsonschema/files/patch-setup.py
@@ -1,12 +1,68 @@
---- setup.py.orig	2022-06-03 09:53:13 UTC
+--- setup.py.orig	2022-06-05 15:48:47 UTC
 +++ setup.py
-@@ -0,0 +1,9 @@
-+#!/usr/bin/env python
+@@ -0,0 +1,65 @@
++# -*- coding: utf-8 -*-
++from setuptools import setup
 +
-+import setuptools
-+
-+if __name__ == "__main__":
-+    setuptools.setup(
-+        packages=['jsonschema'],
-+        use_scm_version=True,
-+    )
++setup(
++    name='jsonschema',
++    version='4.6.0',
++    description='An implementation of JSON Schema validation for Python',
++    long_description='==========\njsonschema\n==========\n\n|PyPI| |Pythons| |CI| |ReadTheDocs| |Precommit| |Zenodo|\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/jsonschema.svg\n   :alt: PyPI version\n   :target: https://pypi.org/project/jsonschema/\n\n.. |Pythons| image:: https://img.shields.io/pypi/pyversions/jsonschema.svg\n   :alt: Supported Python versions\n   :target: https://pypi.org/project/jsonschema/\n\n.. |CI| image:: https://github.com/python-jsonschema/jsonschema/workflows/CI/badge.svg\n  :alt: Build status\n  :target: https://github.com/python-jsonschema/jsonschema/actions?query=workflow%3ACI\n\n.. |ReadTheDocs| image:: https://readthedocs.org/projects/python-jsonschema/badge/?version=stable&style=flat\n   :alt: ReadTheDocs status\n   :target: https://python-jsonschema.readthedocs.io/en/stable/\n\n.. |Precommit| image:: https://results.pre-commit.ci/badge/github/python-jsonschema/jsonschema/main.svg\n   :alt: pre-commit.ci status\n   :target: https://results.pre
 -commit.ci/latest/github/python-jsonschema/jsonschema/main\n\n.. |Zenodo| image:: https://zenodo.org/badge/3072629.svg\n   :target: https://zenodo.org/badge/latestdoi/3072629\n\n\n``jsonschema`` is an implementation of the `JSON Schema\n<https://json-schema.org>`_ specification for Python.\n\n.. code-block:: python\n\n    >>> from jsonschema import validate\n\n    >>> # A sample schema, like what we\'d get from json.load()\n    >>> schema = {\n    ...     "type" : "object",\n    ...     "properties" : {\n    ...         "price" : {"type" : "number"},\n    ...         "name" : {"type" : "string"},\n    ...     },\n    ... }\n\n    >>> # If no exception is raised by validate(), the instance is valid.\n    >>> validate(instance={"name" : "Eggs", "price" : 34.99}, schema=schema)\n\n    >>> validate(\n    ...     instance={"name" : "Eggs", "price" : "Invalid"}, schema=schema,\n    ... )                                   # doctest: +IGNORE_EXCEPTION_DETAIL\n    Traceback (most recent call
  last):\n        ...\n    ValidationError: \!
 'Invalid\' is not of type \'number\'\n\nIt can also be used from console:\n\n.. code-block:: bash\n\n    $ jsonschema --instance sample.json sample.schema\n\nFeatures\n--------\n\n* Partial support for\n  `Draft 2020-12 <https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft202012Validator>`_ and\n  `Draft 2019-09 <https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft201909Validator>`_,\n  except for ``dynamicRef`` / ``recursiveRef`` and ``$vocabulary`` (in-progress).\n  Full support for\n  `Draft 7 <https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft7Validator>`_,\n  `Draft 6 <https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft6Validator>`_,\n  `Draft 4 <https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft4Validator>`_\n  and\n  `Draft 3 <https://python-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.Draft3Validator>`_\n\n* `Lazy validation <https://p
 ython-jsonschema.readthedocs.io/en/latest/validate/#jsonschema.protocols.Validator.iter_errors>`_\n  that can iteratively report *all* validation errors.\n\n* `Programmatic querying <https://python-jsonschema.readthedocs.io/en/latest/errors/>`_\n  of which properties or items failed validation.\n\n\nInstallation\n------------\n\n``jsonschema`` is available on `PyPI <https://pypi.org/project/jsonschema/>`_. You can install using `pip <https://pip.pypa.io/en/stable/>`_:\n\n.. code-block:: bash\n\n    $ pip install jsonschema\n\n\nRunning the Test Suite\n----------------------\n\nIf you have ``tox`` installed (perhaps via ``pip install tox`` or your\npackage manager), running ``tox`` in the directory of your source\ncheckout will run ``jsonschema``\'s test suite on all of the versions\nof Python ``jsonschema`` supports. If you don\'t have all of the\nversions that ``jsonschema`` is tested under, you\'ll likely want to run\nusing ``tox``\'s ``--skip-missing-interpreters`` option.\n\nOf 
 course you\'re also free to just run the tes!
 ts on a s!
 ingle version with your\nfavorite test runner. The tests live in the ``jsonschema.tests`` package.\n\n\nBenchmarks\n----------\n\n``jsonschema``\'s benchmarks make use of `pyperf\n<https://pyperf.readthedocs.io>`_. Running them can be done via::\n\n      $ tox -e perf\n\n\nCommunity\n---------\n\nThe JSON Schema specification has `a Slack\n<https://json-schema.slack.com>`_, with an `invite link on its home page\n<https://json-schema.org/>`_. Many folks knowledgeable on authoring\nschemas can be found there.\n\nOtherwise, asking questions on Stack Overflow is another means of\ngetting help if you\'re stuck.\n\n\nAbout\n-----\n\nI\'m Julian Berman.\n\n``jsonschema`` is on `GitHub <https://github.com/python-jsonschema/jsonschema>`_.\n\nGet in touch, via GitHub or otherwise, if you\'ve got something to contribute,\nit\'d be most welcome!\n\nYou can also generally find me on Libera (nick: ``Julian``) in various\nchannels, including ``#python``.\n\nIf you feel overwhelmingly grateful, you
  can also `sponsor me\n<https://github.com/sponsors/Julian/>`_.\n\nAnd for companies who appreciate ``jsonschema`` and its continued support\nand growth, ``jsonschema`` is also now supportable via `TideLift\n<https://tidelift.com/subscription/pkg/pypi-jsonschema?utm_source=pypi-j\nsonschema&utm_medium=referral&utm_campaign=readme>`_.\n',
++    author='Julian Berman',
++    author_email='Julian+jsonschema@GrayVines.com',
++    classifiers=[
++        'Development Status :: 5 - Production/Stable',
++        'Intended Audience :: Developers',
++        'License :: OSI Approved :: MIT License',
++        'Operating System :: OS Independent',
++        'Programming Language :: Python',
++        'Programming Language :: Python :: 3.10',
++        'Programming Language :: Python :: 3.11',
++        'Programming Language :: Python :: 3.7',
++        'Programming Language :: Python :: 3.8',
++        'Programming Language :: Python :: 3.9',
++        'Programming Language :: Python :: Implementation :: CPython',
++        'Programming Language :: Python :: Implementation :: PyPy',
++    ],
++    install_requires=[
++        'attrs>=17.4.0',
++        'importlib-metadata; python_version < "3.8"',
++        'importlib-resources>=1.4.0; python_version < "3.9"',
++        'pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0',
++        'typing-extensions; python_version < "3.8"',
++    ],
++    extras_require={
++        'format': [
++            'fqdn',
++            'idna',
++            'isoduration',
++            'jsonpointer>1.13',
++            'rfc3339-validator',
++            'rfc3987',
++            'uri-template',
++            'webcolors>=1.11',
++        ],
++        'format-nongpl': [
++            'fqdn',
++            'idna',
++            'isoduration',
++            'jsonpointer>1.13',
++            'rfc3339-validator',
++            'rfc3986-validator>0.1.0',
++            'uri-template',
++            'webcolors>=1.11',
++        ],
++    },
++    entry_points={
++        'console_scripts': [
++            'jsonschema = jsonschema.cli:main',
++        ],
++    },
++    packages=[
++        'jsonschema',
++        'jsonschema.schemas',
++        'jsonschema.benchmarks',
++        'jsonschema.tests',
++    ],
++)