Skip to main content

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

Metadata

Release files for morsecode-handler 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for morsecode-handler 0.1.0
File Size Uploaded
morsecode_handler-0.1.0.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for morsecode-handler 0.1.0
File Interpreter ABI Platform
morsecode_handler-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.0 kB

Release files / morsecode_handler-0.1.0.tar.gz

Download URL morsecode_handler-0.1.0.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b5d94dbde82ca2f53d24e6a29db242e95178f9ea34ac908ce34e84b702a1c858
BLAKE2b-256 checksum
How to use checksums
e9fa35fc5ccd79bcc6f480494e466400da08528d89c6391d36690d6a554cb95d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / morsecode_handler-0.1.0-py3-none-any.whl

Download URL morsecode_handler-0.1.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c427708f9058823cbe80f394d6f38c4f3a4a965f68dbd9da53d021f2a0170af7
BLAKE2b-256 checksum
How to use checksums
2aec396160f9ec3643df5e569f803950bb8c3b7e1ed1f119f42e98c45b6e6613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.1

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