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

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-2.4.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

nti.externalization-2.4.0-cp313-cp313-musllinux_1_1_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.1+ x86-64

nti.externalization-2.4.0-cp313-cp313-musllinux_1_1_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.1+ ARM64

nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (4.7 MB view details)

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

nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (4.7 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ s390x

nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.7 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ppc64le

nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

nti.externalization-2.4.0-cp312-cp312-musllinux_1_1_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

nti.externalization-2.4.0-cp312-cp312-musllinux_1_1_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ ARM64

nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (4.8 MB view details)

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

nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (4.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

nti.externalization-2.4.0-cp312-cp312-macosx_14_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12 macOS 14.0+ ARM64

nti.externalization-2.4.0-cp311-cp311-musllinux_1_1_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

nti.externalization-2.4.0-cp311-cp311-musllinux_1_1_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ ARM64

nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (4.6 MB view details)

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

nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (4.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

nti.externalization-2.4.0-cp310-cp310-musllinux_1_1_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

nti.externalization-2.4.0-cp310-cp310-musllinux_1_1_aarch64.whl (4.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ ARM64

nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

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

nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (4.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (4.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: nti_externalization-2.4.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for nti_externalization-2.4.0.tar.gz
Algorithm Hash digest
SHA256 158b22cfa4fe1600c65c48110d9fff417596e4b20b9b384901d15ede45e53dde
MD5 be1ddfe13cfd9aebfc14c29fb999ff7d
BLAKE2b-256 109424075e10f5a90724bd51dd419b2af002edc0c484e84fe66f7136ff27c7e0

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b20f415084f39e4a0f7afe5577415e51954e33409067d59a83b1de73da1776f0
MD5 f73a8c283e2521f6a70cc203b1b6be39
BLAKE2b-256 5149f6d2c864075080f10fdce096869cecf8ca5a746aa035c404c83273bb8e5b

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 733a406ea82504b0e3a9a62603573544b5423ddf9bb86fd49159b0cae6021a72
MD5 62616b999adc371bbc68a6777285c6e6
BLAKE2b-256 9739aeadfc01b7d13edc2806a7c4a9c45c20f72beb154151be4a65f28c544592

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bbc9d77b21e6a43219d49e20fa4308d554bd86aea254609bb466f001197c00c4
MD5 51992c3b11dcbf74704c92e609f1b130
BLAKE2b-256 0c0add35429e9e9ab58f8e0a8a9ef754d805b22d96f9d43a9e347bd59521609e

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 effa7053131e7927b05e339a3bb7b350b89e6a3ca0f9515b4fc7788363cd4380
MD5 1af8fba5b59c1a6c795571bdee1da4e9
BLAKE2b-256 3cec9bd94fcd26a734a6a62ddb94231c278f9009793ce1e7ed8d7934f8ee5b8e

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 81b36efe7f0fc9cf508c42c5b0746f122debe77182eeaa619b834564db2cbdd3
MD5 62b06a46ca487fb88aa09561cde1c3e1
BLAKE2b-256 11fb762c47a955f6abc7adb80ace498005804e9e7d15b9877db7b5615477e0a8

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 96d1b487cf81ec10a0c2a8037866aa8d726d5337727d5ad27928c24dd2e79250
MD5 6d3762c3e72a9bd449595f3a40538b2c
BLAKE2b-256 9b106c6aa95a7c9c4f98d0816762957e1aa3438d4657ee9b15f1b4b72580afc9

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e2c3e84036e0efb9829e08d7280f13c3f85709472b6e11beba4707a113654dac
MD5 ced5efdde04c83320a97ad100c8e0cff
BLAKE2b-256 1f4b9bd84fadb47b1e6cec3337d4613ca268634f315308ffca05e26d2d83e8c7

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 97e6cc77c020f3873ba747cb18a531af38aaa7437643a4a00447b2001d95ec03
MD5 a245951bb92bf8ecdc4356071fd83fcb
BLAKE2b-256 93caefac5226c19c0cb0161db958575e7e7001bb65ba1964a697a272acae3c53

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 713b489f9a638087e2bb680568630706218157c406ff47cbb0228d0e9cc8f4d5
MD5 140eabe81ab5b3ee94407bcdd5dacd18
BLAKE2b-256 ec26db7dd26b37872a616c6ca26466008926c25db421733dd5b699ebee892ec9

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bf605341312f0258a15af1be340de73bc9406aa231d0483844715a217cd2262
MD5 f8c8cc79658e16fb43dcede32db02477
BLAKE2b-256 01bd43f4a75610700d456be84715b94acde9dc2e24291e89a4ed7b0301dea5fd

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5bbba7824e7ad2fba2b219fa37c676ea0e5c7792ad66eaf5573ff03b3db4af52
MD5 854810616ac193811b26d35975ca3c83
BLAKE2b-256 32882c661bb538b98fc43656a4a95763a6b1dc14e6d2e72a7165ecdc894c83f4

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 173e102f2d0adb85d09f0e20effb9d58f573da91ccaf356cd7070449d7aea575
MD5 ba967e053d18e1d6da6df978c3952190
BLAKE2b-256 d27f2140d4624ccdd638cde896944f6fc2785a1231cdbc2e4cdb5538d3e6f195

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 54864273654c87f58f8da66bbc96a9c87831a9ee9aee8d5947976539aaf6ae9f
MD5 3f520fc97d6b75c4d2edad012f6f636d
BLAKE2b-256 c75332c71b88db3ec63a2dd27d04be182983b1c6477a3020a265a92e89dad41c

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 38d5dcb0c261b5430b3492e064443b1ed12c5071b313768811ce36a47e54309c
MD5 29c492c130b4d0c7dcb8af7ee04b3c95
BLAKE2b-256 36bbaccfccb1c4fc1d00941b5fcce38ce78f2bb8095545b1f7a86c219e3fc3a4

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bd1ae5212ba2ef7858212d5a37f8e741ec49fd34340b296472af7ea38947286b
MD5 7cc8015a8fc472c2cbc4b3e3d5fa5cba
BLAKE2b-256 8eb5c9a01f9e716ac770bdb9814fb54e7e6ab2b8a1c6c1de1a3715f88688cfaf

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3427cf718352cc3cced5fe9e9795c2e20b548dba4dae565af6104bd47730e4e4
MD5 105b3aeded153a352259daa33e772e59
BLAKE2b-256 3bcc23c4fc9a463970d5ed3c289d4bf2ceb5a1004f7234a3862fb82abb3b07b9

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 19fddd8d473250923de898bdc5ce4e6d2683b88795c2ca54075cd263a64d94cc
MD5 386f7021257c2e6a63ea633547ea99e4
BLAKE2b-256 ffd647a3e28bd46f7e8231f7faa3b3cb4f11c6676b93d665de0f59fadd5eedf2

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 723297e5934af71f97392fd62e32e5a800107f1fd2a8b534c4b24190233ce18a
MD5 c546dd784c03df7e81066e7388885647
BLAKE2b-256 9f9e19174bcffa57bcc52c8b0cef36c58b046532c750938156156ac15ac0babf

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6789bc56e10ae70596f1275e9d52cbc6a233f52577cdcaeb9265183190aeace0
MD5 7a4f081ec2d7def91fd827d83000b84c
BLAKE2b-256 125b4fa9976d273ee2fd2722f67cb80caa2a474363cdccb91fee01eb7b6feefc

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 81128a45eb655feeffa3c32816d59b4e5d027bb9962f3060bce2d969accc8da1
MD5 4bb3c3b23048784c32259280c3056135
BLAKE2b-256 552f0d72e3c5c0ed1d81afa66f9832e490f9320a65ae08854174733b06477e5b

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 1424fc95591b7b4b2f9da70b14b0633bebeb12bb4ebe4daeffc52213976d1ca2
MD5 14efa559e843d31bb5bd80980c84d6ab
BLAKE2b-256 6a8902ca4af05470bd08b260b7c2fac61d85e19e79858ea25e72b65c23938518

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 47bf2e1f4bff308e1439c59a96e974e69802992af9c884332fdcf209424ea158
MD5 789ea1c60703bf61be6c4da1be4eab90
BLAKE2b-256 24872c07dae9b920fd32e52f41932ca3ac495e290e126325d395b5aa7af5cd45

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8cb42b00726d57d91f727908b9257caf7fbe104e1f2a223f42165d1066e735c2
MD5 dafa98ebae9c49790b40ecf9816c62c3
BLAKE2b-256 5102a882cc6ee15c8647497f303b88e2ca20170f8e68d9511293638f78b372b4

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6a8876298916c21252d0ce8543aa0832c9aa280e4e4fcfb14afac93624f2d80a
MD5 e60ffaa9d3d8762310ba33a5f56b0a0d
BLAKE2b-256 cbea857d31f5a9a16383d7f4d125eaf22b88809025aa382dc90a7a5f9cbe9e0b

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 92d0f7206af37c7ddeddff4979a244703d5ca92fd469b774cf8985289a9c3b31
MD5 d82d42983f7b19bf918b32cd89860c47
BLAKE2b-256 645269a3b1ffb09d8edd8e60b940a3c6e5af31809195a032b98e148f7603c25a

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e3bde76084919aa6b01c53b5e0b6a5218ad2f7bb0fb2a2e7bd73a98c223fd6d3
MD5 9dbf4e886470b3e3e74a8c4cd7d551f0
BLAKE2b-256 aca66448712619e11766a8eb51f3e5b0bd8dcc37185e0bcf4ef3f3be6f1c74fd

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 64bbc672e24d8712e7344f65ed83f8b9d2a49d39d7c8628c485fcc66fbd625ae
MD5 23afa49ac7c5dcb1349863c82e0bb0d9
BLAKE2b-256 f6c0f5663643fa8abd08fa542bc2fb87c6db919344531307e418e8d2a1fb507c

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8d72ae659fe8fa40b073a34976e0fc0124ffb9addd0e1800ed95770cb507eee3
MD5 8ec36936aa51230181eb44e837a78b25
BLAKE2b-256 edf5b8f1f9ee5160c46f95fd46682238dc043c5479afb21c75305fdcaf80673c

See more details on using hashes here.

File details

Details for the file nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nti.externalization-2.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60d14c3adbf8d74cc31ed6b3e36684d977974fb3a8ad3f13179f26cbcf01572c
MD5 e9ff7eae65f8432be36bece265e9296c
BLAKE2b-256 917b3392a15c47ec5ab259e8c76c29f4f38851b2861e48867e0bc8dc83d6e2f5

See more details on using hashes here.

Supported by

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