Skip to content

Repository files navigation

📡 Morsecode Handler

Easily encode and decode Morse code in Python 🐍.
This library is simple, lightweight, and includes both a Python API and a Command-Line Interface (CLI).

✅ Learn Morse code
✅ Encode secret messages
✅ Use it in scripts, projects, or just for fun


🚀 Installation

Install from PyPI:

pip install morsecode_handler

🛠️ Usage in Python

import morsecode_handler

# Encode text
encoded = morsecode_handler.encode("HELLO WORLD")
print(encoded)
# .... . .-.. .-.. --- / .-- --- .-. .-.. -..

# Decode Morse back to text
decoded = morsecode_handler.decode(".... . .-.. .-.. --- / .-- --- .-. .-.. -..")
print(decoded)
# HELLO WORLD

Lenient Mode (skip unknown characters)

import morsecode_handler

morsecode_handler.encode("HELLO 🙂", strict=False, unknown="?")
# .... . .-.. .-.. --- / ?

💻 Command Line Tool

Once installed, you also get the morsecode CLI:

# Encode
morsecode_handler encode "HELLO WORLD"
# .... . .-.. .-.. --- / .-- --- .-. .-.. -..

# Decode
morsecode_handler decode ".... . .-.. .-.. --- / .-- --- .-. .-.. -.."
# HELLO WORLD

# Lenient mode (replace unknown characters with '?')
morsecode_handler encode "HELLO 🙂" --lenient
# .... . .-.. .-.. --- / ?

🌍 Supported Languages

This library supports 41 languages across Latin, Cyrillic, Arabic, Hebrew, Greek, and Korean scripts.
We follow the ISO 639-1 standard for the two-letter language codes (e.g., EN for English, FR for French, RU for Russian).

Code Language Code Language Code Language Code Language
AF Afrikaans AR Arabic EU Basque CA Catalan
HR Croatian CS Czech DA Danish NL Dutch
EN English EO Esperanto ET Estonian FI Finnish
FR French GL Galician DE German EL Greek
HE Hebrew HU Hungarian IS Icelandic ID Indonesian
GA Irish IT Italian KO Korean LV Latvian
LT Lithuanian MS Malay NO Norwegian PL Polish
PT Portuguese RO Romanian RU Russian SR Serbian
SK Slovak SL Slovenian ES Spanish SV Swedish
TL Tagalog TR Turkish UK Ukrainian VI Vietnamese

⚡ Features

  • 🔑 Encode and decode Morse code
  • 🎯 Strict mode (raise errors) or Lenient mode (skip unknowns)
  • 💻 CLI for quick terminal use
  • 🌍 Multi-language support via JSON dictionary
  • 🚀 High Performance: Features lazy-loaded data and @functools.lru_cache for maximum speed during bulk encoding/decoding.
  • 📝 MIT licensed — free to use anywhere

🛠️ Development & Testing

We welcome contributions! To set up the development environment, clone the repo and install the dev dependencies:

git clone https://github.com/mricardo888/morsecode.git
cd morsecode-handler
pip install -e ".[dev]"

Run the pytest suite to ensure everything is working correctly:

pytest -v tests/

📜 License

Released under the MIT License. Created by Ricardo (mricardo888).

About

Morsecode Handler is a lightweight Python library and CLI tool for encoding and decoding Morse code. It supports 40+ languages and can be used in Python scripts or directly from the command line.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages