Skip to main content

NTI Externalization

Project description

nti.externalization

Latest release Supported Python versions https://github.com/NextThought/nti.externalization/workflows/tests/badge.svg https://coveralls.io/repos/github/NextThought/nti.externalization/badge.svg?branch=master Documentation Status

A flexible, schema-driven system for converting Python objects to and from external formats such as JSON and YAML. This works well in a zope.component environment such as Pyramid.

Documentation is hosted at https://ntiexternalization.readthedocs.io/

Changes

3.2.0 (2026-05-19)

  • Drop support for Python 3.10.

  • Add support for Python 3.15.

  • Move the orjson dependency to the orjson extra for compatibility with free-threaded Python. If you’re using regular Python, it is highly recommended to install this extra.

  • Add support for free-threaded CPython. However, note that some dependencies, most notably orjson, cannot currently be installed on free-threaded CPython, and other dependencies may currently require enabling the GIL.

3.1.0 (2026-05-08)

  • Document the to_json_representation variants and add one that guarantees sorted keys. Make the “fast” variant not dependent on second-chance externalization.

  • Renamed the “datetime” module to “datetime_ext” to avoid conflicts with the standard library. Backwards compatibility shims are in place.

  • Remove some long-deprecated parameters that were typically undocumented.

  • Introduce some basic type annotations.

3.0.0 (2026-05-07)

  • Switch to using orjson for JSON dumping/loading, from simplejson. This introduces the following changes:

    • Floating nan and negative and positive infinity can no longer be represented; they are serialized as null.

    • decimal.Decimal objects may be represented with reduced precision.

    • Whitespace has changed (orjson elides unnecessary whitespace).

  • Remove deprecated uses of datetime.datetime.utcfromtimestamp. Now, instead of being “naive” parsed dates from timestamps will have a tzinfo of UTC.

  • Support for PyPy has been removed (orjson doesn’t run on PyPy).

2.6.0 (2026-02-09)

  • Remove the automatic hooking of get_current_request to pyramid.threadlocal.get_current_request. If you want this behaviour, you must do so yourself.

2.5.0 (2025-11-14)

  • Reduce the logging level for recursive invocations. We handle this case correctly, it did not need to be a warning.

  • Add support for Python 3.14.

  • Add the new ‘zodb’ extra, which installs optional dependencies that use the ZODB ecosystem: persistent, BTrees, zope.intid, zope.container, etc. These dependencies are no longer installed by default.

  • No longer build binary wheels for the legacy ‘manylinux2014’ standard, only 2_28. Similarly, switch from musllinux_1_1 to 1_2.

2.4.0 (2024-11-11)

  • Drop support for anything older than Python 3.10.

  • Use native namespace packages.

  • Start publishing manylinux binary wheels.

  • Remove some legacy code for Python 2 support to enable compiling with Cython 3.1.

2.3.0 (2021-08-02)

  • Add a new base class, StandardInternalObjectExternalizer. See PR 120 and issue 117.

  • Rename IExternalMappingDecorator to IExternalStandardDictionaryDecorator to emphasize that it is only used if you (directly or through a super class) call to_standard_external_dictionary. A compatibility alias remains. See PR 120 and issue 118.

  • Docs-deprecated aliases in nti.externalization.interfaces now also emit deprecation warnings at runtime.

  • Other documentation improvements. Sphinx can now run all the doctests (on Python 3); many doctests are still run an Python 2.

2.2.0 (2021-04-14)

  • Add support for Python 3.9.

  • Depend on BTrees 4.8 and above. This simplifies externalization checks. See issue 111.

2.1.0 (2020-08-03)

  • Add support for “externalization policies.” These are instances of ExternalizationPolicy that can be used to tweak certain low-level details of externalization without replacing externalization objects wholesale. They are intended to have a very low performance impact.

    The only supported detail that can be changed right now is whether the standard created and last modified fields are externalized as Unix timestamps (the default) or as ISO 8601 strings.

    See https://github.com/NextThought/nti.externalization/issues/109

