This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Tripoli is a validator for documents conforming to the IIIF presentation API 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

You can install Tripoli using pip.

> 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.

>>> 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']

Release History

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.
Release History

Release History

1.1.4

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
tripoli-1.1.4-py3-none-any.whl (33.4 kB) Copy SHA256 Checksum SHA256 3.5 Wheel Aug 23, 2016
tripoli-1.1.4.tar.gz (19.6 kB) Copy SHA256 Checksum SHA256 Source Aug 23, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting