git: 83f92b48b265 - main - devel/py-jschon: New port: JSON toolkit for Python developers

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 15 Jun 2024 09:13:03 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=83f92b48b265affa4ba4563fd5842c9ef08d9554

commit 83f92b48b265affa4ba4563fd5842c9ef08d9554
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-06-15 08:40:30 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-06-15 09:12:43 +0000

    devel/py-jschon: New port: JSON toolkit for Python developers
---
 devel/Makefile            |  1 +
 devel/py-jschon/Makefile  | 34 ++++++++++++++++++++++++++++++++++
 devel/py-jschon/distinfo  | 11 +++++++++++
 devel/py-jschon/pkg-descr | 12 ++++++++++++
 4 files changed, 58 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index a3eb8e37481d..e8eb0849aedc 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4979,6 +4979,7 @@
     SUBDIR += py-johnnydep
     SUBDIR += py-jsbeautifier
     SUBDIR += py-jschema-to-python
+    SUBDIR += py-jschon
     SUBDIR += py-jsmin
     SUBDIR += py-json5
     SUBDIR += py-json_tricks
diff --git a/devel/py-jschon/Makefile b/devel/py-jschon/Makefile
new file mode 100644
index 000000000000..c21d80620911
--- /dev/null
+++ b/devel/py-jschon/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	jschon
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.11.1
+CATEGORIES=	devel textproc python
+#MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	JSON toolkit for Python developers
+WWW=		https://github.com/marksparkza/jschon
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}rfc3986>0:www/py-rfc3986@${PY_FLAVOR}
+RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}coverage>0:devel/py-coverage@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}hypothesis>0:devel/py-hypothesis@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-benchmark>=0:devel/py-pytest-benchmark@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-httpserver>=0:devel/py-pytest-httpserver@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	distutils autoplist pytest # 4 tests fail, see https://github.com/marksparkza/jschon/issues/118
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	marksparkza
+GH_TUPLE=	json-schema-org:JSON-Schema-Test-Suite:0433a2bf827d3039c272e831049a6e58deab787d:json_schema_org_JSON_Schema_Test_Suite/tests/JSON-Schema-Test-Suite \
+		json-schema-org:json-schema-spec:aaedf928fb5aba87d815d0a7a152e872b13cbb77:json_schema_org_json_schema_spec1/jschon/catalog/json-schema-2019-09 \
+		json-schema-org:json-schema-spec:6b2052df656484d01bdf1969b709dc8845884678:json_schema_org_json_schema_spec2/jschon/catalog/json-schema-2020-12 \
+		marksparkza:json-schema-spec:2cb7c7447f9b795c9940710bf0eda966a92c937f:marksparkza_json_schema_spec/jschon/catalog/json-schema-next
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/devel/py-jschon/distinfo b/devel/py-jschon/distinfo
new file mode 100644
index 000000000000..3a1e360d7de5
--- /dev/null
+++ b/devel/py-jschon/distinfo
@@ -0,0 +1,11 @@
+TIMESTAMP = 1718439259
+SHA256 (marksparkza-jschon-v0.11.1_GH0.tar.gz) = 575ad63618710a13e6eb7fa96225ebf9820845fdec1d5c75fde33f1f19294e68
+SIZE (marksparkza-jschon-v0.11.1_GH0.tar.gz) = 84003
+SHA256 (json-schema-org-JSON-Schema-Test-Suite-0433a2bf827d3039c272e831049a6e58deab787d_GH0.tar.gz) = 1a6da89452e57b94bc117ace9c760a492c27e0c59540f547577c2b95c4f672c2
+SIZE (json-schema-org-JSON-Schema-Test-Suite-0433a2bf827d3039c272e831049a6e58deab787d_GH0.tar.gz) = 221182
+SHA256 (json-schema-org-json-schema-spec-aaedf928fb5aba87d815d0a7a152e872b13cbb77_GH0.tar.gz) = 660bbbf65911e85e0e39bef01663fbe962f3b003633e2386b4e6b79ba19f4727
+SIZE (json-schema-org-json-schema-spec-aaedf928fb5aba87d815d0a7a152e872b13cbb77_GH0.tar.gz) = 98756
+SHA256 (json-schema-org-json-schema-spec-6b2052df656484d01bdf1969b709dc8845884678_GH0.tar.gz) = ecd400bd7d7921aff5e683e16d677e00913008a86f3575dc8e9e544005b0e4aa
+SIZE (json-schema-org-json-schema-spec-6b2052df656484d01bdf1969b709dc8845884678_GH0.tar.gz) = 107264
+SHA256 (marksparkza-json-schema-spec-2cb7c7447f9b795c9940710bf0eda966a92c937f_GH0.tar.gz) = bba05bc120d23848beedff55a33d479e92ce1d825806a5c400a7b08cda5676f9
+SIZE (marksparkza-json-schema-spec-2cb7c7447f9b795c9940710bf0eda966a92c937f_GH0.tar.gz) = 163737
diff --git a/devel/py-jschon/pkg-descr b/devel/py-jschon/pkg-descr
new file mode 100644
index 000000000000..f10fae187dca
--- /dev/null
+++ b/devel/py-jschon/pkg-descr
@@ -0,0 +1,12 @@
+jschon is an object-oriented JSON Schema implementation for Python.
+
+Features:
+* JSON Schema validator implementation (drafts 2019-09, 2020-12)
+  * Schema compilation and indexing
+  * $ref loading from local and remote sources
+  * Support for custom keywords, vocabularies and meta-schemas
+  * Support for format validation
+* JSON class implementing the JSON data model
+* JSON Pointer (RFC 6901)
+* JSON Patch (RFC 6902)
+* Relative JSON Pointer (draft)