Skip to main content

Python package for interacting with MPG.PuRe

Project description

Synopsis

This is a Python package for interacting with MPG.PuRe via the PubMan REST API.

Installation

You can simply install this package via PyPI:

pip install pybman

… or by cloning the repository:

git clone https://github.com/herreio/pybman.git
cd pybman

Documentation

A minimal documentation can be found on Read the Docs.

Usage

Launch the Python interpreter and start by importing the necessary modules:

from pybman import Client
from pybman import extract

# initialize client
cl = Client()

# retrieve data of specific context
ctx = cl.get_data(ctx_id="ctx_924547")

# number of records in this context
num_records = ctx.num

# access records via index
item = ctx.records[0]

# get genre from item ...
genre = extract.genre_from_item(item)
print("GENRE:", genre)

# ... or get genres and associated items from context
genres = ctx.get_genres()

# list all genres used in this context
list(genres.keys())

# get all articles (list of item IDs) from context
articles = genres['ARTICLE']

# get data of item (article) by id
item = ctx.get_item(articles[0])

# get title from item
title = extract.title_from_item(item)
print("TITLE:", title)

# get publication date from item
date = extract.date_from_item(item)
print("PUBLISHED:", date)

# get creators (persons) from item
persons = extract.persons_from_item(item)
for person in persons:
    role = extract.role_from_creator(person)
    first_name, last_name = extract.persons_name_from_creator(person)
    id_val, id_type = extract.persons_id_from_creator(person)
    print(role+':', first_name, last_name, '('+ id_val +')')

Beside data retrieval and browsing Pybman also allows to update items! Because this process requires certain rights, you have to provide credentials. The easiest way is to create a secret.json file with your PuRe login (userName:userPassword) and hand in the path pointing to it when creating the client instance. (Please use a different location for storing the secret.json-file than the one in this repo as it will be tracked by git or alternatively tell git before editing the file to not take care of your changes by running the command git update-index --assume-unchanged conf/secret.json.)

# intialize client instance (login)
cl_auth = Client(secret="./conf/secret.json")

# retrieve context you are allowed to modify
ctx = cl_auth.get_data(ctx_id="ctx_924547")

# choose item to change
item = ctx.records[0]

# change title (string strip)
title = extract.title_from_item(item)
title = title.strip()
item['data']['metadata']['title'] = title

# get identifier from item
identifier = extract.idx_from_item(item)

# comment on the changes
comment = 'delete unnecessary white space'

# update data in repository
cl_auth.update_data(identifier, item['data'], comment)

# to change values in collection of items use inspector class
from pybman import Inspector
from pybman import DataSet

# create data set of released items
ctx_released = DataSet(data_id="ctx_924547_released", raw=ctx.get_items_released())

# create inspector instance of all released items from context
inspector = Inspector(cl_auth, ctx_released.records)

# strip title strings, i.e. remove leading and trailing white spaces
titles = inspector.clean_titles()
print("successfully cleaned", titles, "titles!")

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

pybman-2019.9.15.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

pybman-2019.9.15-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file pybman-2019.9.15.tar.gz.

File metadata

  • Download URL: pybman-2019.9.15.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.19.9 CPython/3.6.5

File hashes

Hashes for pybman-2019.9.15.tar.gz
Algorithm Hash digest
SHA256 da38e24ac0bfdebe37e10e97a3dfd7102f6435d3d1ab02db8fff50fd0111bbd9
MD5 ed68cd9d2ce60efc92a39652d4140672
BLAKE2b-256 913d10193c2a5a34a08b3d49023d148e61cad513109a383e32fa8168ecd11cd6

See more details on using hashes here.

File details

Details for the file pybman-2019.9.15-py3-none-any.whl.

File metadata

  • Download URL: pybman-2019.9.15-py3-none-any.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.18.4 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.19.9 CPython/3.6.5

File hashes

Hashes for pybman-2019.9.15-py3-none-any.whl
Algorithm Hash digest
SHA256 f6ddd46cf4b56fb827dd70802a6323ed6f9c3ab62cfd6ed811548bc90fd6a896
MD5 24d8fac8d7d6e3a1512efc630d72f932
BLAKE2b-256 e011610d28d18ee54dc313c46af9d6070b0c05bfc75d82e80a98fe2c13b725cc

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