2.0.0 (2020-07-02)

  • Change ILocatedExternalMapping: Previously it extended the legacy zope.interface.common.mapping.IFullMapping. Now it extends the modern zope.interface.common.collections.IMapping. Note that this does not require mutability unlike the older interface. (The LocatedExternalDict class provided by this package is fully mutable and implements IMutableMapping. It also continues to implement IFullMapping, but use of that interface is discouraged.)

  • Change ILocatedExternalSequence: Previously it extended the legacy zope.interface.common.sequence.ISequence. Now it extends the modern zope.interface.common.collections.ISequence. Note that this does not require mutability unlike the older interface. (The LocatedExternalList class provided by this package is fully mutable and implements IMutableSequence.)

  • Fix the interface resolution order for LocatedExternalList. Previously, with zope.interface 5, it began implementing both IMutableSequence (the new interface from zope.interface.common.collections) as well as the older interface ISequence (from zope.interface.common.sequence); the two have inconsistent resolution orders. Now, it only implements IMutableSequence and a subset of the legacy interfaces that do not conflict. See issue 105.

1.1.3 (2020-06-25)

  • Correctly fire IObjectWillUpdateFromExternalEvent events before updating an object.

1.1.2 (2020-04-07)

1.1.1 (2020-03-27)

  • Fix a faulty assertion error. See issue 102.

1.1.0 (2020-03-27)

  • Make instances of fractions.Fraction externalize as a string such as "1/3". When received by a schema field that can parse this format, such as zope.schema.Rational (or higher on the numeric tower), this means fractions can be round-tripped.

  • Support externalizing decimal.Decimal objects in the YAML representation.

1.0.0 (2020-03-19)

  • Add compatibility with, and require, zope.interface 5.0.

  • Document which tagged values are inherited and which are not.

  • Stop inheriting _ext_is_marker_interface.

1.0.0a14 (2019-11-13)

  • Build with Cython 0.29.14 using ‘3str’ as the language level.

  • Add support for Python 3.8.

  • Update PyYAML to 5.1 and change the default output style slightly.

  • Fix tests with Persistent 4.4.3 and above.

  • Support zope.interface 4.7, which lets tagged values on interfaces be inherited, when using <registerAutoPackageIO> on a module that had multiple objects implementing a derived interface. See issue 97.

1.0.0a13 (2018-09-20)

  • Support IFromBytes fields introduced by zope.schema 4.8.0. See issue 92.

  • Make validate_field_value (and by extension InterfaceObjectIO.update_from_external_object) call fromObject defined by any fields for non-byte and non-text data. Previously, only if the field raised a WrongContainedTypeError would fromObject be called.

1.0.0a12 (2018-09-11)

  • Add support for zope.schema 4.7.0 and nti.schema 1.5.0. Drop support for older versions, which includes dropping support for dm.zope.schema.Object fields.

1.0.0a11 (2018-08-29)

  • The @WithRepr decorator takes into account the updated default repr of Persistent objects with persistent 4.4 and doesn’t hide it.

  • Subclasses of ExternalizableInstanceDict that have non-str (unicode on Python 2, bytes on Python 3) keys in their __dict__ do not throw TypeError when externalizing. Instead, the non-str values are converted to strs (using ASCII encoding) and the _p_changed attribute, if any, is set.

1.0.0a10 (2018-08-21)

  • The registry argument to most functions is deprecated and ignored. Instead of making calls to registry.queryAdapter, we now invoke the interface directly. For example, IInternalObjectExternalizer(containedObject). This lets individual objects have a say if they already provide the interface without going through the legacy code paths (it also calls __conform__ on the object if needed).

1.0.0a9 (2018-08-20)

  • Allow subclasses of InterfaceObjectIO to have non-frozenset values for _ext_primitive_out_ivars_. This issues a warning and in the future will be a TypeError.

1.0.0a8 (2018-08-16)

  • Better support for internalizing anonymous value objects discovered in a Dict value. Now, they won’t raise a ComponentLookupError when require_updater is True, and they will be given a MimeType based on the schema (if they don’t have one).

1.0.0a7 (2018-07-31)

  • Avoid a TypeError from validate_named_field_value when external objects have unicode keys.

  • LocatedExternalDict objects accept more constructor arguments and allow arbitrary attributes.

