/omninumeric

Python module for numbers reading and writing in alphabetic numeral systems

Primary LanguagePythonMIT LicenseMIT

Omninumeric

PyPI - Python Version PyPI - Wheel Codecov

PyPI - License Code style: black

🌏 English Русский

Omninumeric provides support for number reading and writing in alphabetic numeral systems.

Supported numeral systems

  • Cyrillic
  • Roman - numbers up to 3999
  • Byzantian Greek - WIP
  • Modern Greek - planned
  • Hebrew - planned

Background

See Introduction to learn about Cyrillic numeral system.

Installation

pip install omninumeric

Usage

#   Convert a number into Roman numeral system
#   Requires non-zero int, returns str
from omninumeric import roman

a = roman.write(1)

#   Convert a Cyrillic number to Arabic numeral system
#   Requires non-empty str, returns int
from omninumeric import cyrillic

b = cyrillic.read("а҃")

For Greek-type numeral systems, "Delimiter" and "plain" style numbers are supported both for reading and writing. "Plain" style is used by default for writing.

For Cyrillic numeral system, several falgs can be used for writing:

#   DELIM flag sets conversion to "delimeter" style

c = cyrillic.write(111111, cyrillic.DELIM)

#   NOTITLO flag omits "titlo" decorator

d = cyrillic.write(11000, cyrillic.DELIM | cyrillic.NOTITLO)

#   Following flags control dot styling:
#
#   ENDDOT - append dot at the end
#   WRAPDOT - append dot at both ends
#   DELIMDOT - add dot separator between digit groups. Sets conversion to "delim" style
#   ALLDOT - combine WRAPDOT and DELIMDOT

Contributing

Create an issue describing a bug or suggestion, then create a pull request mentioning the issue.

Feedback

Drop me a line: amshoor@gmail.com

Changelog

See Changelog.