wolof-numbers
Wolof numeral and currency phrase parser. Parse Wolof cardinal numbers from 1 to 1,000,000,000 and currency phrases in XOF/FCFA/CFA. MIT-licensed, PyPI-published as v0.1.0.
Install
pip install wolof-numbers
Quick Start
from wolof_numbers import parse_number, parse_currency_amount, parse_strict
# Cardinal number
result = parse_number("ñaar junni")
print(result.value) # 2000
print(result.confidence) # 1.0
# Strict parsing (returns int, raises on ambiguity)
value = parse_strict("ñaar junni")
print(value) # 2000
# Currency phrase
amt = parse_currency_amount("ñaar junni franc CFA")
print(amt.amount) # 2000
print(amt.currency) # "XOF"
Supported Range
| Range | Status |
|---|---|
| 1 – 9 (ones) | Supported |
| 10 – 99 (tens) | Supported |
| 100 – 999 (hundreds) | Supported |
| 1,000 – 99,999 (thousands) | Supported |
| 100,000 – 999,999 | Supported |
| 1,000,000 – 1,000,000,000 | Supported |
Supported Forms
- Cardinals only in v0.1.0 —
benn(1),ñaar(2), …juróom-ñaar(7),fukk(10),téeméer(100),junni(1000) - Wolof↔French code-switching —
ñaar mille francsis parsed as 2000 XOF - Diacritic-insensitive input —
naar,NAAR,ñaarall resolve to canonicalñaar - ~100 orthographic aliases covering regional variants (Lebu, Saloum-Saloum, Northern cluster) and common ASR transcript variants
Known Limitations (v0.2 targets)
| Form | Example | v0.1.0 Behavior |
|---|---|---|
| Ordinals | ñaaréél (second) |
Raises UnsupportedNumeralForm(kind="ordinal") |
| Fractions | genn ci ñaar (one-half) |
Raises UnsupportedNumeralForm(kind="fraction") |
| Arabic loanwords | alfu (1000) |
Raises UnsupportedNumeralForm(kind="loanword") |
Stability
v0.x.y: public API is committed-to; internals are not. Breaking changes to the public API
will bump to 0.(x+1).0 with a migration note in CHANGELOG.
The public API surface consists of: parse, parse_strict, parse_number,
parse_currency_amount, normalize, ParseResult, AmountResult, Interpretation,
AmbiguityError, UnsupportedNumeralForm.
Linguistic Source
The cardinal numeral system is based on Guérin 2021 (Constance Guérin's linguistic research on Wolof numerals) and supplemented by jangawolof.org.
Contributing
Non-developers can extend the alias table by editing
wolof_numbers/data/aliases.yaml — no Python knowledge required. Each entry maps a
canonical Wolof orthography to a list of accepted variants. Open a PR with new variants
and a usage example.
License
MIT — see LICENSE. Copyright (c) 2026 Kuma Labs.
Metadata
Release files for wolof-numbers 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wolof_numbers-0.3.0.tar.gz | 27.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wolof_numbers-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.4 kB
Release files / wolof_numbers-0.3.0.tar.gz
| Download URL | wolof_numbers-0.3.0.tar.gz |
|---|---|
| Size | 27.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b653f76563961b32df8be346177b70f1f79d175442623e18b699d952a0ca6cfb
|
|
BLAKE2b-256 checksum How to use checksums |
f8f9abb5a9b163221d0be35d7bf96e08e10435baa9770a53d47d9137871c2c29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / wolof_numbers-0.3.0-py3-none-any.whl
| Download URL | wolof_numbers-0.3.0-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2abc04b4d1ae5c22f088e8089891ee6564438c78bcd67ea9a1d0f61b7b0ff7ea
|
|
BLAKE2b-256 checksum How to use checksums |
5ff4f6e4de77deb6f38649288bf3c605eab2e6323d18c3a372d08ede010877b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|