1.0.0a6 (2018-07-31)

  • InterfaceObjectIO only returns an anonymous factory for IDict fields when it wants objects for the value.

  • StandardExternalFields and StandardInternalFields are deprecated aliases in nti.externalization.externalization.

  • update_from_external_object properly handles the case where INamedExternalizedObjectFactoryFinder and IInternalObjectUpdater are registered with different levels of specificity, and the finder also implements IInternalObjectUpdater. Before, the finder would, perhaps incorrectly, be used as the updater.

1.0.0a5 (2018-07-30)

  • Objects inheriting from InterfaceObjectIO and registered with the component registry (in ZCML) for IInternalObjectIO can still be found and used as INamedExternalizedObjectFactoryFinder, an interface implemented by InterfaceObjectIO through IInternalObjectIOFinder. A warning will be issued to update the registration (which generally means removing the provides line in ZCML).

  • ExternalizableInstanceDict no longer inherits from AbstractDynamicIO, it just implements the same interface (with the exception of many of the _ext methods). This class is deprecated.

  • Formally document the notify_modified member of nti.externalization.internalization. notifyModified is a deprecated alias.

1.0.0a4 (2018-07-30)

  • Make InterfaceObjectIO._ext_self readable from Python, even though that is not documented (and may change again in the future). Document the intended API, _ext_replacement(). See issue 73.

  • Make AbstractDynamicObjectIO._ext_getattr handle a default value, and add _ext_replacement_getattr for when it will only be called once. See issue 73.

1.0.0a3 (2018-07-28)

  • The @NoPickle decorator also works with Persistent subclasses (and may or may not work with multiple-inheritance subclasses of Persistent, depending on the MRO, but that’s always been the case for regular objects). A Persistent subclass being decorated with @NoPickle doesn’t make much sense, so a RuntimeWarning is issued. A warning is also issued if the class directly implements one of the pickle protocol methods.

  • Updating objects that use createFieldProperties or otherwise have FieldProperty objects in their type is at least 10% faster thanks to avoiding double-validation due to a small monkey-patch on FieldProperty. See issue 67.

  • Proxies around objects that implement toExternalObject are allowed again; the proxied object’s toExternalObject will be called.

  • The signature for updateFromExternalObject() has been tightened. It should be (self, external_object, context, **kwargs), where **kwargs is optional, as is context. **kwargs currently contains nothing useful. Uses of dataserver=None in the signature will generate a warning. This may be tightened further in the future. See issue 30.

  • __ext_ignore_updateFromExternalObject__ is officially deprecated and generates a warning.

  • update_from_external_object caches certain information about the types of the updater objects, making it 8-25% faster.

  • update_from_external_object mutates sequences contained in a dict in-place instead of overwriting with a new list.

  • update_from_external_object mutates sequences at the top level instead of returning a new list.

  • Add support for finding factories for incoming data which do not specify a MIME type or class field based on the key they are assigned to. This aids in consuming data produced by foreign systems or using Dict schema fields that require modelled values. See issue 51 and PR 68.

  • Schemas that use InterfaceObjectIO (including through the ZCML directive registerAutoPackageIO) can use Dict fields more easily on internalization (externalization has always worked): They automatically internalize their values by treating the Dict as anonymous external data.

  • Strings can automatically be adapted into ITimeDelta objects.

1.0.0a2 (2018-07-05)

  • The low levels of externalization no longer catch and hide POSKeyError. This indicates a problem with the database. See https://github.com/NextThought/nti.externalization/issues/60

  • Remove support for object_hook in update_from_external_object. See https://github.com/NextThought/nti.externalization/issues/29.

  • A number of deprecated aliases for moved functions have been removed.

  • On CPython, some of the modules are compiled as extension modules using Cython for a 10-30% increase in speed. Set the PURE_PYTHON environment variable to disable this at runtime.

  • The unused, undocumented method stripSyntheticKeysFromExternalDictionary was removed from instances of ExternalizableDictionaryMixin. Use the import instead.

  • Unused keyword arguments for to_standard_external_dictionary and to_minimal_standard_external_dictionary now produce a warning. In the future, extra keyword arguments will be an error.

  • notifyModified no longer accepts the eventFactory argument.

  • The notify_modified alias for notifyModified has been removed.

  • Decorating external mappings and external objects handled decorate_callback differently. This argument is only used when decorate is false. This argument is also confusing and should be considered deprecated.

  • choose_field no longer has the undocumented conversion behaviour for the CREATOR external field name.

