Metadata-Version: 2.4
Name: nti.ntiids
Version: 1.1.0
Summary: Semantic tag: URIs for objects, including resolution
Home-page: https://github.com/OpenNTI/nti.ntiids
Author: Jason Madden
Author-email: jason@nextthought.com
License: Apache
Keywords: ids
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Framework :: Zope3
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.10
License-File: LICENSE
Requires-Dist: nti.externalization
Requires-Dist: nti.schema
Requires-Dist: repoze.lru
Requires-Dist: zope.component
Requires-Dist: zope.hookable
Requires-Dist: zope.i18nmessageid
Requires-Dist: zope.interface
Requires-Dist: zope.schema
Requires-Dist: zope.security
Provides-Extra: test
Requires-Dist: nti.testing; extra == "test"
Requires-Dist: zope.dottedname; extra == "test"
Requires-Dist: zope.testrunner; extra == "test"
Requires-Dist: coverage; extra == "test"
Provides-Extra: docs
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: repoze.sphinx.autointerface; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

============
 nti.ntiids
============

.. image:: https://travis-ci.org/NextThought/nti.ntiids.svg?branch=master
   :target: https://travis-ci.org/NextThought/nti.ntiids

.. image:: https://coveralls.io/repos/github/NextThought/nti.ntiids/badge.svg?branch=master
   :target: https://coveralls.io/github/NextThought/nti.ntiids?branch=master

.. image:: https://readthedocs.org/projects/ntintiids/badge/?version=latest
   :target: https://ntintiids.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

This package provides support for semantic URIs for objects using the
`tag URI scheme <https://en.wikipedia.org/wiki/Tag_URI_scheme>`_.
These tag URIs are used to look up objects in an application, usually
independent of their traversal path. These URIs, structured in a
particular way, are called NTIIDs. When represented as strings, they
use the Python text (unicode) type.

In the ``specific`` part of the URI, each NTIID includes a type. A
type is essentially a namespace in which the rest of the specific part
is to be interpreted. A set of known types are defined in
``nti.ntiids.ntiids``, as are functions to parse and generate NTIIDs.

The set of types is extensible through ``zope.component``
registrations for important interfaces like
``nti.ntiids.interfaces.INTIIDResolver``, which is registered by name
for specific types of NTIIDs. No resolvers are provided by this package.


The package ``nti.ntiids.oids`` integrates with
``nti.externalization`` and serves as the hook used for external
identifiers. These are derived from persistent ZODB object identifiers
("oid") with support for multiple databases (a multi-ZODB).


=========
 Changes
=========


1.1.0 (2026-07-02)
==================

- Add support for Python 3.14 and 3.15.
- Drop support for PyPy.


1.0.0 (2024-11-12)
==================

- Drop support for Python < 3.10.
- Add support for Python up to 3.13.
- Use native namespace packages.


0.0.1 (2020-06-18)
==================

- First public PyPI release.

- Add support for Python 3.
