Catalog PyPI
Back to packageRELEASE DETAILS

1.0.5

PyPI

aarc-entitlement

Create, parse and compare entitlements as specified by the AARC recommendations G002 and G069

Published19 Feb 2022
Direct dependencies1
Transitive dependenciesNot calculated

README

Version 1.0.5 documentation
AARC Entitlement Library
========================

This package provides python classes to create, parse and compare entitlements according
to the AARC recommendations G002 and G069.

Installation
------------
Install using pip::

    pip install aarc-entitlement

Documentation
-------------
The documentation is available at https://aarcentitlement.readthedocs.io.

The G002 recommendation can be found at https://aarc-community.org/guidelines/aarc-g002.

Examples
---------

Check if a user entitlement permits usage of a service
______________________________________________________
.. code-block:: python

    import aarc_entitlement

    # This entitlement is needed to use a service
    required = aarc_entitlement.G002("urn:geant:h-df.de:group:aai-admin")

    # This entitlement is held by a user who wants to use the service
    actual =   aarc_entitlement.G002("urn:geant:h-df.de:group:aai-admin:role=member")

    # Is the user permitted to use the service, because of its entitlement `actual`?
    permitted = actual.satisfies(required)
    # -> True here

    # Are the two entitlements the same?
    equals = required == actual
    # -> False here

..
    does not work on github:
    Other examples for entitlements and comparisions can be found in :download:`examples.py <../../examples.py>`

G069 Entitlement Normalization
______________________________
Starting with recommendation G069 the specification requires normalization of entitlements.
When using `AarcEntitlementG069` the library produces normalized representations.

.. code-block:: python

    import aarc_entitlement

    not_normalized = "UrN:NiD:ExAmPlE.oRg:group:Minun%20Ryhm%c3%a4ni"

    normalized = repr(aarc_entitlement.G069(not_normalized))
    # -> "urn:nid:example.org:group:Minun%20Ryhm%C3%A4ni"

Tests, Linting and Documentation
--------------------------------
Run tests for all supported python versions::

    # run tests, coverage and linter
    tox

    # build docs
    tox -e docs

    # After this, the documentation should be located at `doc/build/index.html`.


Packaging
---------
To upload a new package version to pypi use the Makefile::

    # build the package
    make dist

    # upload the package to pypi
    make upload


Funding Notice
--------------
The AARC project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement No 653965 and 730941.



Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 1

Native requirements
1 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
regex
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.6",
  "evaluation": "NOT_EVALUATED"
}
regexruntime

Distribution files

2 collected
aarc_entitlement-1.0.5-py2.py3-none-any.whl

bdist_wheel · 10.53 KB · Python py2.py3

Source file
aarc_entitlement-1.0.5.tar.gz

sdist · 25.46 KB · Python source

Source file

Repository

PENDING
kit-scc/aarcentitlement

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:01 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:9174baed97f25d6530fa00e56df5418b44f4ea2d833a243517e1fa11e49dacdb

Other collected versions

View all collected versions →