1.0.0a1 (2017-09-29)

  • First PyPI release.

  • Add support for Python 3.

  • Drop support for externalizing to plists. See https://github.com/NextThought/nti.externalization/issues/21

  • Reach 100% test coverage and ensure we remain there through CI.

  • Introduce nti.externalization.extension_points to hold hook functions. Move the Pyramid integration there (and deprecate that). Also move the NTIID support there (but the old name works too). See https://github.com/NextThought/nti.externalization/issues/27

  • Deprecate nti.externalization.internalization.register_legacy_search_module. See https://github.com/NextThought/nti.externalization/issues/35

  • Stop ext:registerAutoPackageIO from registering the legacy class-name based factories by default. If you need class-name based factories, there are two options. The first is to explicitly register IClassObjectFactory objects in ZCML (we could add a scanning directive to make that more convenient for large numbers of classes), and the second is to set register_legacy_search_module to a true value in the ZCML directive for ext:registerAutoPackageIO. Note that we expect the behaviour of this attribute to change in the near future. See https://github.com/NextThought/nti.externalization/issues/33

  • Make ext:registerAutoPackageIO perform legacy class registrations when the configuration context executes, not when the directive runs. This means that conflicts in legacy class names will be detected at configuration time. It also means that legacy class names can be registered locally with z3c.baseregistry (previously they were always registered in the global site manager). See https://github.com/NextThought/nti.externalization/issues/28

  • Drop dependency on zope.preference and zope.annotation. They were not used by this package, although our configure.zcml did include them. If you use zope.preference or zope.annotation, please include them in your own ZCML file.

  • Drop hard dependency on Acquisition. It is still used if available and is used in test mode.

  • Add public implementations of IMimeObjectFactory and IClassObjectFactory in nti.externalization.factory.

  • Drop dependency on nti.zodb and its PersistentPropertyHolder. The datastructures in nti.externalization.persistence no longer extend that class; if you have further subclasses that add nti.zodb.peristentproperty.PropertyHoldingPersistent properties, you’ll need to be sure to mixin this class now. See https://github.com/NextThought/nti.externalization/issues/43

  • Add the <ext:classObjectFactory> directive for registering Class based factories. (Note: MIME factories are preferred.)

  • Callers of to_standard_external_dictionary (which includes AutoPackageScopedInterfaceIO) will now automatically get a MimeType value if one can be found. Previously only callers of to_minimal_standard_external_dictionary would.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nti_externalization-3.2.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nti_externalization-3.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

nti_externalization-3.2.0-cp315-cp315-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp315-cp315-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

nti_externalization-3.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

nti_externalization-3.2.0-cp314-cp314-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp314-cp314-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

nti_externalization-3.2.0-cp313-cp313-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp313-cp313-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

nti_externalization-3.2.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp312-cp312-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

nti_externalization-3.2.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

nti_externalization-3.2.0-cp311-cp311-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

nti_externalization-3.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

nti_externalization-3.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file nti_externalization-3.2.0.tar.gz.

File metadata

  • Download URL: nti_externalization-3.2.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for nti_externalization-3.2.0.tar.gz
