Skip to main content

Django app for IIIF Presentation book-like content

Project description

Django application to index and display IIIF Manifests for books

Unit Tests status Code Coverage PyPI - Python Version PyPI - Django Version Sphinx Docs build status

djiffy is intended to be a reusable Django application for working with digitized book-like content provided via IIIF Presentation manifests. This is an alpha version and it does not yet support the full IIIF Presentation specification.

Code documentation is available at https://princeton-cdh.github.io/djiffy/

Installation

Use pip to install:

pip install djiffy

You can also install from GitHub. Use a branch or tag name, e.g. @develop or @1.0, to install a specific tagged release or branch:

pip install git+https://github.com/Princeton-CDH/djiffy.git@develop#egg=djiffy

Configuration

Add djiffy to installed applications and make sure that django.contrib.humanize is also enabled:

INSTALLED_APPS = (
    ...
    'django.contrib.humanize',
    'dal',
    'dal_select2',
    'djiffy',
    ...
)

Include the default djiffy urls at the desired base url with the namespace djiffy:

urlpatterns = [
    ...
    url(r'^iiif-books/', include('djiffy.urls', namespace='djiffy')),
    ...
]

Run migrations to create database tables:

python manage.py migrate

If you are need to use djiffy to access manifests that require an authorization token, use DJIFFY_AUTH_TOKENS in your project settings to configure each domain that requires an auth token. The configuration should be formatted like this:

DJIFFY_AUTH_TOKENS = {
    'example.com': 'myauthtoken',
}

Usage

Import IIIF content using the import_manifest manage command. This command can take an IIIF Collection or single Manifest, via local file or URL. Imported content can be viewed in Django admin.:

python manage.py import_manifest http://url.for/iiif/manifest
python manage.py import_manifest /path/to/local/collection

Development instructions

This git repository uses git flow branching conventions.

Initial setup and installation:

  • recommended: create and activate a python 3.9 virtualenv:

    virtualenv djiffy -p python3.9
    source djiffy/bin/activate
  • pip install the package with its python dependencies:

    pip install -e .

Upgrading to v1.0.0

If you have used any version of djiffy prior to v1.0.0, then it is required to upgrade to v0.9.2 first, and run all migrations on your Django project. The Django project must be running Django version 3.2 at this point.

After you have run those migrations, you can upgrade to any Django version 3.2+, and install djiffy v1.0.0.

Unit Testing

Unit tests are written with py.test but use some Django test classes for convenience and compatibility with django test suites. Running the tests requires a minimal settings file for Django required configurations.

  • Copy sample test settings and add a SECRET_KEY:

    cp ci/testsettings.py testsettings.py
  • To run the tests, either use the configured setup.py test command:

    python setup.py test
  • Or install test requirements and use py.test directly:

    pip install -e '.[test]'
    pytest

Documentation

Documentation is generated using sphinx. To generate documentation, first install development requirements:

pip install -r dev-requirements.txt

Then build documentation using the customized make file in the docs directory:

cd sphinx-docs
make html

As of v0.7.3, documentation is automatically built with GitHub Actions and published using GitHub pages.

Adding license images

When adding new license image SVG files to this repo, add id="licenseimg" to the <svg> element of each. This allows djiffy users to embed the SVG inline with a <use> tag, with its href attribute pointing to #licenseimg.

If the image will need to be recolored for different backgrounds, as in the case of the rightsstatement_org/ SVG icons, you can enable this for up to two tones in each SVG. To do this, set fill attributes on paths to fill="inherit" (controlled by the fill CSS property) or fill="currentColor" (controlled by the color CSS property).

License

djiffy is distributed under the Apache 2.0 License.

©2024 Trustees of Princeton University. Permission granted via Princeton Docket #20-3618 for distribution online under a standard Open Source license. Ownership rights transferred to Rebecca Koeser provided software is distributed online via open source.

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

djiffy-1.0.0.tar.gz (374.3 kB view details)

Uploaded Source

Built Distribution

djiffy-1.0.0-py3-none-any.whl (444.2 kB view details)

Uploaded Python 3

File details

Details for the file djiffy-1.0.0.tar.gz.

File metadata

  • Download URL: djiffy-1.0.0.tar.gz
  • Upload date:
  • Size: 374.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for djiffy-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c973e716b814ca64f33186394b4729a8316a500ac4af9a3b4c3067b5d6d9cc28
MD5 ce9d7d98e8325dc23fd714c74dce6ba3
BLAKE2b-256 950d78207d45658bc0d8f1dad24c526613774132c68c126b0317840a34807048

See more details on using hashes here.

Provenance

The following attestation bundles were made for djiffy-1.0.0.tar.gz:

Publisher: python-publish.yml on Princeton-CDH/djiffy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file djiffy-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: djiffy-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 444.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for djiffy-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 163ede082beb45a8fabd5adbf6d17e9a8e1b7cb69035a946ea81a4ab8f3a896a
MD5 9f5e9613e33989315e24f9bb2fce1b1b
BLAKE2b-256 bc35e1ef502c2bf1272a0d8c839876f3c11ad667de2f889de0f62aacd82a5efe

See more details on using hashes here.

Provenance

The following attestation bundles were made for djiffy-1.0.0-py3-none-any.whl:

Publisher: python-publish.yml on Princeton-CDH/djiffy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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