Skip to content
Text processing, data extraction, and rendering library for Shakespearean text.
Python HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

iambic: Data extraction and rendering library for Shakespearean text. 📜

image image image image image codecov Code style: black Netlify Status

Let computers do the hard work for you! iambic provides:

  1. The most accurate method for counting lines automatically.
  2. Automatically track which characters are speaking in any scene.
  3. Deterministic, repeatable results, with the ability to store your data as JSON with strictly defined schema for passing over the wire or storing locally or in a NoSQL database between runtimes.


In order to install the latest version, simply pip3 install -U iambic.

This library requires Python 3.7 or greater.

What is it?

iambic was originally envisioned as a tool for translating Shakespearean text into actionable information, i.e.:

  1. How many lines are in this particular play?
  2. How many lines does a given character speak in this play?
  3. Which characters speak, in which scenes and acts?

As a result of the implementation, this tool can be applied to any body of text which adhere's to its parsing syntax.

The Schema

The full schema specification has been written in JSON Schema 7.0 and can be found here


The full documentation is available at

How to Contribute

  1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
  2. Create a branch on Github for your issue or fork the repository on GitHub to start making your changes to the master branch.
  3. Write a test which shows that the bug was fixed or that the feature works as expected.
  4. Send a pull request and bug the maintainer until it gets merged and published. :)
You can’t perform that action at this time.