Python client for Thoth's APIs
Project description
Python client for Thoth's APIs. This release supports the Thoth 1.0.0 GraphQL schema and uses personal access tokens for authenticated GraphQL requests.
Usage
Install
Install is either via pip or cloning the repository.
From pip:
python3 -m pip install thothlibrary==1.1.2
Or from the repo:
git clone git@github.com:thoth-pub/thoth-client.git
cd thoth-client
pip3 install -r ./requirements.txt
GraphQL Usage
from thothlibrary import ThothClient
thoth = ThothClient()
thoth.set_token("your-pat")
print(thoth.works())
CLI GraphQL Usage
Set THOTH_PAT for authenticated commands such as mutations.
python3 -m thothlibrary.cli contribution --contribution_id=29e4f46b-851a-4d7b-bb41-e6f305fc2b11
python3 -m thothlibrary.cli contributions --limit=10
python3 -m thothlibrary.cli contribution_count
python3 -m thothlibrary.cli contributor --contributor_id=e8def8cf-0dfe-4da9-b7fa-f77e7aec7524
python3 -m thothlibrary.cli contributors --limit=10
python3 -m thothlibrary.cli contributor_count --search="Vincent"
python3 -m thothlibrary.cli institution --institution_id=194614ac-d189-4a74-8bf4-74c0c9de4a81
python3 -m thothlibrary.cli institutions --limit=10
python3 -m thothlibrary.cli funding_count
python3 -m thothlibrary.cli funding --funding_id=5323d3e7-3ae9-4778-8464-9400fbbb959e
python3 -m thothlibrary.cli fundings --limit=10
python3 -m thothlibrary.cli imprint --imprint_id=78b0a283-9be3-4fed-a811-a7d4b9df7b25
python3 -m thothlibrary.cli imprints --limit=25 --offset=0 --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b" "9c41b13c-cecc-4f6a-a151-be4682915ef5"]'
python3 -m thothlibrary.cli imprint_count --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b" "9c41b13c-cecc-4f6a-a151-be4682915ef5"]'
python3 -m thothlibrary.cli issue --issue_id=6bd31b4c-35a9-4177-8074-dab4896a4a3d
python3 -m thothlibrary.cli issues --limit=10
python3 -m thothlibrary.cli issue_count
python3 -m thothlibrary.cli language --language_id=c19e68dd-c5a3-48f1-bd56-089ee732604c
python3 -m thothlibrary.cli languages --limit=10 --language_codes=CHI
python3 -m thothlibrary.cli language_count --language_codes=CHI
python3 -m thothlibrary.cli price --price_id=818567dd-7d3a-4963-8704-3381b5432877
python3 -m thothlibrary.cli prices --limit=10 --currency_codes=GBP
python3 -m thothlibrary.cli price_count --currency_codes=GBP
python3 -m thothlibrary.cli publication --publication_id=27b7bdab-e9e5-4220-811e-1f370861f5e1
python3 -m thothlibrary.cli publications --limit=10 --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b"]'
python3 -m thothlibrary.cli publication_count --publication_types="HARDBACK"
python3 -m thothlibrary.cli publisher --publisher_id=85fd969a-a16c-480b-b641-cb9adf979c3b
python3 -m thothlibrary.cli publishers --limit=10 --order='{field: PUBLISHER_ID, direction: ASC}' --offset=0 --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b" "9c41b13c-cecc-4f6a-a151-be4682915ef5"]'
python3 -m thothlibrary.cli publisher_count --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b" "9c41b13c-cecc-4f6a-a151-be4682915ef5"]'
python3 -m thothlibrary.cli series --series_id=d4b47a76-abff-4047-a3c7-d44d85ccf009
python3 -m thothlibrary.cli serieses --limit=3 --search="Classics"
python3 -m thothlibrary.cli series_count --series_types=BOOK_SERIES
python3 -m thothlibrary.cli subject --subject_id=1291208f-fc43-47a4-a8e6-e132477ad57b
python3 -m thothlibrary.cli subjects --limit=10 --subject_types=BIC
python3 -m thothlibrary.cli subject_count --subject_types=THEMA
python3 -m thothlibrary.cli supported_versions
python3 -m thothlibrary.cli update_cover --doi="https://doi.org/10.11647/OBP.0278" --url="https://cdn.openbookpublishers.com/covers/10.11647/obp.0278.jpg"
python3 -m thothlibrary.cli work --doi="https://doi.org/10.11647/OBP.0222"
python3 -m thothlibrary.cli work --work_id="e0f748b2-984f-45cc-8b9e-13989c31dda4"
python3 -m thothlibrary.cli works --limit=10 --order='{field: PUBLICATION_DATE, direction: DESC}' --work_status=ACTIVE --work_types=MONOGRAPH --offset=1 --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b"]'
python3 -m thothlibrary.cli work_count --publishers='["85fd969a-a16c-480b-b641-cb9adf979c3b"]'
REST Usage
from thothlibrary import ThothRESTClient
client = ThothRESTClient()
print(client.formats())
CLI REST Usage
python3 -m thothlibrary.rest_cli formats
python3 -m thothlibrary.rest_cli formats --return_json
python3 -m thothlibrary.rest_cli work onix_3.0::project_muse e0f748b2-984f-45cc-8b9e-13989c31dda4
Test Suite
The GraphQL test suite is focused on the retained 1.0.0 client surface under thothlibrary/thoth-1_0_0/tests.
The export API client is covered by focused tests under thothlibrary/tests.
Project details
Release history Release notifications | RSS feed
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 thothlibrary-1.1.2.tar.gz.
File metadata
- Download URL: thothlibrary-1.1.2.tar.gz
- Upload date:
- Size: 29.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c75085e6800ff0ebbd2733ee028c7e4fb2f51f49f1b3ef11cb783a1f623a3935
|
|
| MD5 |
bed14c30b0ba32c4db1c130f1f411c59
|
|
| BLAKE2b-256 |
cccbbce8cc26b52500e481fbaa91c7d16456d97874a52c7aa29d4cf4380cf4ae
|
Provenance
The following attestation bundles were made for thothlibrary-1.1.2.tar.gz:
Publisher:
publish-to-pypi.yml on thoth-pub/thoth-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thothlibrary-1.1.2.tar.gz -
Subject digest:
c75085e6800ff0ebbd2733ee028c7e4fb2f51f49f1b3ef11cb783a1f623a3935 - Sigstore transparency entry: 1459456726
- Sigstore integration time:
-
Permalink:
thoth-pub/thoth-client@9de5ea3799e7fd8e6f824498fe00835c62a8a2bf -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/thoth-pub
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9de5ea3799e7fd8e6f824498fe00835c62a8a2bf -
Trigger Event:
release
-
Statement type:
File details
Details for the file thothlibrary-1.1.2-py3-none-any.whl.
File metadata
- Download URL: thothlibrary-1.1.2-py3-none-any.whl
- Upload date:
- Size: 33.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68df5ba4636abc3669db2893052ffca3c1e60894517592779978544e272f4c27
|
|
| MD5 |
76959cd2f9c357693d1e28ca89d5de16
|
|
| BLAKE2b-256 |
018d745372caf0edf8095fba1314751c42572bf665ea30e58c452e4a5453d555
|
Provenance
The following attestation bundles were made for thothlibrary-1.1.2-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on thoth-pub/thoth-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thothlibrary-1.1.2-py3-none-any.whl -
Subject digest:
68df5ba4636abc3669db2893052ffca3c1e60894517592779978544e272f4c27 - Sigstore transparency entry: 1459456913
- Sigstore integration time:
-
Permalink:
thoth-pub/thoth-client@9de5ea3799e7fd8e6f824498fe00835c62a8a2bf -
Branch / Tag:
refs/tags/v1.1.2 - Owner: https://github.com/thoth-pub
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@9de5ea3799e7fd8e6f824498fe00835c62a8a2bf -
Trigger Event:
release
-
Statement type: