Skip to main content

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.3.1 (2026-07-22)

  • Add compatibility with Cython 3.3.0a1

  • Binary wheels for Python 3.15 are now built on Python 3.15b4. These may or may not work on newer or older versions of Python 3.15. Binary wheels for 3.15 in previous nti.externalization releases probably won’t work on 3.15b4.

3.3.0 (2026-07-14)

  • Introduce IWantsMutableSequenceToUpdate marker interface that objects can implement to be passed the raw MutableSequence object, rather than assuming the sequence contains objects to create/update in place. This is sufficient for direct calls to update_from_external_object on the object so marked, but when used in a nested context (an attribute of another object), you may still need/want to implement an adapter @adapter(list) that @implementer(YourType) that does the same thing.

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.

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

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

nti_externalization-3.3.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.3.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.3.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.3.1-cp315-cp315-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.15musllinux: musl 1.2+ ARM64

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

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

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

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

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

nti_externalization-3.3.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.3.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.3.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.3.1-cp314-cp314-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

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

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

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

nti_externalization-3.3.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.3.1-cp313-cp313-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

nti_externalization-3.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nti_externalization-3.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.2 MB view details)

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

nti_externalization-3.3.1-cp313-cp313-macosx_26_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

nti_externalization-3.3.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.3.1-cp312-cp312-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

nti_externalization-3.3.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.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.2 MB view details)

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

nti_externalization-3.3.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.3.1-cp311-cp311-musllinux_1_2_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

nti_externalization-3.3.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.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.2 MB view details)

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

File details

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

File metadata

  • Download URL: nti_externalization-3.3.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.14

File hashes

