This library uses finite-state grammars to automate Latin scansion, with an initial focus on the dactylic hexameters of Virgil.
The engine is released under an Apache 2.0 license. Please see LICENSE.txt for details.
Conda is recommended for a reproducible environment. Assuming
that Conda (either Miniconda or Anaconda) is available, the following command
creates the environment scansion
.
conda env create -f environment.yml
This only needs to be done once. The following command then activates the environment.
conda activate scansion
This second step needs to be repeated each time you start a new shell.
Compile the grammar assets:
make -j -C grammars
Generate the textproto library:
make -C latin_scansion
Install the Python library:
pip install -e .
Installation produces two command-line tools:
latin-scan
scans a document, generating a
human-readable
textproto
representation of document's scansion. Sample usage:
latin-scan --far grammars/all.far data/Aeneid/Aeneid01.txt data/Aeneid/Aeneid01.textproto
latin-validate
validates (and
optionally, canonicalizes) a textproto document scansion. Sample usage:
latin-validate data/Aeneid/Aeneid01.textproto
Run:
pytest tests