Skip to main content

Python package which provides access to the DraCor API.

Project description

PyDraCcor

PyDraCor is a Python package which provides access to the DraCor API.

Classes

  • DraCor

    Base class used to represent Drama Corpus entity. DraCor consists of Corpuses.

  • Corpus

    A class used to represent a Corpus of DraCor. Corpus (cal/ger/greek/rom/rus/shake/span/swe) consists of plays.

  • Play

    A class used to represent a Play of a Corpus. Play consists of Characters.

  • Character

    A class used to represent a Character of a Play.

Code examples

Dracor

  • Initialize a DraCor instance
    >>> dracor = DraCor()
    
  • Summary in a dictionary
    >>> dracor.summary()
    
  • Summary in a string
    >>> str(dracor)
    
  • DraCor info in a dictionary
    >>> dracor.dracor_info()
    
  • List available corpora in DraCor
    >>> dracor.corpora()
    >>> dracor.corpora(include='metrics')
    
  • List available corpora names in DraCor
    >>> dracor.corpora_names()
    
  • List available corpora titles in DraCor
    >>> dracor.corpora_titles()
    
  • Map X to Y
    >>> dracor.corpus_name_to_repository()
    >>> dracor.corpus_name_to_title()
    >>> dracor.corpus_name_to_uri()
    >>> dracor.play_title_to_corpus_name()
    >>> dracor.play_title_to_play_id()
    >>> dracor.play_name_to_corpus_name()
    >>> dracor.play_name_to_play_id()
    >>> dracor.play_id_to_play_title()
    >>> dracor.play_id_to_play_name()
    
  • Submit SPARQL queries with query parameter
    >>> dracor.sparql('SELECT * WHERE {?s ?p ?o} LIMIT 1')
    

Corpus

  • Initialize a Corpus instance
    >>> corpus = Corpus('rus')
    >>> corpus = Corpus('cal')
    ...
    
  • Summary in a dictionary
    >>> corpus.summary()
    
  • Summary in a string
    >>> str(corpus)
    
  • Authors' summary for a corpus
    >>> corpus.authors_summary()
    >>> corpus.authors_summary(num_of_authors=5)
    
  • String representation of authors_summary method
    >>> corpus.authors_summary_str()
    >>> corpus.authors_summary_str(num_of_authors=5)
    
  • Corpus info in a dictionary
    >>> corpus.corpus_info()
    
  • Get all corpus' play Xs
    >>> corpus.play_ids()
    >>> corpus.play_names()
    >>> corpus.play_titles()
    
  • Map play id to the X year
    >>> corpus.written_years()
    >>> corpus.premiere_years()
    >>> corpus.premiere_years()
    
  • List of metadata for all plays in a corpus
    >>> corpus.metadata()
    
  • Filter Plays of a Corpus Filters are equivalent to the django filters Possible relations: eq / ne / gt / ge / lt / le / contains / icontains / exact / iexact / in Possible fields: all the attributes that the Corpus instance contains
    >>> corpus.filter(written_year__eq=1913, network_size__lt=20)
    >>> corpus.filter(print_year__lt=1850, source__icontains='lib.ru', premiere_year__gt=1845)
    >>> corpus.filter(
        id__in=frozenset(f"rus000{num:03d}" for num in range(0, 250, 2)),
        subtitle__icontains='комедия',
        author__name__contains='Крылов'
    )
    >>> corpus.filter(name__contains='mysl')
    >>> corpus.filter(title__exact='Мысль')
    >>> corpus.filter(
        year_normalized__in=frozenset(['1935', '1936'])
        source_url__contains='lib'
    )
    >>> corpus.filter(wikidata_id__iexact='Q1989636')
    >>> corpus.filter(networkdata_csv_url__icontains='/andreyev-ne-ubiy/')
    >>> corpus.filter(authors__name__icontains='Бабель')
    

Play

  • Initialize a Play instance If play_id is not None, play_name and play_title are not considered If play_id is None AND play_name is not None, play_title is not considered If play_id is None AND play_name is None, play_title should not be None, otherwise ValueError is raised If play_id is None, automatic corpus detection is applied
    >>> play = Play('rus000160')
    >>> play = Play(play_id='rus000160')
    >>> play = Play(play_name='ostrovsky-dohodnoe-mesto')
    >>> play = Play(play_title='Доходное место')
    
  • Summary in a dictionary
    >>> play.summary()
    
  • Summary in a string
    >>> str(play)
    
  • Play info in a dictionary
    >>> play.play_info()
    
  • Get network metrics for a single play
    >>> play.metrics()
    
  • Get a list of characters of a play
    >>> play.get_cast()
    
  • Get X of a play
    >>> play.num_of_male_characters
    >>> play.num_of_female_characters
    >>> play.num_of_unknown_characters
    >>> play.tei
    >>> play.rdf
    >>> play.csv
    >>> play.gexf
    
  • Get spoken text of a play (excluding stage directions)
    >>> play.spoken_text()
    >>> play.spoken_text(gender='MALE')
    >>> play.spoken_text(gender='FEMALE')
    >>> play.spoken_text(gender='UNKNOWN')
    
  • Get spoken text for each character of a play
    >>> play.spoken_text_by_character()
    
  • Get all stage directions of a play
    >>> play.stage_directions()
    
  • Get all stage directions of a play including speakers
    >>> play.stage_directions_with_speakers()
    

Character

  • Initialize a Character instance
    >>> character = Character('yakov', 'rus000138')
    >>> character = Character('kraft', 'rus000137')
    ...
    
  • Summary in a dictionary
    >>> character.summary()
    
  • Summary in a string
    >>> str(character)
    

Installation

$ pip install dracor

Todos

  • write more methods
  • write more tests

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

pydracor-0.0.0.tar.gz (15.9 kB view details)

Uploaded Source

File details

Details for the file pydracor-0.0.0.tar.gz.

File metadata

  • Download URL: pydracor-0.0.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.9

File hashes

Hashes for pydracor-0.0.0.tar.gz
Algorithm Hash digest
SHA256 02bf1e41ac86e6cc063af00374ae7670d1b59b4862abf0120516146e86dba1a8
MD5 9de5832110fac9d3de595340bdbd4681
BLAKE2b-256 124a73648572ea3b39714658e5761de66c0800cfd55b9347f9c7c4a2686a6624

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page