Skip to main content

spellmoney

Convierte montos numéricos a letras, con el formato exacto que exigen los documentos legales y financieros — cheques, facturas, recibos y contratos: CIENTO VEINTICINCO DÓLARES CON 50/100.

PyPI Python Tests License Dependencies Idiomas

Existe también el puerto a TypeScript/JavaScript — misma lógica, mismos datos de moneda, mismo resultado exacto — para quien trabaja en Node.

Instalación

pip install spellmoney

Uso

from spellmoney import a_letras

a_letras(125.50)
# 'CIENTO VEINTICINCO DÓLARES CON 50/100'

a_letras(1, moneda="GTQ")
# 'UN QUETZAL CON 00/100'

a_letras(21000000, moneda="EUR")
# 'VEINTIÚN MILLONES DE EUROS CON 00/100'

a_letras(2, moneda="GBP", mayusculas=False)
# 'dos libras esterlinas con 00/100'

a_letras(10.50, centavos="palabras")
# 'DIEZ DÓLARES CON CINCUENTA CENTAVOS'

Otros idiomas

a_letras(125.50, idioma="en")
# 'ONE HUNDRED TWENTY-FIVE DOLLARS AND 50/100'

a_letras(125.50, idioma="pt", moneda="BRL")
# 'CENTO E VINTE E CINCO REAIS E 50/100'

a_letras(125.50, idioma="fr", moneda="EUR")
# 'CENT VINGT-CINQ EUROS ET 50/100'

Solo el número, sin moneda

from spellmoney import (
    numero_a_letras,
    numero_a_letras_en,
    numero_a_letras_pt,
    numero_a_letras_fr,
)

numero_a_letras(1000000)        # 'un millón'
numero_a_letras(1000000000)     # 'mil millones'   (¡no "un billón"!)
numero_a_letras(1000000000000)  # 'un billón'

numero_a_letras_en(1000000000)  # 'one billion'    (escala corta del inglés)

numero_a_letras_pt(21, "f")     # 'vinte e uma'    (concordancia de género)

numero_a_letras_fr(71)          # 'soixante et onze'  (base vigesimal del francés)

Monedas soportadas

Las 154 divisas activas del estándar ISO 4217. La cobertura varía según el idioma:

Idioma Divisas cubiertas
es (español) 154 — todas
en (inglés) 154 — todas
pt (portugués, Brasil) 46 — países lusófonos + las divisas más usadas del mundo
fr (francés) 45 — países francófonos + las divisas más usadas del mundo

Si se pide una combinación de moneda e idioma que aún no existe, a_letras lanza SpellMoneyError con un mensaje explicando exactamente qué falta, en vez de fallar en silencio.

🙋 Ayuda buscada

Portugués y francés todavía tienen huecos en divisas regionales. Los pasos exactos para contribuir (fork, rama, pruebas, Pull Request) están en CONTRIBUTING.md — en español e inglés.

API

Función Descripción
a_letras(monto, moneda="USD", idioma="es", centavos="fraccion", mayusculas=True) Convierte un monto con nombre de moneda.
numero_a_letras(n) Solo el número, en español.
numero_a_letras_en(n) Solo el número, en inglés.
numero_a_letras_pt(n, genero="m") Solo el número, en portugués.
numero_a_letras_fr(n) Solo el número, en francés.
MONEDAS Catálogo de las 154 divisas ISO 4217.
IDIOMAS ("es", "en", "pt", "fr").
SpellMoneyError Error lanzado ante un monto, moneda o idioma inválidos.

Parámetros de a_letras:

  • moneda — código ISO 4217. Por defecto "USD".
  • idioma"es", "en", "pt" o "fr". Por defecto "es".
  • centavos"fraccion" escribe 50/100; "palabras" escribe CINCUENTA CENTAVOS.
  • mayusculasTrue devuelve el resultado en mayúsculas; False, en minúsculas.

Rango soportado

Enteros de 0 a 999,999,999,999,999. Un monto fuera de ese rango lanza SpellMoneyError, igual que un monto negativo, una moneda no reconocida o un idioma no soportado.

Desarrollo

git clone https://github.com/brandriver-bit/spellmoney.git
cd spellmoney
pip install -e ".[dev]"
pytest

Licencia

MIT — ver LICENSE.

Download files

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

Source Distribution

spellmoney-1.0.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

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

spellmoney-1.0.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file spellmoney-1.0.0.tar.gz.

File metadata

  • Download URL: spellmoney-1.0.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for spellmoney-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b0ce797388f47c0026b88378a4e0f4ff0efa5f1385c4c1b0203c7bba67b69eb9
MD5 32684d1fdbfdc6d927c47288d8d840f6
BLAKE2b-256 10e388f1254753ca7301287a01e8b1125b8ecf3ff050d9b892ab570ad4c4440c

See more details on using hashes here.

File details

Details for the file spellmoney-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: spellmoney-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for spellmoney-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62e3780f8ea350dd4cea2797dcf7ba5fc0665de736923be296dfbbefb6e75a35
MD5 ba0a9b24c397930738fd4c5894b954cb
BLAKE2b-256 216a25661947c45f91497c82cb0cc85aa61183d9c79a954787285057b4cb0829

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.0

2 files

This release

1.0.0 This release

2 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