Hashes for nti_externalization-3.3.1.tar.gz
Algorithm Hash digest
SHA256 a1394260b9fcea9e172d3f6f56a0f07b39239f53216f38b8a9bc5f903619455f
MD5 1d8802e16f8be9b46fe544b8ac4f5126
BLAKE2b-256 07895cdaa8398fc6d8ef5a54908f415b77506a9b05877f402be5a5a184cfcf4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 424694971db0faf4dfda172a681bd5ba7fd2534c687af06b931d5d60297d8124
MD5 bf5b94210a5932af820ec41ce759ee40
BLAKE2b-256 60460863913c05ec1aff09cff06728d1618f16d93f9ba8ebfbac1bf72c7578c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9043e71094f369c7bb081b4308cab670aede042d06d57da5343ec21b5cb2e5cf
MD5 cae9023c03adca1da7a930a1ecf4b117
BLAKE2b-256 d128e4e8fb418d42bfad186e980a9d6a094499beacf7da114eb13ceee265349b

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d34b5ae06e220543d87f33faeebd1073cc6c8d117842f675fc21a8825cce395
MD5 0b6e0de97f26aaa2ce57522a287d721d
BLAKE2b-256 c6866078c9e106130154d19b8aa1bae821761c21c1c69dbc3d177b0e993a94d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 faa73db738f23a1cdc061d083c70c315c9ada991a1a25c7fb3b24c59a6c8b9f8
MD5 d935e821b335e1d31884b9991d18ac59
BLAKE2b-256 2ae4ac4373ea3cbe73ab27bf1fe03f84062219a5d11729f242f2c0be1bb593c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp315-cp315-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 46afdf97febb04eca59663bb31ecab18bc22331874f34fb498f043ddc5f0586e
MD5 6de844ee6f02f0f1d12cfce16186a21e
BLAKE2b-256 d274991bc46fed7077232d50626741d19b50bbd690ec75d88376e1336154cb00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp315-cp315-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 24d1db8cff584992c683439486ac9ec0f81c3e63ef784f8b280649515ec91eb0
MD5 4e1d6f8a5394fbcaf312ed84ac7ee8af
BLAKE2b-256 7334f4f566ab9d4deedfe85f862b302556ed350ef0f77bc25062acc15de940e9

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9482bde7efae239f502d3e4fc29597ecb62dafb7ddda76caf70222465fb91d6
MD5 22afbac655d2142c07fbe17b201eef5a
BLAKE2b-256 1389ac8a6614a9c830177a4fda913e4ab15bb93dc86a1d96dd8cf2305cf7fc5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2523df801895ea9777d46d365879bfc2b36506bbd605f8b3842fd20f3c38d1f4
MD5 24c65bc27a269ec0a8895108fd14709c
BLAKE2b-256 f6973ee8e22ca4b5130b150c21b0f49d9e0a77a2f61bf737f79fd9f39f867e77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06ae2a6464849893e8bf43a71773c168dbead3865dd92771ee2f92573f95cba1
MD5 3b06190d3271cb260207dbef4ff11cd5
BLAKE2b-256 a5972ae0c46d2ed559af583dc4cd9355dcb6473818a00660adedc1bf83b06968

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9856419f64dd9c465c199ddd7854c1f023b08850807ee6beb8b69f35d1897e00
MD5 31a23037b6dd5d135b8493984a4ba9a0
BLAKE2b-256 07ea7a2da404f6f52e7ca1dc7a900fc47a79cece7dd3f2600f74779e84f708d1

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17db20adc5de104fd0194df51f358971a598702742491864a81d296450ddc442
MD5 d4e624d947774ace48b25c161026915f
BLAKE2b-256 e835068ca88d62ec4297e3cf0de1578281e9c9e52e1332d2f7f3d854a1c0f3c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 52eff50a7639a22ed08b55106ab09bf794621dcb70a638255646ea4250e1ebcf
MD5 504a5e76198da45e8c547e4d18054560
BLAKE2b-256 74ac5c1818e4f9cc07a945af0488ddcc7c3c61c42bf43bc67da10d016403a776

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 17983e2fbca9f9e648adf59115ba26b6ca9cb6abb1155ceb261872d316fb3752
MD5 66357a2a3dccb80a481c7797357e5a09
BLAKE2b-256 80ca2e50f74d53a1f115aa93cfe4bb209321f117bdf7dfa959743121422abb09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 83386d5e94a056acc24ad2f97303d5d507f02fdc8d1f6545d80f42042765d3b7
MD5 d176af1852929a52e711b7eac57d5a8e
BLAKE2b-256 95a113503a3775e809f66898fe005844b95743e54234b0abdfa58ee9a63304e1

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c42fcf7f3fcc4b886e1faa31b4bf54f1860c647ee52df6800fead70a664e0a6d
MD5 64666cdc7d84636e31f833122693a1e5
BLAKE2b-256 c7f0853e7bdd0757f436c0d4ee55cb27da7306f92fcbf47814d11ded4cfda86c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 668085f4072bc83deee3833885e4b818d69d3112f08d4b6413d67d19cdaa1c2d
MD5 b3045bd17acda806144b1460dd2ab3bc
BLAKE2b-256 9e1dd509a918ab0571d7457b39250efb8085cac05a8d7a43a04da8d25e52deac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 14c6968327dff9e122ba1e8640f4fa5cf5f3ff9a54c15410d1626fe2e5e5ce1b
MD5 0f2956097afeff7656ffa4f6664f44dd
BLAKE2b-256 0a548dd1fe1441b65f6a4488b214732e80e2ef2d1ecc7931ddf3de7b078611bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97a53e38c4d5bd4246bf8890cdaff84d3072ac4894e6a0d5ebe4c8ecd562d73d
MD5 60e1e4e3f7b91dd8e3f645de9f1a12ba
BLAKE2b-256 0d7c7b954ac037ee4362596179392bfffb61c81409ed264d07ee7e8d4d638197

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 980bf7e736293d8906d51fb0111ea9200a14abf1f6ab7b1eb52b70dc41d113fa
MD5 e554c009a5261712a5d126213a9fd18c
BLAKE2b-256 35c75c1db1d44a6d4f2795aba93954f033b53c32ff45056a5a6a5d99bbddb165

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df303f1ded63827711557dcb6d63ce10fd5189cc2bbb73cba64830bbd87cb22f
MD5 455333fb7c782ca13c3634c4c936d2d0
BLAKE2b-256 dd2e2fe29ce7253d903cbc4fb495b2ce61ea6393e132ac9e3480ac55f2a36381

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 6e1bbdff7aaa29e67fd627fdbefad697d9cec75ff70377258bce12451c7a9e25
MD5 44212839279ef65f736db3b4067bdf26
BLAKE2b-256 4d3e2e9ac71df5829f580842a8e2f4a4fc2fb8ea3d1e480f40af91ed12e4564a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ced34a922165875982bd32f2345ce9f44186cc7c31d40ab6b8de4f6567e3d568
MD5 8b9ded05a931943782193a7be72bee52
BLAKE2b-256 f8fe82765dccd1fd791bd33dd8026d626bc77762e0b3c9ec32c9f86bba257c13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 915e673bc47c92e94e4953326892bae5f3465ef15edc4fc420b0e547bc7c4c16
MD5 cc0a8fe0cc5dc63b271c51ef28b6f674
BLAKE2b-256 7705f4ad9d99cec15b3d6f255a938d866c753eab1b77cd0c6eff83772b59e1fb

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64935430fba9a789c0c3a68dbd129475253ac910d7c5a43ccb0af65f857928c6
MD5 463159f9108a31cb8fc5f5df42727cc9
BLAKE2b-256 f33d37dc430b3bca2f476bb26fa7ae85a30269759871633281668381a0535a03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7c35198e245d96adfc6efe7186f3405b720fd2a3edf6d51ec121c52bba5f7e9d
MD5 c0f399f74a36d2cfc11700c1ccd0e70e
BLAKE2b-256 509da2f047e5819a301475db5b83810aa359de1639c19ff8d87d1452cba7c60a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 67855f9441883e8fcf0e8e05800b693ea171797d58c1a9fc980f39b334a9e251
MD5 8760b1674f37c12621d715a66c5f0dfa
BLAKE2b-256 54b8931d49ca014ee48f3e82c0c6ad1ca099990836ff2d3c7af8fc622d758e50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9170e81f6b8757a6588de13ebf0e5196cb0c254339b38fe13a8983606fff73a5
MD5 6637eb5cc51269c224a198078f6a2a98
BLAKE2b-256 392365c39526ac9d8b9efb5b6206de66d91ccd9b087c2657ea64e04255456a32

See more details on using hashes here.

File details

Details for the file nti_externalization-3.3.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.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87d893e1f66e63b035e9a6b44ea7aef669dccf506b67b698b7d6fdf02a906ba5
MD5 14475b5eae686caeee393ab48a519c4f
BLAKE2b-256 662914356f59a3f8ab4504465eea148f509c304fbc2a50c74780a4d45c6e4365

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nti_externalization-3.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 94c9c1aefaf95b76badde2f68e49d1c5916fbe232bf2e66c2e22b4ab8f0ac26b
MD5 3ccf0ce3e79bfe6d309f2c1399479c8f
BLAKE2b-256 cad6f336e1a90b39026c1fe03e486975ad99eeec8880ecac5ef1fdc235b5cf6a

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 Sentry Error logging StatusPage Status page