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.1 (2026-06-02)

  • Make internalizing anonymous dictionary objects support IMapping fields, rather than only its subclass IDict.

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.1.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.1-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.1-cp315-cp315t-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1-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.1-cp315-cp315-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1-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.1-cp314-cp314t-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1-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.1-cp314-cp314-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1-cp313-cp313-musllinux_1_2_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1-cp313-cp313-macosx_26_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

nti_externalization-3.2.1-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.1-cp312-cp312-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1-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.1-cp311-cp311-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

nti_externalization-3.2.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: nti_externalization-3.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 3227890ca3dffcc9edeb22d0b6487df81c0b0fd9a978134e54a64c19b84f6d20
MD5 126177513f7c9686db55e29cdb47386d
BLAKE2b-256 4a427d85e7c16cabce63379ae0ac748e45f36771b1da1a96202a546d93b79bba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2c01914ec39fe3d7732bde8de149474acf4539b20261d2683ae8a6c3a549cd69
MD5 7380a8b998db975927c82f65a35b7c61
BLAKE2b-256 e18345b620b42caa94a6e9e881e2bd8200b8b024ecbe350fc77d0a87a8241cc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 560d1a930cd3c073c35ad3a7684cb4033a35bdd0268921efdba975846fb4acef
MD5 1a84cbebac2071a062f8e7ba85cb1e52
BLAKE2b-256 f498fae02ebaf9c475494fe55f3240f8f874af39907388867a9b22485f3fe83e

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 388a6b9b80383284a7cf612c046d52148937b729cc4ee22c409dd8470c60fdbb
MD5 dc570774e1458507008bd2caeafdeeef
BLAKE2b-256 01f46f23d566614afead98b39c88631f51a296b54a668d4bfaa42e2615fe6267

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a94db8546bc456a9f009cc6d5caaddb65d4710f86313e11a7b6799390e9637dc
MD5 124cbf3d7fcb081126fcd8b830aad60b
BLAKE2b-256 d6182520fde7ed9c00b33172154de47887ab3ae2fce6b7413ee7f137892e6c23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp315-cp315-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9a5aa7555a5c4f2a9c233b8e00217ec93ec7ddc80580716725ea616e0d2889bd
MD5 83a670a082e2b196ec54c2ab5b381e16
BLAKE2b-256 63800902b76cfc93364c7a0735d51276148789fe8c484db843860f92bb0ec76d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp315-cp315-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 62524be3a374a88da4adfd6da9ea1708cc22cb8a0a6438347663dc28657d7aad
MD5 4a830b9b13b73aa300fcc8a3e99988cc
BLAKE2b-256 5ecf2f79ce3a39a0a3a5acb226124e18af5e96aede8d7f15c8e6a9c7924a41c3

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5171e216644fa1b0ed749d3eb474d9470fb40f2b2e27c40d4f511837a4df4af2
MD5 789ea2b3642d0cbaf3a7f21bcb1ce61a
BLAKE2b-256 d319fb236d2b9ca1a43a96574579d339d5dc9bab2ccaa1e2811a79d53617b07e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 642b28d13de1c31b77451474f668f8466625ea62c4fd2f375ce3024d1fc422b5
MD5 b99f61d8397041b518d562843eb981ad
BLAKE2b-256 3ceca4f96ad909dffa8926d34ce4c8670872146f7db0ffb0d9178ff066f397e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c623fd1d071c1e92504d969f6eba8640eb2c64583ab6f834855befba29024861
MD5 1b479fbcdb995caed4e4b9cc116e6b43
BLAKE2b-256 55b7da65ff862fbd9682425bb15b81fcb2bfe01a5d4bfc3484dbadbc75cda69c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1ff4e708fc01b49ae76a6364d1e10ca3faa12b915d10f1fe76cc0731404b32aa
MD5 e2df8538c2a6b6c5ca15a02d0555fa31
BLAKE2b-256 6a097c7fba4cbdeee143f66241e368743c1f3ff20ab83c15883ac8c96ff8d755

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07d79e29f0d84a6e15a98813b2fece8eba4424bd967561231e05828e36dfddb2
MD5 1738c4a8c77ac7ee2136bfd0123d7da9
BLAKE2b-256 8054ba0094bb833dfb42623dc0ca0335cdfcb346f345ed3049762df14d261ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a2dca1bdb70452aebffd95d3e3f071792f6c865bf7be6bb1b1924b6213055d8b
MD5 df7d88b817afbbf670acb58173d2f722
BLAKE2b-256 2ef6d1fc149b9c6f663da66da15320c04875301fc0f1cb75646c6dfb596e0768

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 968a4e07479377a322fb0b6d5b1fbeea9e6b9aa0eccb9bb4ff6719482b132f59
MD5 078713566db54113fc08743a6ff669a9
BLAKE2b-256 855357a8cfdf42f4360aea51846298a45128c0786792b98cbcbc0d510695ca5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fd7c8ba40665d88513ebb921dc9b26c313df31c3372b5fa65d9b0ce9041e96f4
MD5 3c0907b84e7de07385ff83041c247a43
BLAKE2b-256 f819ed649457347f10cdb9e8970667e254fac657be74847ce4bff8a13f39f46b

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81403e1dda750dfd4a0725d61c44c1f5d65118cd086b8a3f484f22fd4b90ebce
MD5 b63d49ce6a5aede10091da8de5957af1
BLAKE2b-256 b0746e2580374e778a6aa984a19db439a24667eaf654c9f01d32e9444862bb7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cc4e938e8cb29a5d3f2cf580a4eda43d28dd1803044b3f465d0c2d650be2eeda
MD5 f3d06ce5a11a74e933a6e075544c5d5b
BLAKE2b-256 68463ee715edc2c8f1d47eb90638869e21adc23ae3fdf16d32257f2d085f5d9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eac87b597e309755b6b50b6f14627e23f75bf86788af305c3ecace00e688c483
MD5 0b4e9bd1129910aacd68ca3e8b2d5f20
BLAKE2b-256 302c5f782d41cd4e0a53024823d473574b22d42b6cde6b732223d554c8b4eddb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 77f2dc204020a63775827282794b2edb130b3106a2040b4d6e4706e7962baa13
MD5 3d0e98b04e63e776f578ce4b2f009f67
BLAKE2b-256 ae872199d746bc3c93fc7fd3cd972290be1d0d4169ee65008ee6c53e362bba49

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a256345faa58dc582dc47004f8143c3a2787e8e25e5a0643d7f20785a8ae74a1
MD5 467f90cc6da9fc7d24b150a73872eb9a
BLAKE2b-256 5168e9b3cff463dd050e2524ccf450475560ec9c4ca153a041b9ad2aee63899a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b1d900543eeea4eae9d5fa961f791fb2110adea19faad4b0ce496c4eed0cf992
MD5 81b7e077f11084159fa74e9535480cd3
BLAKE2b-256 59e3a4438eb002e13d19c986c6a470c0a5d7b6421d519bcee523a116df094b08

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e5142132a46b0a90f7b072fc98ba05b702d26b403f150f32b9fa069e742773f5
MD5 f267bcd9dc9e0d1d610fe9d2d87af4b4
BLAKE2b-256 d2376dd07cd15ee2f0643d143de1b6b04aa3909682190f0c47466f44dd623c13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cee0238f1e5838b8ecefb725658d2c8d99a35fe434a603d04f23254d2caf47ba
MD5 4770f66b5e1b37663b138aa2b268789d
BLAKE2b-256 f2807208f0106be25c1b2331e39ac2570c8b27b00b49098ebfc86552b436a76e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 02e085673c6c0a9b8e89b4a792931857dfccc58ab7e1af09649bd7ad7a571925
MD5 fd77f7e9cef103beaf9cd9d254a8732c
BLAKE2b-256 a6cfcc7f5c2a0f1f629c01eddf608ec38b5bc33bf8942da78e3fc67b9f5beea5

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 129b77dd037e321da4bbde2e8044c721814882921220ba4cb2ae920e633671fe
MD5 c5394f7268351924c39fb0bdc9678d91
BLAKE2b-256 adf85314f03310162685e4ee91ee34e32d9ee7333cb5625de646cad5bd3966e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5f70ba1e1899a3b365f9351064cd458a179fd3c8c6bb0ea3540fc96c1834aa58
MD5 9bd8e17b5eace9ea03f7f3cc4da1df52
BLAKE2b-256 d87abf1e6fa060a0268e163710238e090307e68db113ca56fb1b9166ba73e8a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f57b5626b1a4a1a7bd6b5176da594a5852790bbbc995f72a7e4f162e8043b627
MD5 4645405fc7f30166f78b076b137a0b3d
BLAKE2b-256 a0e11e502416a1d28d1c20157fbaaac8e934cf2743266c04610f7a1e69d2e8aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 79c67f4143f0dd946a77fe99c3ba3b123ca60c3974c9a8f01e01b2d532cb49fe
MD5 f50c5590f74c88bf12a837b14064acb5
BLAKE2b-256 c7cfd1ae0cd74bd2f4e5b5c19606dab06617bb933a4700567758c86f19e3ea23

See more details on using hashes here.

File details

Details for the file nti_externalization-3.2.1-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.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95eb8611c1d5ed09fd08c9e19b4b755e33a8f0b200810d722da72b9ca93f08fb
MD5 2bf04ed55071f6b5850e473eb6690e39
BLAKE2b-256 4c81661b082923068763d95e669be576951e2a52f3d55768e9803f06abda36af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.2.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 349c95e7df1d7b18a1c1ec210b0f7ff1b48bf3b29a3ce954554bf8e7574002f6
MD5 d9dde9ea94382279518bbbb4c0be4502
BLAKE2b-256 7c1cd1d90162c84ff4c992aa29ebdd7841a96da1944150fa9682f4d097f93aa4

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