git: c478823be816 - main - devel/py-orjson: add 3.8.0

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Mon, 12 Sep 2022 16:27:16 UTC
The branch main has been updated by nc:

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

commit c478823be816b3a4ca019da2abbc320b06149f57
Author:     Rozhuk Ivan <rozhuk.im@gmail.com>
AuthorDate: 2022-09-04 02:34:57 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2022-09-12 16:27:02 +0000

    devel/py-orjson: add 3.8.0
    
    PR:     266213
---
 devel/py-orjson/Makefile  | 92 +++++++++++++++++++++++++++++++++++++++++++++++
 devel/py-orjson/distinfo  | 59 ++++++++++++++++++++++++++++++
 devel/py-orjson/pkg-descr |  7 ++++
 3 files changed, 158 insertions(+)

diff --git a/devel/py-orjson/Makefile b/devel/py-orjson/Makefile
new file mode 100644
index 000000000000..00bcf0f9e74f
--- /dev/null
+++ b/devel/py-orjson/Makefile
@@ -0,0 +1,92 @@
+PORTNAME=	orjson
+PORTVERSION=	3.8.0
+CATEGORIES=	devel python
+#MASTER_SITES=	CHEESESHOP
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	rozhuk.im@gmail.com
+COMMENT=	Fast, correct JSON library for Python
+
+LICENSE=	APACHE20 MIT
+LICENSE_COMB=	dual
+LICENSE_FILE_APACHE20=	${WRKSRC}/LICENSE-APACHE
+LICENSE_FILE_MIT=	${WRKSRC}/LICENSE-MIT
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}maturin>=0.8.3:devel/py-maturin@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pip>=20.2.3:devel/py-pip@${PY_FLAVOR}
+
+USES=		cargo python:3.7+
+USE_PYTHON=	autoplist concurrent cython distutils
+USE_GITHUB=	yes
+GH_ACCOUNT=	ijl
+
+CARGO_CRATES=	ahash-0.8.0 \
+		arrayvec-0.7.2 \
+		associative-cache-1.0.1 \
+		autocfg-1.1.0 \
+		beef-0.5.2 \
+		bytecount-0.6.3 \
+		castaway-0.2.2 \
+		cc-1.0.73 \
+		cfg-if-1.0.0 \
+		chrono-0.4.19 \
+		compact_str-0.6.1 \
+		encoding_rs-0.8.31 \
+		itoa-1.0.3 \
+		libc-0.2.132 \
+		libm-0.1.4 \
+		num-integer-0.1.45 \
+		num-traits-0.2.15 \
+		once_cell-1.13.1 \
+		packed_simd_2-0.3.8 \
+		pyo3-build-config-0.17.0 \
+		pyo3-ffi-0.17.0 \
+		rustversion-1.0.9 \
+		ryu-1.0.11 \
+		serde-1.0.144 \
+		simdutf8-0.1.4 \
+		smallvec-1.9.0 \
+		target-lexicon-0.12.4 \
+		version_check-0.9.4
+
+CARGO_BUILD=	no
+CARGO_INSTALL=	no
+CARGO_TEST=	no
+CARGO_TARGET_DIR=${WRKSRC}/target
+MAKE_ENV=	${CARGO_ENV}
+BINARY_ALIAS=	python3=${PYTHON_CMD}
+
+# This is to prevent Mk/Uses/python.mk do-configure target from firing.
+do-configure:
+	@${ECHO} 'No configure'
+
+post-patch:
+	@${RM} ${WRKSRC}/pyproject.toml
+
+do-build:
+	@(cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} maturin build \
+		--release \
+		${WITH_DEBUG:D:U--strip} \
+		--interpreter ${PYTHON_CMD})
+
+# Due to upstream not supplying a setup.py file or other way to install
+# using pip command for now...
+do-install:
+	@${SETENV} ${MAKE_ENV} pip install \
+		--isolated \
+		--root=${STAGEDIR} \
+		--ignore-installed \
+		--no-deps ${INSTALL_WRKSRC}/target/wheels/*.whl
+
+post-install:
+	@${RM} -r ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/__pycache__
+	${INSTALL_LIB} ${CARGO_TARGET_DIR}/${CARGO_BUILD_TARGET}/*/liborjson.so ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}
+	${CHMOD} +x ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME}/liborjson.so
+	# Regenerate .PLIST.pymodtemp to get all installed files from
+	# ${STAGEDIR} because the file that is generated in the first place
+	# contains only the EGG files as a whole.
+	@${FIND} ${STAGEDIR} -type f -o -type l | \
+		${SORT} | ${SED} -e 's|${STAGEDIR}||' \
+		> ${WRKDIR}/.PLIST.pymodtmp
+
+.include <bsd.port.mk>
diff --git a/devel/py-orjson/distinfo b/devel/py-orjson/distinfo
new file mode 100644
index 000000000000..c3ea3e291d72
--- /dev/null
+++ b/devel/py-orjson/distinfo
@@ -0,0 +1,59 @@
+TIMESTAMP = 1662258212
+SHA256 (rust/crates/ahash-0.8.0.crate) = 57e6e951cfbb2db8de1828d49073a113a29fd7117b1596caa781a258c7e38d72
+SIZE (rust/crates/ahash-0.8.0.crate) = 39776
+SHA256 (rust/crates/arrayvec-0.7.2.crate) = 8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6
+SIZE (rust/crates/arrayvec-0.7.2.crate) = 29341
+SHA256 (rust/crates/associative-cache-1.0.1.crate) = 46016233fc1bb55c23b856fe556b7db6ccd05119a0a392e04f0b3b7c79058f16
+SIZE (rust/crates/associative-cache-1.0.1.crate) = 14048
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/beef-0.5.2.crate) = 3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1
+SIZE (rust/crates/beef-0.5.2.crate) = 15275
+SHA256 (rust/crates/bytecount-0.6.3.crate) = 2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c
+SIZE (rust/crates/bytecount-0.6.3.crate) = 12416
+SHA256 (rust/crates/castaway-0.2.2.crate) = 8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc
+SIZE (rust/crates/castaway-0.2.2.crate) = 11091
+SHA256 (rust/crates/cc-1.0.73.crate) = 2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11
+SIZE (rust/crates/cc-1.0.73.crate) = 57880
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chrono-0.4.19.crate) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73
+SIZE (rust/crates/chrono-0.4.19.crate) = 155663
+SHA256 (rust/crates/compact_str-0.6.1.crate) = 5138945395949e7dfba09646dc9e766b548ff48e23deb5246890e6b64ae9e1b9
+SIZE (rust/crates/compact_str-0.6.1.crate) = 54555
+SHA256 (rust/crates/encoding_rs-0.8.31.crate) = 9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b
+SIZE (rust/crates/encoding_rs-0.8.31.crate) = 1370113
+SHA256 (rust/crates/itoa-1.0.3.crate) = 6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754
+SIZE (rust/crates/itoa-1.0.3.crate) = 10481
+SHA256 (rust/crates/libc-0.2.132.crate) = 8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5
+SIZE (rust/crates/libc-0.2.132.crate) = 595317
+SHA256 (rust/crates/libm-0.1.4.crate) = 7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a
+SIZE (rust/crates/libm-0.1.4.crate) = 110593
+SHA256 (rust/crates/num-integer-0.1.45.crate) = 225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9
+SIZE (rust/crates/num-integer-0.1.45.crate) = 22529
+SHA256 (rust/crates/num-traits-0.2.15.crate) = 578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd
+SIZE (rust/crates/num-traits-0.2.15.crate) = 49262
+SHA256 (rust/crates/once_cell-1.13.1.crate) = 074864da206b4973b84eb91683020dbefd6a8c3f0f38e054d93954e891935e4e
+SIZE (rust/crates/once_cell-1.13.1.crate) = 31335
+SHA256 (rust/crates/packed_simd_2-0.3.8.crate) = a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282
+SIZE (rust/crates/packed_simd_2-0.3.8.crate) = 97388
+SHA256 (rust/crates/pyo3-build-config-0.17.0.crate) = 0a35ea0dde58f923bcd30f0f9a64e79033cd51e176c32bd50efccbbe7f289b25
+SIZE (rust/crates/pyo3-build-config-0.17.0.crate) = 29231
+SHA256 (rust/crates/pyo3-ffi-0.17.0.crate) = 79d0d60ae1b65b927c019352e16b94ff27cedee79916f017215dab3afe2a5cb3
+SIZE (rust/crates/pyo3-ffi-0.17.0.crate) = 62848
+SHA256 (rust/crates/rustversion-1.0.9.crate) = 97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8
+SIZE (rust/crates/rustversion-1.0.9.crate) = 17425
+SHA256 (rust/crates/ryu-1.0.11.crate) = 4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09
+SIZE (rust/crates/ryu-1.0.11.crate) = 47007
+SHA256 (rust/crates/serde-1.0.144.crate) = 0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860
+SIZE (rust/crates/serde-1.0.144.crate) = 76387
+SHA256 (rust/crates/simdutf8-0.1.4.crate) = f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a
+SIZE (rust/crates/simdutf8-0.1.4.crate) = 28621
+SHA256 (rust/crates/smallvec-1.9.0.crate) = 2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1
+SIZE (rust/crates/smallvec-1.9.0.crate) = 28396
+SHA256 (rust/crates/target-lexicon-0.12.4.crate) = c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1
+SIZE (rust/crates/target-lexicon-0.12.4.crate) = 23020
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (ijl-orjson-3.8.0_GH0.tar.gz) = 5fa7849eb8374b5c6809e3abe34c0134f37120b4598093daa49367e105a4659a
+SIZE (ijl-orjson-3.8.0_GH0.tar.gz) = 747063
diff --git a/devel/py-orjson/pkg-descr b/devel/py-orjson/pkg-descr
new file mode 100644
index 000000000000..86d250112d86
--- /dev/null
+++ b/devel/py-orjson/pkg-descr
@@ -0,0 +1,7 @@
+orjson is a fast, correct JSON library for Python.
+It benchmarks as the fastest Python library for JSON and is more correct
+than the standard json library or other third-party libraries.
+It serializes dataclass, datetime, numpy, and UUID instances natively.
+
+WWW: https://github.com/ijl/orjson
+WWW: https://pypi.org/project/orjson/