diff options
Diffstat (limited to 'dev-python/fastsimdjson')
| -rw-r--r-- | dev-python/fastsimdjson/Manifest | 2 | ||||
| -rw-r--r-- | dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild | 59 | ||||
| -rw-r--r-- | dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch | 54 | ||||
| -rw-r--r-- | dev-python/fastsimdjson/metadata.xml | 12 |
4 files changed, 127 insertions, 0 deletions
diff --git a/dev-python/fastsimdjson/Manifest b/dev-python/fastsimdjson/Manifest new file mode 100644 index 000000000000..1743c3b34bb3 --- /dev/null +++ b/dev-python/fastsimdjson/Manifest @@ -0,0 +1,2 @@ +DIST fastsimdjson-0.8.0.tar.gz 3171735 BLAKE2B 8e7ec750b854797c766c46c5c76e50f828bba31cd9eae53d6ba1e4bb82d588c46cd78b5f7aaf05a60d8e77818bef6a6eb526419df526cfa6b60ef6a2515e5cd7 SHA512 cf5a5c92cb8d1be049a261225632c4f01f9bd5198b4c1eb4faebb2dbf368100614e0348d1435cd4d51b0ab1bd2140bdf71f06bcb45068485c0f7c1fac8fef433 +DIST simdjson-data-351949906abde446f0314bf79606fb5d884f5be7.tar.gz 6635608 BLAKE2B 07f96c6b1bfea55a247eb7361bd4c068cb49e06f2cb1f3853c107173025c4cd543b20a5b7a3dcfa1e4462aaca8278a1cff9656f54319da08e221bc38f98e5a9e SHA512 7db557d374b9ce98077b7a9e1265ae66f9a607f0f283f662a9f184147f081727df68c0eb4889ebc8aca609ec62b348753445e553087e6520879a23e268caafba diff --git a/dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild b/dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild new file mode 100644 index 000000000000..fc60e3555519 --- /dev/null +++ b/dev-python/fastsimdjson/fastsimdjson-0.8.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_EXT=1 + +inherit distutils-r1 pypi + +DESCRIPTION="fast JSON in Python" +HOMEPAGE=" + https://pypi.org/project/fastsimdjson/ + https://github.com/simdjson/fastpysimdjson +" + +SIMDJSON_DATA_HASH="351949906abde446f0314bf79606fb5d884f5be7" +SRC_URI+=" + test? ( + https://github.com/simdjson/simdjson-data/archive/${SIMDJSON_DATA_HASH}.tar.gz + -> simdjson-data-${SIMDJSON_DATA_HASH}.tar.gz + ) +" + +LICENSE="Apache-2.0 MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-libs/simdjson-5.0.2:=[nan] + >=dev-cpp/simdutf-9.2:= + dev-libs/zmij:= +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-python/wheel[${PYTHON_USEDEP}] +" +# there is an optional test dep on dev-python/orjson, left that out since it's marked as deprecated + +PATCHES=( + "${FILESDIR}/fastsimdjson-0.8.0-unbundle.patch" +) + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_prepare_all() { + # remove bundled deps + rm -rf vendor || die + + distutils-r1_python_prepare_all +} + +python_test() { + ln -sfn "${WORKDIR}/simdjson-data-${SIMDJSON_DATA_HASH}" "simdjson-data" || die + + distutils-r1_python_test +} diff --git a/dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch b/dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch new file mode 100644 index 000000000000..cd1ad24cdf80 --- /dev/null +++ b/dev-python/fastsimdjson/files/fastsimdjson-0.8.0-unbundle.patch @@ -0,0 +1,54 @@ +diff --git a/setup.py b/setup.py +index 5b96127..1accfc0 100644 +--- a/setup.py ++++ b/setup.py +@@ -10,11 +10,11 @@ DEFINES = [("NDEBUG", None), ("SIMDJSON_ENABLE_NAN_INF", "1")] + ext = Extension( + "fastsimdjson", + # src/fastsimdjson.cpp includes vendor/simdjson.cpp (a unity build). +- sources=["src/fastsimdjson.cpp", "vendor/simdutf.cpp"], +- depends=["vendor/simdjson.cpp", "vendor/simdjson.h", "vendor/simdutf.h", +- "vendor/zmij.h", "vendor/zmij.cc"], +- include_dirs=["vendor"], ++ sources=["src/fastsimdjson.cpp"], ++ depends=[], ++ include_dirs=[], + language="c++", ++ libraries=["simdjson", "simdutf", "zmij"], + define_macros=DEFINES, + ) + +@@ -23,15 +23,8 @@ class BuildExt(build_ext): + def build_extensions(self): + msvc = self.compiler.compiler_type == "msvc" + args = ["/std:c++17", "/O2", "/EHsc", "/utf-8"] if msvc else ["-std=c++17", "-O3"] +- # zmij (float formatting) is compiled as C++14: some compilers reject +- # its constant tables in C++17 mode. +- zmij_args = ["/std:c++14", "/O2", "/EHsc"] if msvc else ["-std=c++14", "-O3"] +- zmij = self.compiler.compile([os.path.join("vendor", "zmij.cc")], +- output_dir=self.build_temp, include_dirs=["vendor"], +- macros=[("NDEBUG", None)], extra_postargs=zmij_args) + for e in self.extensions: + e.extra_compile_args = args +- e.extra_objects = list(zmij) + super().build_extensions() + + +diff --git a/src/fastsimdjson.cpp b/src/fastsimdjson.cpp +index f7fcf2b..c273e26 100644 +--- a/src/fastsimdjson.cpp ++++ b/src/fastsimdjson.cpp +@@ -30,10 +30,9 @@ + + // simdjson.cpp is compiled here (a unity build) so that dumps can call its + // float-to-decimal routine, dtoa_impl::dragonbox, directly. +-#include "simdjson.h" +-#include "simdjson.cpp" +-#include "simdutf.h" +-#include "zmij.h" // shortest float digits for dumps and dumpb (vendor/zmij.cc) ++#include <simdjson.h> ++#include <simdutf.h> ++#include <zmij.h> // shortest float digits for dumps and dumpb (vendor/zmij.cc) + + #ifdef _MSC_VER + #include <intrin.h> diff --git a/dev-python/fastsimdjson/metadata.xml b/dev-python/fastsimdjson/metadata.xml new file mode 100644 index 000000000000..0ba9a7d3033b --- /dev/null +++ b/dev-python/fastsimdjson/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://srcux.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + </maintainer> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <origin>srcux</origin> +</pkgmetadata> |
