• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jqueguiner / words2num2 / 29602910051
84%
main: 59%

Build:
Build:
LAST BUILD BRANCH: fix-spoken-year-forms
DEFAULT BRANCH: main
Ran 17 Jul 2026 06:13PM UTC
Jobs 6
Files 128
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Jul 2026 06:11PM UTC coverage: 84.12%. Remained the same
29602910051

Pull #2

github

jqueguiner
refactor: extract pure-Rust words2num2-core; py becomes a thin binder

Split the workspace into a pure-Rust `words2num2-core` (no PyO3) and a thin
`words2num2-py` PyO3 binder, mirroring num2words2-core/-py. Publishes the core
to crates.io and removes the Python round-trip in the sentence walker.

- rust/words2num2-core: new library crate. Holds the table backend
  (normalize/build_table/lookup), the `en` grammar parser, `w2n_formats`, and
  the sentence engine. NFKD is now done in Rust via `unicode-normalization`
  (replacing the `unicodedata` Python round-trip). The per-language dispatch
  that used `py.import("words2num2").CONVERTER_CLASSES[lang]` is replaced by a
  Rust `Converter` enum (en -> W2nLangEn; others -> table lookup). Deps:
  num2words2-core 0.1 (crates.io), num-bigint, bigdecimal, unicode-normalization.
- rust/words2num2-py: now depends on words2num2-core (path); same 12 pyfunctions,
  same signatures/exceptions/Python types. Just converts native values <-> Python.
- .cargo/config.toml: darwin dynamic_lookup so the cdylib links under plain
  cargo build/test (CPython symbols resolved by the host at import, as maturin does).
- .github/workflows/crates.yml: publish words2num2-core on release (idempotent).

Verified: cargo test (core 24, num2words2-core 573) green; clippy clean;
maturin build + `pytest tests/` = 116 passed, 1 skipped (unchanged from before);
words2num2-core 0.1.0 published to crates.io.
Pull Request #2: refactor: pure-Rust words2num2-core + thin PyO3 binder (+ crates.io)

588 of 699 relevant lines covered (84.12%)

5.03 hits per line

Jobs
ID Job ID Ran Files Coverage
1 3.11 - 29602910051.1 17 Jul 2026 06:15PM UTC 128
84.12
GitHub Action Run
2 3.14 - 29602910051.2 17 Jul 2026 06:15PM UTC 128
83.96
GitHub Action Run
3 3.15 - 29602910051.3 17 Jul 2026 06:15PM UTC 128
83.96
GitHub Action Run
4 3.13 - 29602910051.4 17 Jul 2026 06:15PM UTC 128
84.12
GitHub Action Run
5 3.10 - 29602910051.5 17 Jul 2026 06:15PM UTC 128
84.12
GitHub Action Run
6 3.12 - 29602910051.6 17 Jul 2026 06:15PM UTC 128
84.12
GitHub Action Run
Source Files on build 29602910051
  • Tree
  • List 128
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #2
  • PR Base - main (#29588433189)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc