Encode and decode Morse code with custom errors, language JSON dictionaries, and CLI support.
Project description
📡 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_cachefor 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).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file morsecode_handler-0.1.0.tar.gz.
File metadata
- Download URL: morsecode_handler-0.1.0.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5d94dbde82ca2f53d24e6a29db242e95178f9ea34ac908ce34e84b702a1c858
|
|
| MD5 |
64187cc196dfed33578ab8263dda445e
|
|
| BLAKE2b-256 |
e9fa35fc5ccd79bcc6f480494e466400da08528d89c6391d36690d6a554cb95d
|
File details
Details for the file morsecode_handler-0.1.0-py3-none-any.whl.
File metadata
- Download URL: morsecode_handler-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c427708f9058823cbe80f394d6f38c4f3a4a965f68dbd9da53d021f2a0170af7
|
|
| MD5 |
43ad12e19f8e0a59e1bc9f65ef15ceae
|
|
| BLAKE2b-256 |
2aec396160f9ec3643df5e569f803950bb8c3b7e1ed1f119f42e98c45b6e6613
|