Morphkit is a Python toolkit for Greek morphological analysis and tag similarity comparison. It uses the betacode library, the API of Morpheus (e.g., running in a Docker virtualisation environment) and a porting of the Sandborg-Petersen morphological decoder.
In v1.0.0, Morphkit should be understood first as a research tool. It acts as a semantic translation layer between two incompatible morphological systems: Morpheus output on the one hand, and the SP / N1904-TF conventions used in the Nestle1904 Text-Fabric workflow on the other. The initial release is therefore tightly bound to that project environment and should not be read as a claim that Morphkit is a general-purpose standalone morphology package.
Documentation
The documentation site is versioned. The stable release docs live at tonyjurg.github.io/morphkit/stable, and the site includes a version selector for switching between stable, dev, and tagged releases.
Package
For the actual code see /morphkit.
Installation
The 1.0.0 release is packaged as-is for internal and research use. The pip installation exists primarily so collaborators can recreate the exact software snapshot used in notebooks, scripts, and data processing runs.
Install the reproducible release snapshot with:
pip install morphkit==1.0.0
This pinned installation is the recommended route when you need reproducibility inside the N1904-TF research environment. It does not make the project independent from Morpheus, nor does it remove the project-specific assumptions baked into the translation logic.
For local development from this repository:
pip install -e .
Use the editable install when you are actively modifying the code for the same research workflow or adapting it for closely related internal experiments.
Configuration
Morphkit supports configurable HTTP timeouts and retry behavior for Morpheus API requests.
Default timeout: 30 seconds
Per-request timeout:
response = morphkit.get_word_blocks("tou=", "localhost:1315", timeout=10)
Global configuration:
from morphkit.config import config
config.timeout = 45
config.retry_attempts = 3
config.retry_delay = 2.0
Environment variables:
export MORPHKIT_TIMEOUT=60
export MORPHKIT_RETRY_ATTEMPTS=2
export MORPHKIT_RETRY_DELAY=1.5
Tools used
The standard set of tools (Python documentation, tech sites like stackoverflow, and Python syntax checkers like Pythonium) were used to create this package. Furthermore, for the creation of a subset of features, also the Anaconda Assistant (using OpenAI as backend) and GitHub Copilot in Visual Studio were used to debug and/or optimize parts of the code. Where specified, OpenAI Codex was used to create PRs.
License
Morphkit uses a split licensing model:
- Source code in
morphkit/is released under the MIT License. - Documentation, notebooks, and other non-code repository content remain under Creative Commons Attribution 4.0 International (CC BY 4.0), unless stated otherwise in a specific file.
This keeps the software package under a standard OSI-approved software license while preserving CC BY attribution terms for research-oriented non-code materials.
Release files for morphkit 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| morphkit-1.0.0.tar.gz | 47.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| morphkit-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 101.2 kB
Release files / morphkit-1.0.0.tar.gz
| Download URL | morphkit-1.0.0.tar.gz |
|---|---|
| Size | 47.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f30a55ada8124c54c52a493df1458185453490859be5e690288698b7ed644c7
|
|
BLAKE2b-256 checksum How to use checksums |
9784d275f362b87acb0e5b96a463046be7e9c062f0b5fd211abac01439b0ac44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 12, 2026.
Transparency logRelease files / morphkit-1.0.0-py3-none-any.whl
| Download URL | morphkit-1.0.0-py3-none-any.whl |
|---|---|
| Size | 53.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
334e231dd8039fdf203b90412b668272fcb004e2f225b934a329a7ff91c8ace9
|
|
BLAKE2b-256 checksum How to use checksums |
eb34a5241e8d78c20789732ddd359008dae5f17b960bda802b75654f3ca8850f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 May 12, 2026.
Transparency log