Skip to main content

egypttranslit

PyPI

Convert Egyptological transliteration to clean Unicode with Python or from the command line.

By default, egypttranslit uses the plain-text IFAO-style forms ȝ, ʿ and ỉ.

Install

python -m pip install egypttranslit

Python 3.10+.

Try it in 30 seconds

from egypttranslit import parse, parse_mdc, normalize_unicode

print(parse("nTr mAat"))
# nṯr mȝʿt

print(parse_mdc("nTr Htp xpr"))
# nṯr ḥtp ḫpr

print(normalize_unicode("ȝ ʿ ỉ"))
# ꜣ ꜥ ꞽ

What can it do?

Feature Example Result
Automatic conversion parse("nTr mAat") nṯr mȝʿt
Explicit MdC conversion parse_mdc("Htp xpr") ḥtp ḫpr
Canonical Unicode normalize_unicode("ȝ ʿ ỉ") ꜣ ꜥ ꞽ
Output profiles parse_mdc_profiled("mAat", profile="unicode-canonical") mꜣꜥt
Batch conversion parse_mdc_many(["nTr", "mAat"]) ("nṯr", "mȝʿt")
Diagnostics analyze("mAat", mode="mdc") structured result
Validation validate("mAꜥt") raises ValueError
Command line egypttranslit --mode mdc "nTr Htp" nṯr ḥtp

Automatic conversion

Use parse() when the input may already contain normal text or Unicode transliteration.

from egypttranslit import parse

assert parse("nTr mAat") == "nṯr mȝʿt"
assert parse("A taxi on the X axis.") == "A taxi on the X axis."

parse() is conservative: ambiguous ASCII is left unchanged instead of being guessed.

convert() is an alias for parse().

Explicit Manuel de Codage

Use parse_mdc() when you know the input is MdC transliteration.

from egypttranslit import parse_mdc

assert parse_mdc("A a H x X S T D") == "ȝ ʿ ḥ ḫ ẖ š ṯ ḏ"
assert parse_mdc("nTr Htp xpr mAat") == "nṯr ḥtp ḫpr mȝʿt"

Gardiner/JSesh sign identifiers such as A1, D36 and T3 are preserved.

IFAO-style text

The default output uses ȝ, ʿ and ỉ instead of the raised-looking ꜣ, ꜥ and ꞽ glyphs.

Already-transliterated IFAO-style text stays stable:

from egypttranslit import parse

text = "ḏd-ḥr mȝʿ-ḫrw sȝ n ʿnḫ-ḥr"
assert parse(text) == text

Output profiles

Use a profile when you want a specific editorial convention.

from egypttranslit.converter import parse_mdc_profiled

assert parse_mdc_profiled("mAat", profile="ifao") == "mȝʿt"
assert parse_mdc_profiled("mAat", profile="unicode-canonical") == "mꜣꜥt"
assert parse_mdc_profiled("jr qd", profile="gardiner-1957") == "ꞽr ḳd"

Available profiles:

Profile Main behavior
default same as ifao
ifao plain-text ȝ, ʿ, ỉ
unicode-canonical canonical ꜣ, ꜥ, ꞽ
gardiner-1957 Gardiner-style j → ꞽ, q → ḳ
legacy-diacritics alias of gardiner-1957

Batch conversion

from egypttranslit.batch import parse_mdc_many

result = parse_mdc_many(["nTr", "Htp", "mAat"])
assert result == ("nṯr", "ḥtp", "mȝʿt")

Batch helpers preserve order and accept lists, tuples and generators.

Diagnostics and validation

from egypttranslit.diagnostics import analyze, validate

result = analyze("mAat", mode="mdc")
assert result.text == "mȝʿt"
assert result.detected == "mdc"

validate("mAꜥt")  # raises ValueError: mixed encoding

Diagnostics can classify input as mdc, unicode, mixed, ambiguous or none.

Command line

egypttranslit "nTr mAat"
# nṯr mȝʿt

egypttranslit --mode mdc "nTr Htp xpr"
# nṯr ḥtp ḫpr

egypttranslit --mode mdc --profile unicode-canonical "nTr mAat"
# nṯr mꜣꜥt

For files or pipelines:

cat input.txt | egypttranslit --mode mdc > output.txt

Modes: auto, mdc, unicode.

Main API

parse(text)                         automatic, conservative conversion
convert(text)                       alias for parse()
parse_mdc(text)                     explicit MdC conversion
normalize_unicode(text)             canonical Unicode normalization
parse_mdc_profiled(text, profile)   explicit output profile
parse_mdc_many(texts)               batch MdC conversion
analyze(text, mode=...)              diagnostics
validate(text)                       reject dangerous mixed encodings

Citation

Citation metadata is in CITATION.cff.

Barrios, E. J. egypttranslit [Computer software]. https://github.com/edujbarrios/egypttranslit

References

License

Apache-2.0. See LICENSE and NOTICE.

Metadata

Release files for egypttranslit 1.1.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 egypttranslit 1.1.1
File Size Uploaded
egypttranslit-1.1.1.tar.gz 38.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for egypttranslit 1.1.1
File Interpreter ABI Platform
egypttranslit-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 58.4 kB

Release files / egypttranslit-1.1.1.tar.gz

Download URL egypttranslit-1.1.1.tar.gz
Size 38.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2ebed93c94f92e3c47abd22c26c874a8d1cb73706a8923bc537006934c4de0a9
BLAKE2b-256 checksum
How to use checksums
65afe1ed80b51f19c9020b0b0637f84e1ac29260fe0cdb6bbac21e0d1c46c183
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 30, 2026.

Transparency log

Release files / egypttranslit-1.1.1-py3-none-any.whl

Download URL egypttranslit-1.1.1-py3-none-any.whl
Size 19.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
01c696580a04ef8c2cb8e1472e0e2917900dc445fd9b77907ce539232b51ea56
BLAKE2b-256 checksum
How to use checksums
2dd0d693d7703c750c4ee8fca4d49a91f33d260f926482d4499eaea8c9ce7749
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 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.1 This release

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