Easily and correctly encode and decode text into Morse code
Project description
Introduction
MorseCodePy is a versatile Python module that streamlines the encoding and decoding of text into Morse code and back. With support for multiple languages, including English, Russian, Ukrainian Spanish, French, as well as provisions for handling numbers and other special characters, this module offers a powerful and user-friendly Morse code tool. Whether you want to send messages, decipher existing ones, or simply explore the world of Morse code, MorseCodePy has you covered.
How to Use
encode(string, language, dot, dash, error)
Encode a text string into Morse code.
string
: The text string you want to encode.language
: The target language for encoding (e.g.,Language.english
,Language.french
,Language.numbers
).dot
: (optional) Symbol to represent dots (default is.
).dash
: (optional) Symbol to represent dashes (default is-
).error
: (optional) Symbol to represent errors when an unknown character is encountered (default is*
).
from MorseCodePy import encode, Language
encoded_string = encode('Hello, world!', language=Language.english)
print(encoded_string)
# Output: .... . .-.. .-.. --- --..-- / .-- --- .-. .-.. -.. -.-.--
decode(string, language, dot, dash, error)
Decode Morse code into a text string.
string
: The Morse code string you want to decode.language
: The target language for decoding (e.g.,Language.russian
,Language.spanish
,Language.special
).dot
: (optional) Symbol to represent dots (default is.
).dash
: (optional) Symbol to represent dashes (default is-
).error
: (optional) Symbol to represent errors when an unknown Morse code sequence is encountered (default is*
).
from MorseCodePy import decode, Language
decoded_string = decode('···· · ·-·· ·-·· --- --··-- / ·-- --- ·-· ·-·· -·· -·-·--', language=Language.english, dot='·')
print(decoded_string)
# Output: hello, world!
Language
The Language
enumeration represents different languages, including special cases for numbers and special characters.
Use it to specify the language when encoding or decoding Morse code.
Supported languages include Language.english
, Language.spanish
, Language.french
, Language.russian
, Language.ukrainian
,
as well as special categories for handling Language.numbers
and Language.special
.
chart(dot, dash)
Print a Morse code chart in the console.
dot
: (optional) Symbol to represent dots (default is·
).dash
: (optional) Symbol to represent dashes (default is-
).
from MorseCodePy import chart
chart()
# Output: Morse Code Chart: ...
play(code, delay, dot, dash, separator)
Play Morse code sound.
code
: The Morse code you want to play.delay
: (optional) The delay in seconds between characters (default is 0.4).dot
: (optional) Symbol to represent dots (default is.
).dash
: (optional) Symbol to represent dashes (default is-
).separator
: (optional) Symbol to represent separators (default is/
).
from MorseCodePy import encode, Language, play
encoded_string: str = encode('Hello', language=Language.english)
play(encoded_string, delay=0.5)
encodes
and decodes
These dictionaries contain Morse code representations for various languages and characters. You can access these dictionaries to customize the encoding and decoding behavior.
import MorseCodePy as mcp
english_encoding = mcp.encodes[mcp.Language.english]
russian_decoding = mcp.decodes[mcp.Language.russian]
Explore and adapt MorseCodePy for your specific needs.
Licence
This project is licensed under the MIT License. See the Full Licence for more details.
Contact
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
File details
Details for the file MorseCodePy-2.1.1.tar.gz
.
File metadata
- Download URL: MorseCodePy-2.1.1.tar.gz
- Upload date:
- Size: 6.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2d65827e9e6f9a2e8d2d91ea1fcac0f5afd0071a7090598a746daf6b03b78d2 |
|
MD5 | ceb8d389c6452a2e7d71acaf00a6ae71 |
|
BLAKE2b-256 | c26dceb28eec3f01af1d1ef7ed1f32f995885bea170192aaf54c199d431a51c8 |