Python package which wraps methods from pydracor-base to interact with the DraCor API.
Project description
pydracor
pydracor is a Python package which provides access to the DraCor API. It is based on pydracor-base which was automatically generated using OpenAPITools.
Acknowledgment:
The development of this package was supported by Computational Literary Studies Infrastructure (CLS INFRA). CLS INFRA has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 101004984.
Installation
pip install pydracor
Classes
- DraCorAPI
Base class used to represent the Drama Corpus entity with which Corpus and Play are created.
- Corpus
A class with which the
corpora/{corpusname}endpoints can be requested - Play
A class with which the
corpora/{corpusname}/plays/{playname}endpoint can be requested - DTS
A class with which the
dtsendpoints can be requested - Wikidata
A class with which the
wikidataendpoints can be requested
Code examples
Import all classes
from pydracor import DraCorAPI, Corpus, Play, Wikidata, DTS
Dracor
-
Initialize a DraCor instance
dracor = DraCorAPI()
-
Initialize a local DraCor instance by setting the host
dracor = DraCor(host="http://localhost:8088/api/v1")
-
Get summary as an Info object (
/info)dracor.get_info()
-
Get the list of available corpora in DraCor (
/info/copora) and get namescorpora = dracor.get_corpora() corpora_metrics = dracor.get_corpora(include='metrics') corpora_names = [corpus.name for corpus in corpora]
-
Get the resolved id for a play (
/id/{id})dracor.get_resolve_play_id("als000001")
-
Get the plays with characters by wikidata id
dracor.get_plays_with_character_by_id("Q131412")
Corpus
-
Initialize a Corpus instance with the DraCor class (
/corpora/{corpusname})corpus = dracor.get_corpus('rus')
-
Corpus info as dictionary
corpus.to_dict()
-
Access corpus attributes, plays as a list of PlayInCorpus objects
corpus.name corpus.plays
-
Extract all play ids from the corpus
play_ids = [play.id for play in corpus.plays]
-
Filter plays: normalized year after 1800
plays_after_1800 = [play for play in corpus.plays if play.year_normalized > 1800]
-
Get list of metadata for all plays in a corpus (
/corpora/{corpusname}/metadata)metadata = corpus.metadata()
-
Filter plays: Number of Acts more than five
plays_more_than_five_acts = [play for play in metadata if play.num_of_acts > 5]
-
Convert metadata to DataFrame
import pandas as pd play_metadata_df = pd.DataFrame([play_metadata.to_dict() for play_metadata in metadata])
-
Get metadata as csv (
/corpora/{corpus}/metadata/csv)metadata_csv = corpus.get_metadata_csv()
-
Create Play in corpus (
corpora/{corpusname}/plays/{playname})play = corpus.get_play("gogol-revizor")
Play
-
Initialize a Play instance by corpus name and play name (
corpora/{corpusname}/plays/{playname})play = dracor.get_play("ger","gengenbach-der-nollhart")
-
Extract summary in a dictionary
play.to_dict()
-
Access Play attributes
play.normalized_genre play.characters
-
Get and access network metrics for a single play (
corpora/{corpusname}/plays/{playname}/metrics)metrics = play.get_metrics() metrics.average_degree
-
Get a list of characters of a play (
corpora/{corpusname}/plays/{playname}/characters)characters = play.get_characters()
-
Convert character list to DataFrame
import pandas as pd df = pd.DataFrame([character.to_dict() for character in characters])
-
Get a list of characters of a play as csv (
corpora/{corpusname}/plays/{playname}/characters/csv)play.get_characters_csv()
-
Get networkdata of a play in different formats (
corpora/{corpusname}/plays/{playname}/networkdata/{graphml, gexf, csv})play.get_networkdata("graphml") play.get_networkdata("gexf") play.get_networkdata("csv")
-
Get relations of a play in different formats (
corpora/{corpusname}/plays/{playname}/relations/{graphml, gexf, csv})play.get_relations("graphml") play.get_relations("gexf") play.get_relations("csv")
-
Get spoken text of a play (excluding stage directions) (
corpora/{corpusname}/plays/{playname}/spoken-text)play.get_spoken_text() play.get_spoken_text(sex='MALE') play.get_spoken_text(relation='siblings')
-
Get spoken text for each character of a play (
corpora/{corpusname}/plays/{playname}/spoken-text-by-character)play.get_spoken_text_by_character()
-
Get stage directions of a play (
corpora/{corpusname}/plays/{playname}/stage-directions)play.get_stage_directions()
-
Get stage directions and speaker text of a play (
corpora/{corpusname}/plays/{playname}/stage-directions-with-speakers)play.get_stage_directions_with_speakers()
DTS (Distributed Text Services)
-
Initialize a DTS instance
dts = DTS()
-
Get Entrypoint of the DraCor DTS implementation (
/dts)dts.get_dts()
-
Get the list of the available collections of a corpus (
/dts/collection)dts.get_collection("rus")
-
Use navigation endpoint of DTS (
/dts/navigation)dts.get_navigation("rus000160", "body/div[1]") dts.get_navigation("rus000160", start="body/div[2]/div[1]", end="body/div[2]/div[2]")
-
Use document endpoint of DTS (
/dts/document)dts.get_document("rus000160", "body/div[1]") dts.get_document("rus000160", start="body/div[2]/div[1]", end="body/div[2]/div[2]")
Wikidata
-
Initialize a Wikidata instance
wikidata = Wikidata()
-
Get author information by WikidataID
author_info = wikidata.get_author_info("Q34628")
-
Get Wikidata Mix'n'match information as CSV
wikidata_mixnmatch = wikidata.get_mixnmatch()
License
MIT
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
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 pydracor-3.0.2.tar.gz.
File metadata
- Download URL: pydracor-3.0.2.tar.gz
- Upload date:
- Size: 72.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ffe229db4b3b0c24772331adfc84d27bf639721df15ee3d7a28ef5b3d6289f8
|
|
| MD5 |
8b6813d9b218847328eef281ec6d9a5b
|
|
| BLAKE2b-256 |
426d8557c603651678212ed5c0093a83fa568337dc1c27212a59d9e32c7f2fcd
|
File details
Details for the file pydracor-3.0.2-py3-none-any.whl.
File metadata
- Download URL: pydracor-3.0.2-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d91ceb98bf68ef8cda8e0a55b742ddc23f788e684662dfadbeb2c764d3955bee
|
|
| MD5 |
0dd627e738b651d023f5f8da98de04a9
|
|
| BLAKE2b-256 |
cbb5d09e76bbcad086953c26ec1dcc24a47a6c5b17b2d256636c869ff4d690a2
|