Skip to main content

IIIF Presentation API validation.

Project description

Tripoli: IIIF Document Validation
=================================

.. image:: https://travis-ci.org/DDMAL/tripoli.svg?branch=master
:target: https://travis-ci.org/DDMAL/tripoli

.. image:: https://coveralls.io/repos/github/DDMAL/tripoli/badge.svg?branch=master
:target: https://coveralls.io/github/DDMAL/tripoli?branch=master

Tripoli is a validator for documents conforming to the `IIIF
presentation API 2.1 <http://iiif.io/api/presentation/2.1/>`__. It makes
it easy to validate documents, apply provider specific heuristics, and
even correct documents while they are being validated.

Documentation
-------------

Detailed documentation is available at
http://tripoli.readthedocs.io/en/latest/

Installation
------------

Python 3.5+ is required to run Tripoli. You can install Tripoli using pip.

.. code:: bash

> pip install tripoli

Quick start
-----------

Once installed, it's easy to start validating. Tripoli can validate the
entire document, and will log informative errors and warnings with
helpful paths.

.. code:: python

>>> from tripoli import IIIFValidator

>>> iv = IIIFValidator()
>>> iv.validate(some_manifest)
Error: Field has no '@language' key where one is required. - data['metadata']['value']
Error: viewingHint 'pages' is not valid and not uri. - data['sequences']['canvases']['viewingHint']
Warning: logo SHOULD be IIIF image service. - data['logo']
Warning: manifest SHOULD have thumbnail field. - data['thumbnail']
Warning: Unknown key 'see_also' in 'manifest' - data['see_also']
Warning: ImageResource SHOULD have @id field. - data['sequences']['canvases']['images']['@id']


.. :changelog:

Release History
---------------

2.0.0 (2018-02-22)
++++++++++++++++++

Tripoli v2.0.0 is functionally equivalent to v1.2.2. The major version number is being incremented
to mirror the IIIF Presentation API version it supports. Tripoli v3 will only support Presentation
API v3.


1.2.1 (2017-10-11) / 1.2.2
++++++++++++++++++

**Improvements**

- Unit testing improvements and enhanced coverage
- Enhanced testing fixtures
- Travis-CI builds and Coveralls integration

**Bugfixes**

- Multiple sequences are now correctly validated.
- Canvas images are more thoroughly checked for their values.

NB: 1.2.2 is the same as 1.2.1, but incremented to try and address an issue with
distributing via PyPI.


1.2.0 (2017-05-04)
++++++++++++++++++

**Improvements**

- Configuration arguments for the basic IIIFValidator can now be passed in via kwargs
on the `__init__` function. A validator can now be instantiated with all its settings
in one line.

**Bugfixes**

- Web interface now specifically mentions that tripoli is for validating IIIF Manifests.

1.1.4 (2016-08-23)
++++++++++++++++++

**Bugfixes**

- Fixed an issue with the default values of REQUIRED_FIELDS (and other field sets)
being empty dicts instead of empty sets.

1.1.3 (2016-08-23)
++++++++++++++++++

**Bugfixes**

- A warning message regarding uncertain HTML tags has been fixed to include the name
of the tag.

1.1.2 (2016-08-22)
++++++++++++++++++

**Improvements**

- Added IIIF manifest test suite to tests, ensuring that each throws an error. A
number of new errors and warning have been added to this end.
- Faster hash algorithms for ValidatorLogEntries increasing overall performance.
- Added HISTORY.rst to track bugfixes and improvements.
- README.rst and HISTORY.rst will be automatically read into the setup.py long_description
field (idea taken from requests).

**Bugfixes**

- ``ViewingHint`` is now a common field which can be checked on any resource.
- ``startCanvas`` is now validated properly.
- ``Annotation`` no longer logs a warning if it has a ``@context`` field.
- ``ImageResource`` now must have ``@type`` 'dctypes:Image'.
- Presence of XML Comments or CDATA sections will cause an error to be logged.
- Fixed exception when ``IIIFValidator`` could not discern the ``@type`` of a resource.


1.1.1 (2016-08-18)
++++++++++++++++++

**Bugfixes**

- A bug was preventing ``descriptions`` from being validated in all resources.
This has been fixed.

1.1 (2016-08-18)
++++++++++++++++

**New Features**

- Added HTML validation. This will check that only fields which are allowed
to contain HTML have it, that the HTML is valid, and that only allowed tags
and attributes are included.
- Added indices in error and message paths. These indices make it easier to
figure out exactly which canvas is failing with an error (if indeed only a
few are failing).
- Added unique/non unique error aggregation. Using a ``unique_logging` property
on a ``IIIFValidator``, users can decide whether all errors and warnings will be
aggregated, or only unique ones. Here, unique means that only one instance of
each error/warning per resource will be saved (that is, if every canvas has error
A, then only the first instance of a canvas with error A will be saved).
- Added ``verbose`` property to ``IIIFValidatior``. When ``True``, every error and
warning will be logged immediatly to the screen when hit.

**Bugfixes**

- ``Annotations`` no longer log a warning when they are missing an ``@id`` field.


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

tripoli-2.0.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

tripoli-2.0.0-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file tripoli-2.0.0.tar.gz.

File metadata

  • Download URL: tripoli-2.0.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tripoli-2.0.0.tar.gz
Algorithm Hash digest
SHA256 6af87e1becf66b2b28b2fed0b4dec95366ca5875f9172a196898e56f4a68445b
MD5 80b177f8fdfbba201485b6c706f63e42
BLAKE2b-256 235ac5309d6b0ed239927885cec32e6e66cc15dfacffc2df1958a3b7f09c788a

See more details on using hashes here.

File details

Details for the file tripoli-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tripoli-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b85ad96e7ed0233779142c9464a973df4018bd9cb3eec2c8629cd6a2c6ff45a4
MD5 f34c8d8650eb6ac033ec73ba4c97d572
BLAKE2b-256 90fd062d49fc455bd398234163c3c2d6b0c914f5737fd2b654d8e98b5bd0548a

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