Skip to main content

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_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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

morsecode_handler-0.1.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morsecode_handler-0.1.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for morsecode_handler-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b5d94dbde82ca2f53d24e6a29db242e95178f9ea34ac908ce34e84b702a1c858
MD5 64187cc196dfed33578ab8263dda445e
BLAKE2b-256 e9fa35fc5ccd79bcc6f480494e466400da08528d89c6391d36690d6a554cb95d

See more details on using hashes here.

File details

Details for the file morsecode_handler-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for morsecode_handler-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c427708f9058823cbe80f394d6f38c4f3a4a965f68dbd9da53d021f2a0170af7
MD5 43ad12e19f8e0a59e1bc9f65ef15ceae
BLAKE2b-256 2aec396160f9ec3643df5e569f803950bb8c3b7e1ed1f119f42e98c45b6e6613

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page