Skip to main content

eee-project

Part of Ελληνικά Εκπαιδευτικά Εργαλεία (EEE) — Greek Language Educational Tools.

Same API for general Modern/Ancient Greek flavours, with the possibility of extending language coverage. Language codes follow ISO 639.

🔓 Open source:

💬 Community: https://telegram.me/eee_greek

Installation

pip install eee-project

# Install the backends you need:
pip install modern-greek-backend-eee
pip install unimorph-backend-eee
pip install ancient-greek-backend-eee

Development version (latest, from Codeberg) — for any of the above, replace with: pip install "<name> @ git+https://codeberg.org/EEE-project/<name>.git"

Requires Python 3.12+.

eee-project is a pure framework — no backends are bundled. Install the backend packages you need alongside it.

Development

make test                     # run all tests (quiet)
make test-v                   # run all tests (verbose)
make check                    # run ruff (curated rule set - see [tool.ruff.lint] in pyproject.toml)

Quick Start

Backends register themselves via entry points when installed, so inflect() finds them automatically:

import eee_project as eee

# Modern Greek (el) — requires modern-greek-backend-eee
eee.inflect("λύω",      {"Tense": "Pres", "Voice": "Act", "Person": "1", "Number": "Sing"}, "verb", language="el")  # → {"λύω"}
eee.inflect("γυναίκα", {"Gender": "Fem",  "Number": "Plur", "Case": "Gen"},                 "noun", language="el")  # → {"γυναικών"}

# Ancient Greek (grc) — requires ancient-greek-backend-eee
eee.inflect("λύω",  {"VerbForm": "Fin", "Tense": "Aor", "Voice": "Act", "Mood": "Ind", "Person": "1", "Number": "Sing"}, "verb", language="grc")  # → {"ἔλυσα"}
eee.inflect("θεός", {"Case": "Gen", "Number": "Sing", "Gender": "Masc"}, "noun", language="grc")  # → {"θεοῦ"}

language= is required unless backend names a single-language backend (e.g. backend="modern-greek" infers language="el").

Feature keys follow Universal Dependencies FEATS.

Named backends and chains

When multiple backends cover the same language, register them by name and configure a chain (e.g. try modern-greek first, fall back to unimorph). See docs/chains.md for the full chain API, stop="all" union mode, and hook extension points.

Greek diachronic coverage

Greek has a continuous documented history of ~3,500 years, with substantial morphological and phonological change across periods and dialects.

Variety Approx. dates Status
Mycenaean (Linear B) ~1490–1200 BCE Not covered
Arcado-Cypriot ~1100–300 BCE Not covered
Homeric/Epic 800–500 BCE Covered
Classical Attic 480–323 BCE Covered
Koine/Hellenistic 323 BCE–400 CE Covered
New Testament Greek ~50–100 CE Covered
Byzantine 400–1453 CE Partial
Katharevousa 1830–1976 CE Partial
Standard Demotic 1976–present Covered

The major alphabetic dialects (Attic, Ionic, Doric, Aeolic) share the same morphological paradigms and differ mainly in phonology and orthography; Ancient Greek support here follows Classical Attic conventions.

from ancient_greek_backend_eee import AncientGreekBackend

# Query the same lemma under different historical periods
epic  = AncientGreekBackend.for_period("epic")               # Homer
attic = AncientGreekBackend.for_period("attic")               # Classical Attic
koine = AncientGreekBackend.for_period("hellenistic_koine", "roman_koine")  # Septuagint + NT

# Epic verse allows the unaugmented aorist alongside the standard form;
# Attic and Koine require the augment.
form = {"VerbForm": "Fin", "Tense": "Aor", "Voice": "Act", "Mood": "Ind", "Person": "1", "Number": "Sing"}
epic.inflect("λύω", form, "verb")   # {'λῦσα', 'ἔλυσα'}
attic.inflect("λύω", form, "verb")  # {'ἔλυσα'}
koine.inflect("λύω", form, "verb")  # {'ἔλυσα'}

See each backend's own README for exact lexicon-level coverage within each period.

Examples

14 runnable scripts and notebooks in examples/ — verbs/nouns/adjectives for el and grc, UniMorph, named backends, chains, hooks, and interactive Marimo viewers. See examples/README.md for the full catalog and how to run each one.

API

Core functions: inflect() and inflect_traced() (shown in Quick Start above), list_lemmas()/list_lemmas_traced(), analyze()/analyze_traced() (reverse lookup), register_backend(), set_chain(), set_fallback_backend(), supported_languages(), language_info() — plus a slot-template system for building structured inflection tables, and three exception types (UnsupportedLanguageError, BackendLoadError, PosNotSupportedError) with chain-aware failure handling. Full signatures, the slot-template API, writing a new backend, and exception semantics: docs/api-reference.md.

Backends

Language Code Package
Modern Greek el modern-greek-backend-eee
Ancient Greek grc ancient-greek-backend-eee

unimorph-backend-eee adds a second, TSV-lookup rung for both Greek languages, plus several other languages (Latin, Russian, Spanish, Turkish, and 187 more on demand) — see its own README for bundled coverage and how it compares to the dedicated backends above.

Each backend's own README is the canonical source for its lexicon flavors, period/dialect coverage, lemma counts, and known limitations — modern-greek-backend-eee, ancient-greek-backend-eee, unimorph-backend-eee.

Release files for eee-project 1.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eee-project 1.11.1
File Size Uploaded
eee_project-1.11.1.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for eee-project 1.11.1
File Interpreter ABI Platform
eee_project-1.11.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.4 MB

Release files / eee_project-1.11.1.tar.gz

Download URL eee_project-1.11.1.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
7b7a5dad34200ba32ea1396152998ca6552fadfb1405d2c0c06255d37a8a4015
BLAKE2b-256 checksum
How to use checksums
d2e62c14bea08f42f000427cbac75bc2176605e98395134abb348ba416502b08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / eee_project-1.11.1-py3-none-any.whl

Download URL eee_project-1.11.1-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
67be8fb1f4dcb4d93f03965d4375e9200d37ca8cc441a1f13ec0da4c2ad2c983
BLAKE2b-256 checksum
How to use checksums
d7dd9ef99899e92e47e9689a6be8e1e954a4f02dbfd67a140f70677dc58984f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release history Release notifications | RSS feed

1.16.0

2 release files

1.15.0

2 release files

1.13.0

2 release files

This release

1.11.1 This release

2 release files

1.10.4

2 release files

1.10.3

2 release files

1.10.2

2 release files

1.10.1

2 release files

1.10.0

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.6.0

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page