Metadata-Version: 2.1
Name: anchorpoint
Version: 0.6.0
Summary: Text substring selectors for anchoring annotations
Home-page: https://github.com/mscarey/anchorpoint
Author: Matt Carey
Author-email: matt@authorityspoke.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/mscarey/anchorpoint/issues
Project-URL: Documentation, https://anchorpoint.readthedocs.io/en/latest/
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: Free To Use But Restricted
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: English
Requires-Python: >=3.8
Description-Content-Type: text/x-rst

Anchorpoint
===========

A Python library for anchoring annotations with text substring selectors.

.. image:: https://img.shields.io/badge/open-ethical-%234baaaa
    :target: https://ethicalsource.dev/licenses/
    :alt: An Ethical Open Source Project

.. image:: https://coveralls.io/repos/github/mscarey/anchorpoint/badge.svg?branch=master
    :target: https://coveralls.io/github/mscarey/anchorpoint?branch=master
    :alt: Test Coverage Percentage

.. image:: https://circleci.com/gh/mscarey/anchorpoint.svg?style=svg
    :target: https://circleci.com/gh/mscarey/anchorpoint
    :alt: CircleCI Status

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

Anchorpoint supplies TextQuoteSelector and TextPositionSelector
classes based on the Web Annotation Data Model, which is
a `W3C Recommendation`_. Anchorpoint includes helper methods
for switching between selector types, and
a `pydantic`_ schema for serialization. Anchorpoint is used
by `Legislice`_ for referencing laws such as statutes, and
by `AuthoritySpoke`_ for referencing judicial opinions.

`API Documentation`_ is available on readthedocs.

Anchorpoint relies on `python-ranges`_ to perform set operations on spans of text.

Related Packages
~~~~~~~~~~~~~~~~

In Javascript, try the `Text Quote Anchor`_ and `Text Position Anchor`_ packages.

In Python try python-ranges_, which is the basis for much of the TextPositionSelector class's behavior.

.. _W3C Recommendation: https://www.w3.org/TR/annotation-model/
.. _pydantic: https://pydantic-docs.helpmanual.io/
.. _Legislice: https://github.com/mscarey/legislice
.. _AuthoritySpoke: https://authorityspoke.readthedocs.io
.. _API Documentation: https://anchorpoint.readthedocs.io/en/latest/
.. _python-ranges: https://github.com/Superbird11/ranges
.. _Text Quote Anchor: https://www.npmjs.com/package/dom-anchor-text-quote
.. _Text Position Anchor: https://www.npmjs.com/package/dom-anchor-text-position