Algorithm Hash digest
SHA256 96d1b027c2aaaa48023ef33d2f9ce6d9cf69d48be7d6c8c10ba3d43f4586d2fe
MD5 b96e15fa0fe96ce349ea823741ed6438
BLAKE2b-256 91a5698ccd28f94a83cf251dea61f46182d6798ee6558a66eb0ba3073be7091d

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e44d32c3279e3fc0f90d5c2dee69c7e10c37511e38d3240321d2a8309ce7441
MD5 3db22aac4701da04bdee1c8079c4ef0c
BLAKE2b-256 475dfb3e1bab1e1222b0fc2dd38d49ce02741c4bfb2c40abb025a83f631a92c2

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8fa16c64b610df273dff9ea10aa7a413425f3401cd3b86fc863d38685654d498
MD5 26dbc54b3c440f4e7894a9254b6a2206
BLAKE2b-256 1d5f2114ca0850c2b6ac7bc4c2dc509103f5a44e45b9f3ff1b5a50dead60df1f

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 03bd4731040fe2cd9e03fc7341e24025dcbcd76e133d4b56f331946b5d68e53f
MD5 a95334aa13f68313cad9ab25fd736a0f
BLAKE2b-256 17aad379b02e06ab23be10e56c54cbe6af6355871432e9c5febbfa5bc4ebb5c1

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b8b7efac1a182d1dc86d356baebdb1ecf91b3b9e06e7dcf35c8ff1190603993d
MD5 5fd7944ba67d2ce32b2778cd66fa8743
BLAKE2b-256 05020e0b33dddd89024609d914457220478fe0778e7d47f1d1bd106f58b06244

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d6a225052640a029ba28e55f93a8a5d7d8979a1a1fb6d89b1720fce748c6722
MD5 881c88d4d32bff159bac9bf689511fcf
BLAKE2b-256 bb91eb83dd52fddc1c0fbc4719eb40d19ee465c6f99262e1afdabb5c75358697

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e4debdc29d86c78accb240dd1595968601a0e08b14f31385c5854717b7a00324
MD5 613190b83f7d5fe552892cffea1988f3
BLAKE2b-256 68e011aaec12e2aa1f7d3ca05d82c38c4cadd3c4b68bbffc93da19a42c619877

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17734a5832e58147639691b8ee9da16b8491aaf38a5b4a2b3d7f965aa00a99ce
MD5 dafece648c0b7fd290854c68b84fda6d
BLAKE2b-256 d4f54c29b0729d7e4db799b573d5b00ec80c4798a13c095cf88ead818aa533d7

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8fd702fcb8a091cc03c5fce18946db7fc8e1a079326e0b2cccedba8873858c69
MD5 d1f6cff653ae04034b73c507f2e057c7
BLAKE2b-256 dcecfe33a17519730e245336249ed565e7c3974c84bf11dacf31291bde2b2e42

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5829e8856dd187a1590629feab735e9f2acace98e0f9af2da7f128e80e164bec
MD5 4d7382b5969793002848eabc0e726925
BLAKE2b-256 63d324feca117767f8be81fb2198f1ff438c5b4f49a90ed153a50bc8da83e993

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 75692e331dfae9d01050c862aff1f8ba159c56f309c1ef2d22d5bd3c4047c793
MD5 e42f80df21a0171d6eae21a34e90b552
BLAKE2b-256 fb1262407386d14551b20badd407b883d9934624f58c02dfc890e06e548cbc6e

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3c5857a66a3b0104da04d9f2ac52cc0cb98d82b07190375fb5aad60fe3cb5c4
MD5 9a54fcf06be29426f8e99d41f636c469
BLAKE2b-256 002958387e4b614af6febe0e3d3bc7217e4af1c0941c9c928115441ea7ccddb0

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 56233928534e68e7488163927e1b115b275bf9ddfa4934c9c175ace6edfe13ec
MD5 dfd7328b6859d066bc8cca3e675ad58c
BLAKE2b-256 e0ab7254f93b28950e9de54c2d815d3a2266d6522d4a4319419b1453e2939aaf

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1900177ba4b59fbf719c6fb44224a35c755eba319728517c1cd03c8073e887ce
MD5 8f89d6a514770c594f64571864c0bb69
BLAKE2b-256 1d2ac0533b43a294249a7a1f9c76e12050c6a0be9ada5c5f6afa3ee789915844

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ded2f3d1b2540e78a436fb87e24d0b7d1154fb35afb7ece82efd8bc0cdb60b8c
MD5 325ff4165954f3a8509e674741d7d242
BLAKE2b-256 63c0fd27a638965fc5a0615f158753b8bae71857776ce042d735f88b457fa3f1

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c7b2317f73693879d72c69c93afc610db24f5929a610258fc4fd6f031892d0b
MD5 296dd2433aee62437bc4dfe004d2ae3c
BLAKE2b-256 26c083938a37921b6e6a2a76c4236a1f4a9266ddb170e165f872b9dcad10a572

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de3d8c477aba415625580e498e00ae9dafbd61046b3c54e01436d7ffdf37b018
MD5 3644cb3f883b9869d76a5a1ebcc7fad6
BLAKE2b-256 125c4d9e41e97997de31e7c6194ee0b6dfa51c860676c23ba9e053fa4a191729

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b639aac18bf6d6381e7a13b7255b9489587489e67c2cbc97dc0c81f28e90260
MD5 86405e1596c2f857e35c696a61583ee8
BLAKE2b-256 618d658dc1eb18f4cf20a68b0f254d2a181adf668c57d46b92d66809d0d6feab

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d610246edac4dd2114d09eb5821cf3053de3b3ce9979f6ec69db039335786552
MD5 729d84a48b9ff4f6c1a151daffc02ca3
BLAKE2b-256 07628455d4323526ccdbe47ea888f1d8f1a335b79593e344d15b17a8cff130b4

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ffd23372d949f8abd3311c4f5d5dca206cb9b664879583ce069dfcb7f4b1482c
MD5 e3cc696a31dd5f0081d9ea172799297d
BLAKE2b-256 08226e90feace3da24fc743d8ad4e3e2923b15d33e9c51a1f4170a11a7eb4715

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 009e39439970d3470878e5d574374d788e15b47b48846345af7648b5195ef153
MD5 1f7bc8bcbc56dd92d0a1855fb489042d
BLAKE2b-256 7a5cfe0772d0927facb7047c621ecfa6cbdde90d2a4d8249351b9e25e3ac57b9

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0909bba5fbec38709f48e189e76ae76d332b9e82cc8b0e2f6f7c3cf3c4f7cd5f
MD5 aa7b3474449c569b65dc0f324df7a380
BLAKE2b-256 984bd0341f34567042c570a95ef2e172ec237a9742a8704d267856f856604819

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f12ab35b1284fbfb0b4e59d94a65f158019603c49b4b77fd54852c7bdce12d09
MD5 7f17a7087bedd6c6164d5b32c9302a4b
BLAKE2b-256 2b980304f6b14e3e9ddc4d268c203f99115741cc77916f15b8d1b8ad0504276e

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 332fe057be89adf1b32235ff04b1ec07dc05f088534a2bf9a9d0e9ca34609f1e
MD5 5ec15f0d4afb7db974ac570b6acd43cb
BLAKE2b-256 65c747d6f9fee2fcb5daebac2f417b832d8ae0b2c73673efb08d85de64118662

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bbd25fd19bb06725fb4bc72346f59349a9854f2efcb63bf1e9cbb0ff8b50813f
MD5 014ba60cb2b4bcd51ebc3a91c48b3fd7
BLAKE2b-256 3b5c254ee742e5daa1da8cbca5e7a30396a9da06f27c631269cdcc429ea54ce8

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b98f23716f9d83c09232a15dd2e0d347a9b64aa5211bbbcd64d447b515714ac4
MD5 f00550f48cf5694b7789ecd4039cad63
BLAKE2b-256 21ab85beade3d6a0c484e028b9e2613e639205fd84fbe2a2b8051ee423e5154b

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ac2c31a9ad704b7ff0353d8c09a134fe0ebfd311a5b1bfa5fa3c9e0c9461887b
MD5 13756697f6a251d4fbceb9c4ec59552b
BLAKE2b-256 4059008bd9f9fa6c4224fb419477b5b1785b33a1b57653940722d7e0fa525f0f

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4cd3fe878fd527183d21bd1a4552ca67cb20e59ed4fae9b95ef0c901b6c1e5d2
MD5 2b54b50d27e242e040171f395f667961
BLAKE2b-256 f92207875adbc50585d98fb1f1c864e53792f34ab764cbe3bdbdad9182ba4952

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dcf58e5c53a8c1dc8390a1e977bd392354e35d1b1ed0a98ea798b118b54a388f
MD5 60b4e6009a27438354e50b1effc43fa8
BLAKE2b-256 44312d8ceaaa7c6f4fecdd3cbc1a55270447c619f2bb19ae5c6c9c6fd41612cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page