nti.externalization 3.1.0__tar.gz → 3.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/.github/workflows/tests.yml +25 -7
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/.readthedocs.yml +2 -1
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/CHANGES.rst +22 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/PKG-INFO +27 -4
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/basics.rst +20 -3
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/conf.py +1 -1
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/externalization.rst +2 -2
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/make-manylinux +3 -3
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/setup.py +8 -4
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_base_interfaces.c +32 -42
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_datastructures.pxd +1 -1
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_interface_cache.c +11 -15
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/datastructures.c +752 -761
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/datastructures.py +9 -6
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/decorate.c +11 -15
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/dictionary.c +73 -77
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/externalizer.c +78 -82
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/fields.c +65 -69
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/standard_fields.c +71 -75
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/events.c +47 -51
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/externals.c +13 -17
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/factories.c +67 -71
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/fields.c +38 -48
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/legacy_factories.c +10 -14
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/updater.c +97 -101
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/representation.py +66 -5
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/singleton.c +10 -14
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_datastructures.py +2 -2
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_docs.py +7 -1
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_externalization.py +4 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_representation.py +9 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/zcml.py +0 -1
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/PKG-INFO +27 -4
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/requires.txt +3 -1
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/tox.ini +20 -2
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/.coveragerc +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/.github/dependabot.yml +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/.isort.cfg +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/.pylintrc +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/AUTHORS +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/COPYRIGHT.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/INSTALL +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/LICENSE +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/MANIFEST.in +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/README.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/doc-requirements.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/Makefile +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/ADVANCED.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/BASICS.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/HELPERS.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/STRINGS.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/ZODB.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/autopackage.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/datastructures.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/datetime.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/dublincore.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/extension_points.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/externalization.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/factory.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/index.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/integer_strings.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/interfaces.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/internalization.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/oids.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/persistence.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/proxy.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/representation.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/singleton.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/api/zcml.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/changelog.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/glossary.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/index.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/internalization.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/schemas.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/docs/special_attributes.rst +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/pyproject.toml +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/requirements.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/setup.cfg +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/__base_interfaces.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/__interface_cache.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_base_interfaces.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_compat.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_interface_cache.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_singleton.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_threadlocal.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/autopackage.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/configure.zcml +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/datetime_ext.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/dublincore.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/extension_points.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/_decorate.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/_dictionary.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/_externalizer.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/_fields.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/_standard_fields.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/decorate.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/dictionary.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/externalizer.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/fields.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/replacers.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/standard_fields.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/tests/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/externalization/tests/test_externalizer.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/factory.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/integer_strings.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/interfaces.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/_events.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/_externals.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/_factories.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/_fields.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/_legacy_factories.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/_updater.pxd +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/events.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/externals.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/factories.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/fields.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/legacy_factories.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/tests/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/tests/test_externals_wo_class_mimetype.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/tests/test_fields.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/tests/test_updater.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/internalization/updater.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/meta.zcml +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/numbers.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/oids.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/persistence.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/proxy.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/py.typed +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/singleton.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/testing.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/__init__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/__main__.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/bm_simple_iface.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/bm_simple_iface_list.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/bm_simple_registered_class.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/bm_singleton.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/bm_user_profile.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/bootstrapinterfaces.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/configure.zcml +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/interfaces.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/objects.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/profileconfigure.zcml +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/benchmarks/profileinterfaces.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test__compat.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_autopackage.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_benchmarks.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_datetime.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_dublincore.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_factory.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_integer_strings.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_interfaces.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_internalization.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_oids.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_persistence.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_proxy.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_singleton.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_testing.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/tests/test_zcml.py +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/SOURCES.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/dependency_links.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/entry_points.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/top_level.txt +0 -0
- {nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti.externalization.egg-info/zip-safe +0 -0
|
@@ -18,11 +18,18 @@ jobs:
|
|
|
18
18
|
- "3.12"
|
|
19
19
|
- "3.13"
|
|
20
20
|
- "3.14"
|
|
21
|
+
- "3.15-dev"
|
|
21
22
|
extras:
|
|
22
|
-
- "[test,docs,zodb]"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
- "[test,docs,zodb,orjson]"
|
|
24
|
+
include:
|
|
25
|
+
# orjson 3.11.9 doesn't currently support
|
|
26
|
+
# being built for free-threaded python, so if we wanted
|
|
27
|
+
# to test there, we'd need to substitute it, most likely by
|
|
28
|
+
# moving it to an extra.
|
|
29
|
+
- python-version: "3.14t"
|
|
30
|
+
extras: "[test,docs,zodb]"
|
|
31
|
+
- python-version: "3.15t-dev"
|
|
32
|
+
extras: "[test,docs,zodb]"
|
|
26
33
|
|
|
27
34
|
runs-on: ubuntu-latest
|
|
28
35
|
steps:
|
|
@@ -38,13 +45,20 @@ jobs:
|
|
|
38
45
|
python -m pip install -U pip setuptools wheel
|
|
39
46
|
python -m pip install -U coverage
|
|
40
47
|
python -m pip install -v -U -e ".${{ matrix.extras }}"
|
|
48
|
+
- name: Disable GIL
|
|
49
|
+
if: ${{endsWith(matrix.python-version, 't') || endsWith(matrix.python-version, 't-dev')}}
|
|
50
|
+
# zope.hookable 8.2/zope.proxy 7.2 currently enables the gil
|
|
51
|
+
run: |
|
|
52
|
+
echo PYTHON_GIL=0 >> $GITHUB_ENV
|
|
41
53
|
- name: Test
|
|
42
54
|
run: |
|
|
43
55
|
python -m coverage run -m zope.testrunner --test-path=src --auto-color --auto-progress
|
|
44
56
|
PURE_PYTHON=1 coverage run -a -m zope.testrunner --test-path=src --auto-color --auto-progress
|
|
57
|
+
- name: Docs
|
|
58
|
+
if: matrix.python-version == '3.14'
|
|
59
|
+
# Requires orjson
|
|
60
|
+
run: |
|
|
45
61
|
coverage run -a -m sphinx -b doctest -d docs/_build/doctrees docs docs/_build/doctests
|
|
46
|
-
coverage combine || true
|
|
47
|
-
coverage report -i || true
|
|
48
62
|
- name: Lint
|
|
49
63
|
if: matrix.python-version == '3.14'
|
|
50
64
|
run: |
|
|
@@ -54,6 +68,10 @@ jobs:
|
|
|
54
68
|
run: |
|
|
55
69
|
python -m pip uninstall -y ZODB zope.dublincore persistent zope.container BTrees
|
|
56
70
|
PURE_PYTHON=1 coverage run -a -m zope.testrunner --test-path=src --auto-color --auto-progress
|
|
71
|
+
- name: Combine Coverage
|
|
72
|
+
run: |
|
|
73
|
+
coverage combine || true
|
|
74
|
+
coverage report -i || true
|
|
57
75
|
- name: Submit to Coveralls
|
|
58
76
|
uses: coverallsapp/github-action@v2
|
|
59
77
|
with:
|
|
@@ -75,7 +93,7 @@ jobs:
|
|
|
75
93
|
# We use a regular Python matrix entry to share as much code as possible.
|
|
76
94
|
strategy:
|
|
77
95
|
matrix:
|
|
78
|
-
python-version: [3.
|
|
96
|
+
python-version: [3.14]
|
|
79
97
|
image:
|
|
80
98
|
- manylinux_2_28_x86_64
|
|
81
99
|
- manylinux_2_28_aarch64
|
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
=========
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
3.2.1 (2026-06-02)
|
|
7
|
+
==================
|
|
8
|
+
|
|
9
|
+
- Make internalizing anonymous dictionary objects
|
|
10
|
+
support ``IMapping`` fields, rather than only its subclass
|
|
11
|
+
``IDict``.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
3.2.0 (2026-05-19)
|
|
15
|
+
==================
|
|
16
|
+
|
|
17
|
+
- Drop support for Python 3.10.
|
|
18
|
+
- Add support for Python 3.15.
|
|
19
|
+
- Move the ``orjson`` dependency to the ``orjson`` extra
|
|
20
|
+
for compatibility with free-threaded Python. If you're using regular
|
|
21
|
+
Python, it is highly recommended to install this extra.
|
|
22
|
+
- Add support for free-threaded CPython. However, note that some
|
|
23
|
+
dependencies, most notably orjson, cannot
|
|
24
|
+
currently be installed on free-threaded CPython, and other
|
|
25
|
+
dependencies may currently require enabling the GIL.
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
3.1.0 (2026-05-08)
|
|
7
29
|
==================
|
|
8
30
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nti.externalization
|
|
3
|
-
Version: 3.1
|
|
3
|
+
Version: 3.2.1
|
|
4
4
|
Summary: NTI Externalization
|
|
5
5
|
Home-page: https://github.com/OpenNTI/nti.externalization
|
|
6
6
|
Author: Jason Madden
|
|
@@ -12,20 +12,19 @@ Classifier: Natural Language :: English
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
20
20
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
21
|
-
Requires-Python: >=3.
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
License-File: AUTHORS
|
|
24
24
|
Requires-Dist: nti.schema>=1.17.0
|
|
25
25
|
Requires-Dist: PyYAML>=5.1
|
|
26
26
|
Requires-Dist: isodate
|
|
27
27
|
Requires-Dist: pytz
|
|
28
|
-
Requires-Dist: orjson>=3.11.9
|
|
29
28
|
Requires-Dist: transaction
|
|
30
29
|
Requires-Dist: zope.component>=4.6.1
|
|
31
30
|
Requires-Dist: zope.configuration>=4.4.0
|
|
@@ -58,6 +57,8 @@ Requires-Dist: repoze.sphinx.autointerface; extra == "docs"
|
|
|
58
57
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
59
58
|
Provides-Extra: benchmarks
|
|
60
59
|
Requires-Dist: pyperf; extra == "benchmarks"
|
|
60
|
+
Provides-Extra: orjson
|
|
61
|
+
Requires-Dist: orjson>=3.11.9; extra == "orjson"
|
|
61
62
|
Dynamic: author
|
|
62
63
|
Dynamic: author-email
|
|
63
64
|
Dynamic: classifier
|
|
@@ -105,6 +106,28 @@ Documentation is hosted at https://ntiexternalization.readthedocs.io/
|
|
|
105
106
|
=========
|
|
106
107
|
|
|
107
108
|
|
|
109
|
+
3.2.1 (2026-06-02)
|
|
110
|
+
==================
|
|
111
|
+
|
|
112
|
+
- Make internalizing anonymous dictionary objects
|
|
113
|
+
support ``IMapping`` fields, rather than only its subclass
|
|
114
|
+
``IDict``.
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
3.2.0 (2026-05-19)
|
|
118
|
+
==================
|
|
119
|
+
|
|
120
|
+
- Drop support for Python 3.10.
|
|
121
|
+
- Add support for Python 3.15.
|
|
122
|
+
- Move the ``orjson`` dependency to the ``orjson`` extra
|
|
123
|
+
for compatibility with free-threaded Python. If you're using regular
|
|
124
|
+
Python, it is highly recommended to install this extra.
|
|
125
|
+
- Add support for free-threaded CPython. However, note that some
|
|
126
|
+
dependencies, most notably orjson, cannot
|
|
127
|
+
currently be installed on free-threaded CPython, and other
|
|
128
|
+
dependencies may currently require enabling the GIL.
|
|
129
|
+
|
|
130
|
+
|
|
108
131
|
3.1.0 (2026-05-08)
|
|
109
132
|
==================
|
|
110
133
|
|
|
@@ -60,6 +60,23 @@ concerns should be kept as separated as possible from our model
|
|
|
60
60
|
objects. Ideally, we should be able to use third-party objects that we
|
|
61
61
|
have no control over seamlessly in external and internal data.
|
|
62
62
|
|
|
63
|
+
Installation
|
|
64
|
+
============
|
|
65
|
+
|
|
66
|
+
This package is installed from PyPI::
|
|
67
|
+
|
|
68
|
+
pip install nti.externalization[orjson,zodb]
|
|
69
|
+
|
|
70
|
+
It has some extras:
|
|
71
|
+
|
|
72
|
+
orjson
|
|
73
|
+
Highly recommended for a faster dumping and loading experience. As
|
|
74
|
+
of at least orjson 3.11.9, however, this is incompatible with
|
|
75
|
+
free-threaded Python.
|
|
76
|
+
zodb
|
|
77
|
+
Optional; provides support for BTrees, persistent objects, intids, and
|
|
78
|
+
container proxies.
|
|
79
|
+
|
|
63
80
|
Getting Started
|
|
64
81
|
===============
|
|
65
82
|
|
|
@@ -248,7 +265,7 @@ others:
|
|
|
248
265
|
|
|
249
266
|
>>> internal.creator = u'sjohnson'
|
|
250
267
|
>>> internal.createdTime = 123456
|
|
251
|
-
>>> pprint(to_external_object(internal))
|
|
268
|
+
>>> pprint(to_external_object(internal), compact=True, indent=1)
|
|
252
269
|
{'Class': 'ExternalObject',
|
|
253
270
|
'CreatedTime': 123456,
|
|
254
271
|
'Creator': 'sjohnson',
|
|
@@ -337,7 +354,7 @@ Now we can register and use it as before:
|
|
|
337
354
|
... postal_code=u'95014',
|
|
338
355
|
... country=u'USA')
|
|
339
356
|
>>> external = to_external_object(address)
|
|
340
|
-
>>> pprint(external)
|
|
357
|
+
>>> pprint(external, compact=True, indent=1)
|
|
341
358
|
{'Class': 'Address',
|
|
342
359
|
'city': 'Cupertino',
|
|
343
360
|
'country': 'USA',
|
|
@@ -473,7 +490,7 @@ demonstrating that nested schemas and objects are possible.
|
|
|
473
490
|
... realname=u'Steve Jobs',
|
|
474
491
|
... )
|
|
475
492
|
>>> external = to_external_object(user_profile)
|
|
476
|
-
>>> pprint(external)
|
|
493
|
+
>>> pprint(external, compact=True, indent=1)
|
|
477
494
|
{'Class': 'UserProfile',
|
|
478
495
|
'MimeType': 'application/vnd.nextthought.benchmarks.userprofile',
|
|
479
496
|
'addresses': {'home': {'Class': 'Address',
|
|
@@ -78,7 +78,7 @@ release = rqmt
|
|
|
78
78
|
#
|
|
79
79
|
# This is also used if you do content translation via gettext catalogs.
|
|
80
80
|
# Usually you set "language" from the command line for these cases.
|
|
81
|
-
language =
|
|
81
|
+
language = 'en'
|
|
82
82
|
|
|
83
83
|
# List of patterns, relative to source directory, that match files and
|
|
84
84
|
# directories to ignore when looking for source files.
|
|
@@ -85,7 +85,7 @@ We'll register our adapter and externalize:
|
|
|
85
85
|
>>> from zope import component
|
|
86
86
|
>>> component.provideSubscriptionAdapter(PrivateAddressDecorator)
|
|
87
87
|
>>> from pprint import pprint
|
|
88
|
-
>>> pprint(to_external_object(home_address))
|
|
88
|
+
>>> pprint(to_external_object(home_address), compact=True, indent=1)
|
|
89
89
|
{'Class': 'Address',
|
|
90
90
|
'MimeType': 'application/vnd.nextthought.benchmarks.address',
|
|
91
91
|
'country': 'USA',
|
|
@@ -118,7 +118,7 @@ look for a request):
|
|
|
118
118
|
:pyversion: > 3.3
|
|
119
119
|
|
|
120
120
|
>>> component.provideSubscriptionAdapter(LinkAddressDecorator)
|
|
121
|
-
>>> pprint(to_external_object(home_address, request=Request()))
|
|
121
|
+
>>> pprint(to_external_object(home_address, request=Request()), compact=True, indent=1)
|
|
122
122
|
{'Class': 'Address',
|
|
123
123
|
'MimeType': 'application/vnd.nextthought.benchmarks.address',
|
|
124
124
|
'country': 'USA',
|
|
@@ -13,7 +13,7 @@ export TRAVIS=true
|
|
|
13
13
|
# know. The env var works for pip 20.
|
|
14
14
|
export PIP_NO_PYTHON_VERSION_WARNING=1
|
|
15
15
|
export PIP_NO_WARN_SCRIPT_LOCATION=1
|
|
16
|
-
|
|
16
|
+
export PIP_ROOT_USER_ACTION=ignore
|
|
17
17
|
|
|
18
18
|
if [ -d /project ] && [ -d /opt/python ]; then
|
|
19
19
|
# Running inside docker
|
|
@@ -44,9 +44,9 @@ if [ -d /project ] && [ -d /opt/python ]; then
|
|
|
44
44
|
OPATH="$PATH"
|
|
45
45
|
which auditwheel
|
|
46
46
|
echo @@@@@@@@@@@@@@@@@@@@@@
|
|
47
|
-
echo Will build /opt/python/cp{
|
|
47
|
+
echo Will build /opt/python/cp{311,312,313,314,315}*
|
|
48
48
|
|
|
49
|
-
for variant in `ls -d /opt/python/cp{314,313,
|
|
49
|
+
for variant in `ls -d /opt/python/cp{315,314,313,311,312}*`; do
|
|
50
50
|
|
|
51
51
|
export PATH="$variant/bin:$OPATH"
|
|
52
52
|
echo "Building $variant $(python --version)"
|
|
@@ -133,6 +133,7 @@ if not PYPY:
|
|
|
133
133
|
'language_level': '3',
|
|
134
134
|
'always_allow_keywords': False,
|
|
135
135
|
'nonecheck': False,
|
|
136
|
+
'freethreading_compatible': True,
|
|
136
137
|
},
|
|
137
138
|
)
|
|
138
139
|
except ValueError:
|
|
@@ -147,7 +148,7 @@ if not PYPY:
|
|
|
147
148
|
|
|
148
149
|
setup(
|
|
149
150
|
name='nti.externalization',
|
|
150
|
-
version='3.1
|
|
151
|
+
version='3.2.1',
|
|
151
152
|
author='Jason Madden',
|
|
152
153
|
author_email='jason@seecoresoftware.com',
|
|
153
154
|
description="NTI Externalization",
|
|
@@ -160,11 +161,11 @@ setup(
|
|
|
160
161
|
'Operating System :: OS Independent',
|
|
161
162
|
'Programming Language :: Python :: 3',
|
|
162
163
|
'Programming Language :: Python :: 3 :: Only',
|
|
163
|
-
'Programming Language :: Python :: 3.10',
|
|
164
164
|
'Programming Language :: Python :: 3.11',
|
|
165
165
|
'Programming Language :: Python :: 3.12',
|
|
166
166
|
'Programming Language :: Python :: 3.13',
|
|
167
167
|
'Programming Language :: Python :: 3.14',
|
|
168
|
+
'Programming Language :: Python :: 3.15',
|
|
168
169
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
169
170
|
],
|
|
170
171
|
url="https://github.com/OpenNTI/nti.externalization",
|
|
@@ -179,7 +180,7 @@ setup(
|
|
|
179
180
|
'PyYAML >= 5.1',
|
|
180
181
|
'isodate',
|
|
181
182
|
'pytz',
|
|
182
|
-
|
|
183
|
+
|
|
183
184
|
'transaction',
|
|
184
185
|
'zope.component >= 4.6.1',
|
|
185
186
|
'zope.configuration >= 4.4.0',
|
|
@@ -212,7 +213,10 @@ setup(
|
|
|
212
213
|
'benchmarks': [
|
|
213
214
|
'pyperf',
|
|
214
215
|
],
|
|
216
|
+
'orjson': [
|
|
217
|
+
'orjson >= 3.11.9',
|
|
218
|
+
]
|
|
215
219
|
},
|
|
216
220
|
entry_points=entry_points,
|
|
217
|
-
python_requires=">=3.
|
|
221
|
+
python_requires=">=3.11",
|
|
218
222
|
)
|
{nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_base_interfaces.c
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Generated by Cython 3.2.
|
|
1
|
+
/* Generated by Cython 3.2.5 */
|
|
2
2
|
|
|
3
3
|
/* BEGIN: Cython Metadata
|
|
4
4
|
{
|
|
@@ -34,8 +34,8 @@ END: Cython Metadata */
|
|
|
34
34
|
#elif PY_VERSION_HEX < 0x03080000
|
|
35
35
|
#error Cython requires Python 3.8+.
|
|
36
36
|
#else
|
|
37
|
-
#define __PYX_ABI_VERSION "
|
|
38
|
-
#define CYTHON_HEX_VERSION
|
|
37
|
+
#define __PYX_ABI_VERSION "3_2_5"
|
|
38
|
+
#define CYTHON_HEX_VERSION 0x030205F0
|
|
39
39
|
#define CYTHON_FUTURE_DIVISION 1
|
|
40
40
|
/* CModulePreamble */
|
|
41
41
|
#include <stddef.h>
|
|
@@ -1144,7 +1144,7 @@ static int __Pyx_init_co_variables(void) {
|
|
|
1144
1144
|
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
|
|
1145
1145
|
#endif
|
|
1146
1146
|
#else
|
|
1147
|
-
#define __Pyx_FREETHREADING_COMPATIBLE
|
|
1147
|
+
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
|
|
1148
1148
|
#endif
|
|
1149
1149
|
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
|
|
1150
1150
|
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
|
|
@@ -6019,7 +6019,7 @@ static int __pyx_pw_3nti_15externalization_17__base_interfaces_21Externalization
|
|
|
6019
6019
|
{
|
|
6020
6020
|
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_use_iso8601_for_unix_timestamp,0};
|
|
6021
6021
|
const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_VARARGS(__pyx_kwds) : 0;
|
|
6022
|
-
if (unlikely(__pyx_kwds_len
|
|
6022
|
+
if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 292, __pyx_L3_error)
|
|
6023
6023
|
if (__pyx_kwds_len > 0) {
|
|
6024
6024
|
switch (__pyx_nargs) {
|
|
6025
6025
|
case 1:
|
|
@@ -8346,7 +8346,7 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec___base_interfaces(PyObject *__pyx_
|
|
|
8346
8346
|
__pyx_m = __pyx_t_1;
|
|
8347
8347
|
#endif
|
|
8348
8348
|
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
|
|
8349
|
-
PyUnstable_Module_SetGIL(__pyx_m,
|
|
8349
|
+
PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_NOT_USED);
|
|
8350
8350
|
#endif
|
|
8351
8351
|
__pyx_mstate = __pyx_mstate_global;
|
|
8352
8352
|
CYTHON_UNUSED_VAR(__pyx_t_1);
|
|
@@ -9129,11 +9129,11 @@ __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
|
|
|
9129
9129
|
res = PyTuple_New(n);
|
|
9130
9130
|
if (unlikely(res == NULL)) return NULL;
|
|
9131
9131
|
for (i = 0; i < n; i++) {
|
|
9132
|
+
Py_INCREF(src[i]);
|
|
9132
9133
|
if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
|
|
9133
9134
|
Py_DECREF(res);
|
|
9134
9135
|
return NULL;
|
|
9135
9136
|
}
|
|
9136
|
-
Py_INCREF(src[i]);
|
|
9137
9137
|
}
|
|
9138
9138
|
return res;
|
|
9139
9139
|
}
|
|
@@ -9924,6 +9924,7 @@ static void __Pyx_Generator_Replace_StopIteration(int in_async_gen) {
|
|
|
9924
9924
|
}
|
|
9925
9925
|
PyException_SetCause(new_exc, val); // steals ref to val
|
|
9926
9926
|
PyErr_SetObject(PyExc_RuntimeError, new_exc);
|
|
9927
|
+
Py_DECREF(new_exc);
|
|
9927
9928
|
}
|
|
9928
9929
|
|
|
9929
9930
|
/* PyErrFetchRestore (used by IterFinish) */
|
|
@@ -12256,7 +12257,6 @@ __Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
|
|
|
12256
12257
|
PyList_SET_ITEM(fromlist, 0, marker);
|
|
12257
12258
|
#else
|
|
12258
12259
|
if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
|
|
12259
|
-
Py_DECREF(marker);
|
|
12260
12260
|
Py_DECREF(fromlist);
|
|
12261
12261
|
return NULL;
|
|
12262
12262
|
}
|
|
@@ -12497,8 +12497,7 @@ __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
|
|
|
12497
12497
|
Py_CLEAR(m->func_doc);
|
|
12498
12498
|
Py_CLEAR(m->func_globals);
|
|
12499
12499
|
Py_CLEAR(m->func_code);
|
|
12500
|
-
#if
|
|
12501
|
-
#if PY_VERSION_HEX < 0x030900B1
|
|
12500
|
+
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
|
12502
12501
|
Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
|
|
12503
12502
|
#else
|
|
12504
12503
|
{
|
|
@@ -12506,7 +12505,6 @@ __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
|
|
|
12506
12505
|
((PyCMethodObject *) (m))->mm_class = NULL;
|
|
12507
12506
|
Py_XDECREF(cls);
|
|
12508
12507
|
}
|
|
12509
|
-
#endif
|
|
12510
12508
|
#endif
|
|
12511
12509
|
Py_CLEAR(m->defaults_tuple);
|
|
12512
12510
|
Py_CLEAR(m->defaults_kwdict);
|
|
@@ -12558,11 +12556,10 @@ static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit,
|
|
|
12558
12556
|
Py_VISIT(m->func_doc);
|
|
12559
12557
|
Py_VISIT(m->func_globals);
|
|
12560
12558
|
__Pyx_VISIT_CONST(m->func_code);
|
|
12561
|
-
#if !CYTHON_COMPILING_IN_LIMITED_API
|
|
12562
12559
|
Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
|
|
12563
|
-
#endif
|
|
12564
12560
|
Py_VISIT(m->defaults_tuple);
|
|
12565
12561
|
Py_VISIT(m->defaults_kwdict);
|
|
12562
|
+
Py_VISIT(m->func_annotations);
|
|
12566
12563
|
Py_VISIT(m->func_is_coroutine);
|
|
12567
12564
|
Py_VISIT(m->defaults);
|
|
12568
12565
|
return 0;
|
|
@@ -13351,8 +13348,8 @@ bad:
|
|
|
13351
13348
|
#if CYTHON_VECTORCALL
|
|
13352
13349
|
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
|
|
13353
13350
|
(void)__Pyx_PyObject_FastCallDict;
|
|
13354
|
-
if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
|
|
13355
13351
|
Py_INCREF(key);
|
|
13352
|
+
if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
|
|
13356
13353
|
args[n] = value;
|
|
13357
13354
|
return 0;
|
|
13358
13355
|
}
|
|
@@ -15055,7 +15052,8 @@ static PyObject *__Pyx__Coroutine_Throw(PyObject *self, PyObject *typ, PyObject
|
|
|
15055
15052
|
ret = __Pyx_PyObject_Call(meth, args, NULL);
|
|
15056
15053
|
} else {
|
|
15057
15054
|
PyObject *cargs[4] = {NULL, typ, val, tb};
|
|
15058
|
-
|
|
15055
|
+
size_t nargs = 1U + (val != NULL) + (tb != NULL);
|
|
15056
|
+
ret = __Pyx_PyObject_FastCall(meth, cargs+1, nargs | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
|
|
15059
15057
|
}
|
|
15060
15058
|
Py_DECREF(meth);
|
|
15061
15059
|
}
|
|
@@ -15252,14 +15250,10 @@ __Pyx_Coroutine_set_qualname(__pyx_CoroutineObject *self, PyObject *value, void
|
|
|
15252
15250
|
__Pyx_Py_XDECREF_SET(self->gi_qualname, value);
|
|
15253
15251
|
return 0;
|
|
15254
15252
|
}
|
|
15255
|
-
static PyObject *
|
|
15256
|
-
__Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self)
|
|
15257
|
-
{
|
|
15258
15253
|
#if !CYTHON_COMPILING_IN_LIMITED_API
|
|
15254
|
+
static PyObject *
|
|
15255
|
+
__Pyx__Coroutine_get_frame_locked(__pyx_CoroutineObject *self) {
|
|
15259
15256
|
PyObject *frame;
|
|
15260
|
-
#if PY_VERSION_HEX >= 0x030d0000
|
|
15261
|
-
Py_BEGIN_CRITICAL_SECTION(self);
|
|
15262
|
-
#endif
|
|
15263
15257
|
frame = self->gi_frame;
|
|
15264
15258
|
if (!frame) {
|
|
15265
15259
|
if (unlikely(!self->gi_code)) {
|
|
@@ -15284,9 +15278,17 @@ __Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self)
|
|
|
15284
15278
|
}
|
|
15285
15279
|
}
|
|
15286
15280
|
Py_INCREF(frame);
|
|
15287
|
-
|
|
15288
|
-
|
|
15289
|
-
|
|
15281
|
+
return frame;
|
|
15282
|
+
}
|
|
15283
|
+
#endif
|
|
15284
|
+
static PyObject *
|
|
15285
|
+
__Pyx__Coroutine_get_frame(__pyx_CoroutineObject *self)
|
|
15286
|
+
{
|
|
15287
|
+
#if !CYTHON_COMPILING_IN_LIMITED_API
|
|
15288
|
+
PyObject *frame;
|
|
15289
|
+
__Pyx_BEGIN_CRITICAL_SECTION((PyObject*)self);
|
|
15290
|
+
frame = __Pyx__Coroutine_get_frame_locked(self);
|
|
15291
|
+
__Pyx_END_CRITICAL_SECTION();
|
|
15290
15292
|
return frame;
|
|
15291
15293
|
#else
|
|
15292
15294
|
CYTHON_UNUSED_VAR(self);
|
|
@@ -15347,35 +15349,23 @@ static __pyx_CoroutineObject *__Pyx__Coroutine_NewInit(
|
|
|
15347
15349
|
}
|
|
15348
15350
|
static char __Pyx_Coroutine_test_and_set_is_running(__pyx_CoroutineObject *gen) {
|
|
15349
15351
|
char result;
|
|
15350
|
-
|
|
15351
|
-
Py_BEGIN_CRITICAL_SECTION(gen);
|
|
15352
|
-
#endif
|
|
15352
|
+
__Pyx_BEGIN_CRITICAL_SECTION((PyObject*)gen);
|
|
15353
15353
|
result = gen->is_running;
|
|
15354
15354
|
gen->is_running = 1;
|
|
15355
|
-
|
|
15356
|
-
Py_END_CRITICAL_SECTION();
|
|
15357
|
-
#endif
|
|
15355
|
+
__Pyx_END_CRITICAL_SECTION();
|
|
15358
15356
|
return result;
|
|
15359
15357
|
}
|
|
15360
15358
|
static void __Pyx_Coroutine_unset_is_running(__pyx_CoroutineObject *gen) {
|
|
15361
|
-
|
|
15362
|
-
Py_BEGIN_CRITICAL_SECTION(gen);
|
|
15363
|
-
#endif
|
|
15359
|
+
__Pyx_BEGIN_CRITICAL_SECTION((PyObject*)gen);
|
|
15364
15360
|
assert(gen->is_running);
|
|
15365
15361
|
gen->is_running = 0;
|
|
15366
|
-
|
|
15367
|
-
Py_END_CRITICAL_SECTION();
|
|
15368
|
-
#endif
|
|
15362
|
+
__Pyx_END_CRITICAL_SECTION();
|
|
15369
15363
|
}
|
|
15370
15364
|
static char __Pyx_Coroutine_get_is_running(__pyx_CoroutineObject *gen) {
|
|
15371
15365
|
char result;
|
|
15372
|
-
|
|
15373
|
-
Py_BEGIN_CRITICAL_SECTION(gen);
|
|
15374
|
-
#endif
|
|
15366
|
+
__Pyx_BEGIN_CRITICAL_SECTION((PyObject*)gen);
|
|
15375
15367
|
result = gen->is_running;
|
|
15376
|
-
|
|
15377
|
-
Py_END_CRITICAL_SECTION();
|
|
15378
|
-
#endif
|
|
15368
|
+
__Pyx_END_CRITICAL_SECTION();
|
|
15379
15369
|
return result;
|
|
15380
15370
|
}
|
|
15381
15371
|
static PyObject *__Pyx_Coroutine_get_is_running_getter(PyObject *gen, void *closure) {
|
{nti_externalization-3.1.0 → nti_externalization-3.2.1}/src/nti/externalization/_interface_cache.c
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Generated by Cython 3.2.
|
|
1
|
+
/* Generated by Cython 3.2.5 */
|
|
2
2
|
|
|
3
3
|
/* BEGIN: Cython Metadata
|
|
4
4
|
{
|
|
@@ -34,8 +34,8 @@ END: Cython Metadata */
|
|
|
34
34
|
#elif PY_VERSION_HEX < 0x03080000
|
|
35
35
|
#error Cython requires Python 3.8+.
|
|
36
36
|
#else
|
|
37
|
-
#define __PYX_ABI_VERSION "
|
|
38
|
-
#define CYTHON_HEX_VERSION
|
|
37
|
+
#define __PYX_ABI_VERSION "3_2_5"
|
|
38
|
+
#define CYTHON_HEX_VERSION 0x030205F0
|
|
39
39
|
#define CYTHON_FUTURE_DIVISION 1
|
|
40
40
|
/* CModulePreamble */
|
|
41
41
|
#include <stddef.h>
|
|
@@ -1144,7 +1144,7 @@ static int __Pyx_init_co_variables(void) {
|
|
|
1144
1144
|
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USED
|
|
1145
1145
|
#endif
|
|
1146
1146
|
#else
|
|
1147
|
-
#define __Pyx_FREETHREADING_COMPATIBLE
|
|
1147
|
+
#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USED
|
|
1148
1148
|
#endif
|
|
1149
1149
|
#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
|
|
1150
1150
|
#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
|
|
@@ -3195,7 +3195,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
|
3195
3195
|
{
|
|
3196
3196
|
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_key,&__pyx_mstate_global->__pyx_n_u_provided_by,0};
|
|
3197
3197
|
const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
|
|
3198
|
-
if (unlikely(__pyx_kwds_len
|
|
3198
|
+
if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 39, __pyx_L3_error)
|
|
3199
3199
|
if (__pyx_kwds_len > 0) {
|
|
3200
3200
|
switch (__pyx_nargs) {
|
|
3201
3201
|
case 2:
|
|
@@ -3401,7 +3401,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds
|
|
|
3401
3401
|
{
|
|
3402
3402
|
PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_externalizer,&__pyx_mstate_global->__pyx_n_u_ext_self,0};
|
|
3403
3403
|
const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0;
|
|
3404
|
-
if (unlikely(__pyx_kwds_len
|
|
3404
|
+
if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(0, 58, __pyx_L3_error)
|
|
3405
3405
|
if (__pyx_kwds_len > 0) {
|
|
3406
3406
|
switch (__pyx_nargs) {
|
|
3407
3407
|
case 2:
|
|
@@ -4326,7 +4326,7 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec___interface_cache(PyObject *__pyx_
|
|
|
4326
4326
|
__pyx_m = __pyx_t_1;
|
|
4327
4327
|
#endif
|
|
4328
4328
|
#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADING
|
|
4329
|
-
PyUnstable_Module_SetGIL(__pyx_m,
|
|
4329
|
+
PyUnstable_Module_SetGIL(__pyx_m, Py_MOD_GIL_NOT_USED);
|
|
4330
4330
|
#endif
|
|
4331
4331
|
__pyx_mstate = __pyx_mstate_global;
|
|
4332
4332
|
CYTHON_UNUSED_VAR(__pyx_t_1);
|
|
@@ -4977,11 +4977,11 @@ __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
|
|
|
4977
4977
|
res = PyTuple_New(n);
|
|
4978
4978
|
if (unlikely(res == NULL)) return NULL;
|
|
4979
4979
|
for (i = 0; i < n; i++) {
|
|
4980
|
+
Py_INCREF(src[i]);
|
|
4980
4981
|
if (unlikely(__Pyx_PyTuple_SET_ITEM(res, i, src[i]) < (0))) {
|
|
4981
4982
|
Py_DECREF(res);
|
|
4982
4983
|
return NULL;
|
|
4983
4984
|
}
|
|
4984
|
-
Py_INCREF(src[i]);
|
|
4985
4985
|
}
|
|
4986
4986
|
return res;
|
|
4987
4987
|
}
|
|
@@ -6385,7 +6385,6 @@ __Pyx_CyFunction_get_is_coroutine_value(__pyx_CyFunctionObject *op) {
|
|
|
6385
6385
|
PyList_SET_ITEM(fromlist, 0, marker);
|
|
6386
6386
|
#else
|
|
6387
6387
|
if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
|
|
6388
|
-
Py_DECREF(marker);
|
|
6389
6388
|
Py_DECREF(fromlist);
|
|
6390
6389
|
return NULL;
|
|
6391
6390
|
}
|
|
@@ -6626,8 +6625,7 @@ __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
|
|
|
6626
6625
|
Py_CLEAR(m->func_doc);
|
|
6627
6626
|
Py_CLEAR(m->func_globals);
|
|
6628
6627
|
Py_CLEAR(m->func_code);
|
|
6629
|
-
#if
|
|
6630
|
-
#if PY_VERSION_HEX < 0x030900B1
|
|
6628
|
+
#if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
|
|
6631
6629
|
Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
|
|
6632
6630
|
#else
|
|
6633
6631
|
{
|
|
@@ -6635,7 +6633,6 @@ __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
|
|
|
6635
6633
|
((PyCMethodObject *) (m))->mm_class = NULL;
|
|
6636
6634
|
Py_XDECREF(cls);
|
|
6637
6635
|
}
|
|
6638
|
-
#endif
|
|
6639
6636
|
#endif
|
|
6640
6637
|
Py_CLEAR(m->defaults_tuple);
|
|
6641
6638
|
Py_CLEAR(m->defaults_kwdict);
|
|
@@ -6687,11 +6684,10 @@ static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit,
|
|
|
6687
6684
|
Py_VISIT(m->func_doc);
|
|
6688
6685
|
Py_VISIT(m->func_globals);
|
|
6689
6686
|
__Pyx_VISIT_CONST(m->func_code);
|
|
6690
|
-
#if !CYTHON_COMPILING_IN_LIMITED_API
|
|
6691
6687
|
Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
|
|
6692
|
-
#endif
|
|
6693
6688
|
Py_VISIT(m->defaults_tuple);
|
|
6694
6689
|
Py_VISIT(m->defaults_kwdict);
|
|
6690
|
+
Py_VISIT(m->func_annotations);
|
|
6695
6691
|
Py_VISIT(m->func_is_coroutine);
|
|
6696
6692
|
Py_VISIT(m->defaults);
|
|
6697
6693
|
return 0;
|
|
@@ -8698,8 +8694,8 @@ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
|
|
|
8698
8694
|
#if CYTHON_VECTORCALL
|
|
8699
8695
|
static int __Pyx_VectorcallBuilder_AddArg(PyObject *key, PyObject *value, PyObject *builder, PyObject **args, int n) {
|
|
8700
8696
|
(void)__Pyx_PyObject_FastCallDict;
|
|
8701
|
-
if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
|
|
8702
8697
|
Py_INCREF(key);
|
|
8698
|
+
if (__Pyx_PyTuple_SET_ITEM(builder, n, key) != (0)) return -1;
|
|
8703
8699
|
args[n] = value;
|
|
8704
8700
|
return 0;
|
|
8705
8701
|
}
|