sruthi
sruthi is a client for python to make SRU requests (Search/Retrieve via URL).
Currently only SRU 1.2 is supported.
Table of Contents
Installation
sruthi is available on PyPI, so to install it simply use:
$ pip install sruthi
Usage
See the examples directory for more scripts.
searchretrieve operation
import sruthi
records = sruthi.searchretrieve('https://suche.staatsarchiv.djiktzh.ch/SRU/', query='Zurich')
for record in records:
# print fields from schema
print(record['reference'])
print(record['title'])
print(record['date'])
print(record['extra']['link']) # extra record data is available at the 'extra' key
# you can get more information at each step
import sruthi
# note: records is an iterator
records = sruthi.searchretrieve('https://suche.staatsarchiv.djiktzh.ch/SRU/', query='Human')
print(records.sru_version)
print(records.count)
for record in records:
print(record)
print(record['schema'])
The return value of searchretrieve is iterable, so you can easily loop over it. Or you can use indices to access elements, e.g. records[1] to get the second elemenet, or records[-1] to get the last one.
Even slicing is supported, so you can do things like only iterate over the first 5 elements using
for records in records[:5]:
print(record)
explain operation
import sruthi
info = sruthi.explain('https://suche.staatsarchiv.djiktzh.ch/SRU/')
print(info.server)
print(info.database)
print(info.index)
print(info.schema)
Schemas
sruthi does not make any assumptions about the record data schema. The data is provided as-is (as a flattend dict). sruthi has been tested with the following schemas:
- Dublin Core Record Schema (dc)
- MARCXML: The MARC 21 XML Schema (marcxml)
- ISAD(G): General International Standard Archival Description, Second edition (isad)
Release
To create a new release, follow these steps (please respect Semantic Versioning):
- Adapt the version number in
sruthi/__init__.py - Update the CHANGELOG with the version
- Create a pull request to merge
developintomaster(make sure the tests pass!) - Create a new release/tag on GitHub (on the master branch)
- The publication on PyPI happens via GitHub Actions on every tagged commit
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sruthi-0.1.2.tar.gz.
File metadata
- Download URL: sruthi-0.1.2.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e599192a6cebb1d4fcc6a2dc3304505e8955a8cbf8b82a6f79668d6cfadf653
|
|
| MD5 |
52548eb2bda56d18eed15097f6769a3c
|
|
| BLAKE2b-256 |
38b7edf5f644c8228b647f75df5fd185c1022f8a87cec28f0aa0c9fc68b74b71
|
File details
Details for the file sruthi-0.1.2-py3-none-any.whl.
File metadata
- Download URL: sruthi-0.1.2-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f84154d26c3042633f6266f72c45d96cbd2885f5f6f2e5dec95d8da0c2221cd
|
|
| MD5 |
f499f61fc21f1a7230d3b86669b008db
|
|
| BLAKE2b-256 |
66d98874ab19eb7ecb42687c7db18d32ba3dc1393cdc0a49501104a920481e75
|