normalizer-tr 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. normalizer_tr-0.3.0/CONTRIBUTING.md +87 -0
  2. normalizer_tr-0.3.0/Cargo.lock +556 -0
  3. normalizer_tr-0.3.0/Cargo.toml +42 -0
  4. normalizer_tr-0.3.0/LICENSE +201 -0
  5. normalizer_tr-0.3.0/LICENSE-PROJECT +201 -0
  6. normalizer_tr-0.3.0/PERFORMANCE.md +72 -0
  7. normalizer_tr-0.3.0/PKG-INFO +284 -0
  8. normalizer_tr-0.3.0/README.md +211 -0
  9. normalizer_tr-0.3.0/THIRD_PARTY_NOTICES-PROJECT.md +140 -0
  10. normalizer_tr-0.3.0/THIRD_PARTY_NOTICES.md +140 -0
  11. normalizer_tr-0.3.0/benches/corpus.json +34 -0
  12. normalizer_tr-0.3.0/benches/intent-corpus.json +11 -0
  13. normalizer_tr-0.3.0/benches/latency.rs +239 -0
  14. normalizer_tr-0.3.0/benches/python_latency.py +141 -0
  15. normalizer_tr-0.3.0/bindings/python/Cargo.toml +21 -0
  16. normalizer_tr-0.3.0/bindings/python/LICENSE-PROJECT +201 -0
  17. normalizer_tr-0.3.0/bindings/python/README.md +98 -0
  18. normalizer_tr-0.3.0/bindings/python/THIRD_PARTY_NOTICES-PROJECT.md +140 -0
  19. normalizer_tr-0.3.0/bindings/python/constraints.lock +52 -0
  20. normalizer_tr-0.3.0/bindings/python/examples/showcase.py +29 -0
  21. normalizer_tr-0.3.0/bindings/python/licenses/aho-corasick-1.1.5/COPYING +3 -0
  22. normalizer_tr-0.3.0/bindings/python/licenses/aho-corasick-1.1.5/LICENSE-MIT +21 -0
  23. normalizer_tr-0.3.0/bindings/python/licenses/heck-0.5.0/LICENSE-APACHE +201 -0
  24. normalizer_tr-0.3.0/bindings/python/licenses/heck-0.5.0/LICENSE-MIT +25 -0
  25. normalizer_tr-0.3.0/bindings/python/licenses/libc-0.2.189/LICENSE-APACHE +176 -0
  26. normalizer_tr-0.3.0/bindings/python/licenses/libc-0.2.189/LICENSE-MIT +25 -0
  27. normalizer_tr-0.3.0/bindings/python/licenses/memchr-2.8.3/COPYING +3 -0
  28. normalizer_tr-0.3.0/bindings/python/licenses/memchr-2.8.3/LICENSE-MIT +21 -0
  29. normalizer_tr-0.3.0/bindings/python/licenses/portable-atomic-1.15.0/LICENSE-APACHE +177 -0
  30. normalizer_tr-0.3.0/bindings/python/licenses/portable-atomic-1.15.0/LICENSE-MIT +23 -0
  31. normalizer_tr-0.3.0/bindings/python/licenses/proc-macro2-1.0.107/LICENSE-APACHE +176 -0
  32. normalizer_tr-0.3.0/bindings/python/licenses/proc-macro2-1.0.107/LICENSE-MIT +23 -0
  33. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-0.29.3/LICENSE-APACHE +178 -0
  34. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-0.29.3/LICENSE-MIT +25 -0
  35. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-build-config-0.29.3/LICENSE-APACHE +178 -0
  36. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-build-config-0.29.3/LICENSE-MIT +25 -0
  37. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-ffi-0.29.3/LICENSE-APACHE +178 -0
  38. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-ffi-0.29.3/LICENSE-MIT +25 -0
  39. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-macros-0.29.3/LICENSE-APACHE +178 -0
  40. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-macros-0.29.3/LICENSE-MIT +25 -0
  41. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-macros-backend-0.29.3/LICENSE-APACHE +178 -0
  42. normalizer_tr-0.3.0/bindings/python/licenses/pyo3-macros-backend-0.29.3/LICENSE-MIT +25 -0
  43. normalizer_tr-0.3.0/bindings/python/licenses/quote-1.0.47/LICENSE-APACHE +176 -0
  44. normalizer_tr-0.3.0/bindings/python/licenses/quote-1.0.47/LICENSE-MIT +23 -0
  45. normalizer_tr-0.3.0/bindings/python/licenses/regex-1.13.1/LICENSE-APACHE +201 -0
  46. normalizer_tr-0.3.0/bindings/python/licenses/regex-1.13.1/LICENSE-MIT +25 -0
  47. normalizer_tr-0.3.0/bindings/python/licenses/regex-automata-0.4.18/LICENSE-APACHE +201 -0
  48. normalizer_tr-0.3.0/bindings/python/licenses/regex-automata-0.4.18/LICENSE-MIT +25 -0
  49. normalizer_tr-0.3.0/bindings/python/licenses/regex-syntax-0.8.11/LICENSE-APACHE +201 -0
  50. normalizer_tr-0.3.0/bindings/python/licenses/regex-syntax-0.8.11/LICENSE-MIT +25 -0
  51. normalizer_tr-0.3.0/bindings/python/licenses/rust-std-1.99.0/COPYRIGHT-library.html +29357 -0
  52. normalizer_tr-0.3.0/bindings/python/licenses/rust-std-1.99.0/LICENSE-APACHE +176 -0
  53. normalizer_tr-0.3.0/bindings/python/licenses/rust-std-1.99.0/LICENSE-MIT +25 -0
  54. normalizer_tr-0.3.0/bindings/python/licenses/syn-2.0.119/LICENSE-APACHE +176 -0
  55. normalizer_tr-0.3.0/bindings/python/licenses/syn-2.0.119/LICENSE-MIT +23 -0
  56. normalizer_tr-0.3.0/bindings/python/licenses/syn-3.0.6/LICENSE-APACHE +176 -0
  57. normalizer_tr-0.3.0/bindings/python/licenses/syn-3.0.6/LICENSE-MIT +23 -0
  58. normalizer_tr-0.3.0/bindings/python/licenses/target-lexicon-0.13.5/LICENSE +220 -0
  59. normalizer_tr-0.3.0/bindings/python/licenses/tinyvec-1.13.3/LICENSE-APACHE.md +202 -0
  60. normalizer_tr-0.3.0/bindings/python/licenses/tinyvec-1.13.3/LICENSE-MIT.md +5 -0
  61. normalizer_tr-0.3.0/bindings/python/licenses/tinyvec-1.13.3/LICENSE-ZLIB.md +11 -0
  62. normalizer_tr-0.3.0/bindings/python/licenses/unicode-ident-1.0.26/LICENSE-APACHE +176 -0
  63. normalizer_tr-0.3.0/bindings/python/licenses/unicode-ident-1.0.26/LICENSE-MIT +23 -0
  64. normalizer_tr-0.3.0/bindings/python/licenses/unicode-ident-1.0.26/LICENSE-UNICODE +39 -0
  65. normalizer_tr-0.3.0/bindings/python/licenses/unicode-normalization-0.1.25/LICENSE-APACHE +201 -0
  66. normalizer_tr-0.3.0/bindings/python/licenses/unicode-normalization-0.1.25/LICENSE-MIT +25 -0
  67. normalizer_tr-0.3.0/bindings/python/licenses/unicode-segmentation-1.13.3/LICENSE-APACHE +201 -0
  68. normalizer_tr-0.3.0/bindings/python/licenses/unicode-segmentation-1.13.3/LICENSE-MIT +25 -0
  69. normalizer_tr-0.3.0/bindings/python/requirements-dev.txt +6 -0
  70. normalizer_tr-0.3.0/bindings/python/src/lib.rs +263 -0
  71. normalizer_tr-0.3.0/bindings/python/tests/test_api.py +139 -0
  72. normalizer_tr-0.3.0/bindings/python/tests/test_general.py +60 -0
  73. normalizer_tr-0.3.0/docs/normalization.md +130 -0
  74. normalizer_tr-0.3.0/docs/release.md +35 -0
  75. normalizer_tr-0.3.0/examples/general.rs +63 -0
  76. normalizer_tr-0.3.0/examples/normalize.rs +119 -0
  77. normalizer_tr-0.3.0/licenses/aho-corasick-1.1.5/COPYING +3 -0
  78. normalizer_tr-0.3.0/licenses/aho-corasick-1.1.5/LICENSE-MIT +21 -0
  79. normalizer_tr-0.3.0/licenses/heck-0.5.0/LICENSE-APACHE +201 -0
  80. normalizer_tr-0.3.0/licenses/heck-0.5.0/LICENSE-MIT +25 -0
  81. normalizer_tr-0.3.0/licenses/libc-0.2.189/LICENSE-APACHE +176 -0
  82. normalizer_tr-0.3.0/licenses/libc-0.2.189/LICENSE-MIT +25 -0
  83. normalizer_tr-0.3.0/licenses/memchr-2.8.3/COPYING +3 -0
  84. normalizer_tr-0.3.0/licenses/memchr-2.8.3/LICENSE-MIT +21 -0
  85. normalizer_tr-0.3.0/licenses/portable-atomic-1.15.0/LICENSE-APACHE +177 -0
  86. normalizer_tr-0.3.0/licenses/portable-atomic-1.15.0/LICENSE-MIT +23 -0
  87. normalizer_tr-0.3.0/licenses/proc-macro2-1.0.107/LICENSE-APACHE +176 -0
  88. normalizer_tr-0.3.0/licenses/proc-macro2-1.0.107/LICENSE-MIT +23 -0
  89. normalizer_tr-0.3.0/licenses/pyo3-0.29.3/LICENSE-APACHE +178 -0
  90. normalizer_tr-0.3.0/licenses/pyo3-0.29.3/LICENSE-MIT +25 -0
  91. normalizer_tr-0.3.0/licenses/pyo3-build-config-0.29.3/LICENSE-APACHE +178 -0
  92. normalizer_tr-0.3.0/licenses/pyo3-build-config-0.29.3/LICENSE-MIT +25 -0
  93. normalizer_tr-0.3.0/licenses/pyo3-ffi-0.29.3/LICENSE-APACHE +178 -0
  94. normalizer_tr-0.3.0/licenses/pyo3-ffi-0.29.3/LICENSE-MIT +25 -0
  95. normalizer_tr-0.3.0/licenses/pyo3-macros-0.29.3/LICENSE-APACHE +178 -0
  96. normalizer_tr-0.3.0/licenses/pyo3-macros-0.29.3/LICENSE-MIT +25 -0
  97. normalizer_tr-0.3.0/licenses/pyo3-macros-backend-0.29.3/LICENSE-APACHE +178 -0
  98. normalizer_tr-0.3.0/licenses/pyo3-macros-backend-0.29.3/LICENSE-MIT +25 -0
  99. normalizer_tr-0.3.0/licenses/quote-1.0.47/LICENSE-APACHE +176 -0
  100. normalizer_tr-0.3.0/licenses/quote-1.0.47/LICENSE-MIT +23 -0
  101. normalizer_tr-0.3.0/licenses/regex-1.13.1/LICENSE-APACHE +201 -0
  102. normalizer_tr-0.3.0/licenses/regex-1.13.1/LICENSE-MIT +25 -0
  103. normalizer_tr-0.3.0/licenses/regex-automata-0.4.18/LICENSE-APACHE +201 -0
  104. normalizer_tr-0.3.0/licenses/regex-automata-0.4.18/LICENSE-MIT +25 -0
  105. normalizer_tr-0.3.0/licenses/regex-syntax-0.8.11/LICENSE-APACHE +201 -0
  106. normalizer_tr-0.3.0/licenses/regex-syntax-0.8.11/LICENSE-MIT +25 -0
  107. normalizer_tr-0.3.0/licenses/rust-std-1.99.0/COPYRIGHT-library.html +29357 -0
  108. normalizer_tr-0.3.0/licenses/rust-std-1.99.0/LICENSE-APACHE +176 -0
  109. normalizer_tr-0.3.0/licenses/rust-std-1.99.0/LICENSE-MIT +25 -0
  110. normalizer_tr-0.3.0/licenses/syn-2.0.119/LICENSE-APACHE +176 -0
  111. normalizer_tr-0.3.0/licenses/syn-2.0.119/LICENSE-MIT +23 -0
  112. normalizer_tr-0.3.0/licenses/syn-3.0.6/LICENSE-APACHE +176 -0
  113. normalizer_tr-0.3.0/licenses/syn-3.0.6/LICENSE-MIT +23 -0
  114. normalizer_tr-0.3.0/licenses/target-lexicon-0.13.5/LICENSE +220 -0
  115. normalizer_tr-0.3.0/licenses/tinyvec-1.13.3/LICENSE-APACHE.md +202 -0
  116. normalizer_tr-0.3.0/licenses/tinyvec-1.13.3/LICENSE-MIT.md +5 -0
  117. normalizer_tr-0.3.0/licenses/tinyvec-1.13.3/LICENSE-ZLIB.md +11 -0
  118. normalizer_tr-0.3.0/licenses/unicode-ident-1.0.26/LICENSE-APACHE +176 -0
  119. normalizer_tr-0.3.0/licenses/unicode-ident-1.0.26/LICENSE-MIT +23 -0
  120. normalizer_tr-0.3.0/licenses/unicode-ident-1.0.26/LICENSE-UNICODE +39 -0
  121. normalizer_tr-0.3.0/licenses/unicode-normalization-0.1.25/LICENSE-APACHE +201 -0
  122. normalizer_tr-0.3.0/licenses/unicode-normalization-0.1.25/LICENSE-MIT +25 -0
  123. normalizer_tr-0.3.0/licenses/unicode-segmentation-1.13.3/LICENSE-APACHE +201 -0
  124. normalizer_tr-0.3.0/licenses/unicode-segmentation-1.13.3/LICENSE-MIT +25 -0
  125. normalizer_tr-0.3.0/pyproject.toml +37 -0
  126. normalizer_tr-0.3.0/python/normalizer_tr/__init__.py +188 -0
  127. normalizer_tr-0.3.0/python/normalizer_tr/_native.pyi +30 -0
  128. normalizer_tr-0.3.0/python/normalizer_tr/py.typed +0 -0
  129. normalizer_tr-0.3.0/rust-toolchain.toml +4 -0
  130. normalizer_tr-0.3.0/src/api.rs +328 -0
  131. normalizer_tr-0.3.0/src/classify/boundaries.rs +92 -0
  132. normalizer_tr-0.3.0/src/classify/context.rs +21 -0
  133. normalizer_tr-0.3.0/src/classify/mod.rs +129 -0
  134. normalizer_tr-0.3.0/src/classify/readers/electronic.rs +49 -0
  135. normalizer_tr-0.3.0/src/classify/readers/identifiers.rs +158 -0
  136. normalizer_tr-0.3.0/src/classify/readers/lexical.rs +37 -0
  137. normalizer_tr-0.3.0/src/classify/readers/mod.rs +176 -0
  138. normalizer_tr-0.3.0/src/classify/readers/numeric.rs +59 -0
  139. normalizer_tr-0.3.0/src/classify/readers/quantities.rs +136 -0
  140. normalizer_tr-0.3.0/src/classify/scan.rs +280 -0
  141. normalizer_tr-0.3.0/src/classify/temporal.rs +110 -0
  142. normalizer_tr-0.3.0/src/data/provenance.md +28 -0
  143. normalizer_tr-0.3.0/src/domain/electronic.rs +258 -0
  144. normalizer_tr-0.3.0/src/domain/identifiers.rs +152 -0
  145. normalizer_tr-0.3.0/src/domain/lexicon.rs +185 -0
  146. normalizer_tr-0.3.0/src/domain/mod.rs +4 -0
  147. normalizer_tr-0.3.0/src/domain/numeric.rs +482 -0
  148. normalizer_tr-0.3.0/src/lib.rs +44 -0
  149. normalizer_tr-0.3.0/src/model.rs +162 -0
  150. normalizer_tr-0.3.0/src/morphology.rs +191 -0
  151. normalizer_tr-0.3.0/src/normalizer.rs +42 -0
  152. normalizer_tr-0.3.0/src/numerals.rs +298 -0
  153. normalizer_tr-0.3.0/src/pipeline.rs +163 -0
  154. normalizer_tr-0.3.0/src/resources.rs +29 -0
  155. normalizer_tr-0.3.0/src/source_map.rs +106 -0
  156. normalizer_tr-0.3.0/src/verbalize.rs +96 -0
  157. normalizer_tr-0.3.0/tests/classes.rs +184 -0
  158. normalizer_tr-0.3.0/tests/controls.rs +124 -0
  159. normalizer_tr-0.3.0/tests/current_contract.rs +71 -0
  160. normalizer_tr-0.3.0/tests/financial_baseline.rs +83 -0
  161. normalizer_tr-0.3.0/tests/fixtures/current-contract.json +3739 -0
  162. normalizer_tr-0.3.0/tests/fixtures/financial-input.txt +1 -0
  163. normalizer_tr-0.3.0/tests/fixtures/financial-output.txt +1 -0
  164. normalizer_tr-0.3.0/tests/general_coverage.rs +448 -0
  165. normalizer_tr-0.3.0/tests/general_invariants.rs +147 -0
  166. normalizer_tr-0.3.0/tests/partial_results.rs +111 -0
  167. normalizer_tr-0.3.0/tests/properties.rs +114 -0
  168. normalizer_tr-0.3.0/tests/recognition_priority.rs +83 -0
  169. normalizer_tr-0.3.0/tests/serde_parity.rs +25 -0
  170. normalizer_tr-0.3.0/tests/source_mapping.rs +274 -0
@@ -0,0 +1,87 @@
1
+ # Contributing
2
+
3
+ Use minimal synthetic examples when reporting bugs: written input, expected
4
+ spoken text, actual completeness/issues, options/hints, revision and environment.
5
+ Do not include credentials, real account identifiers or private customer text.
6
+
7
+ ## Set up
8
+
9
+ The release toolchain is Rust 1.99.0; the declared minimum is 1.94 and is tested
10
+ separately. The toolchain file includes rustfmt/Clippy. Python release tests
11
+ cover ordinary CPython 3.11–3.14 on the selected Windows/Linux/macOS platforms.
12
+ On Windows, install the MSVC C++ build tools.
13
+
14
+ ```powershell
15
+ git clone https://github.com/erdemtuna/normalizer-tr.git
16
+ Set-Location normalizer-tr
17
+ cargo test --locked
18
+ ```
19
+
20
+ For Python development:
21
+
22
+ ```powershell
23
+ py -3.13 -m venv .venv
24
+ .\.venv\Scripts\python.exe -m pip install -r .\bindings\python\requirements-dev.txt -c .\bindings\python\constraints.lock
25
+ .\.venv\Scripts\python.exe -m pip install .\bindings\python
26
+ .\.venv\Scripts\python.exe -m pytest .\bindings\python\tests -q
27
+ ```
28
+
29
+ Core/binding development needs no Torch, model files or credentials.
30
+
31
+ ## Code layout
32
+
33
+ `src/classify` owns scanning, fixed reader priority and whole-span claims;
34
+ `src/domain` owns validated values; `src/numerals.rs`, `src/morphology.rs` and
35
+ `src/verbalize.rs` share exact rendering and spoken-tail metadata.
36
+ `src/source_map.rs` maps NFC recognition to original UTF-8/grapheme coordinates.
37
+ `src/pipeline.rs` composes the source partition, diagnostics and budgets.
38
+ The Python binding calls this engine; it does not duplicate language rules.
39
+
40
+ Add positive, negative and mixed-sentence tests. Assert completeness, issue
41
+ scope and byte ranges as well as text. Preserve matched-invalid compounds
42
+ instead of rewriting their fragments. Reuse exact-number/morphology helpers;
43
+ do not introduce unsafe Rust, floating-point money, global lowercasing,
44
+ emitted-text reparsing or result caches. Review deliberate reading changes
45
+ separately from refactors; do not regenerate fixtures just to pass.
46
+
47
+ ## Checks
48
+
49
+ ```powershell
50
+ cargo fmt --all --check
51
+ cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
52
+ cargo test --locked --all-features
53
+ cargo doc --locked --no-deps --all-features
54
+ .\.venv\Scripts\python.exe -m ruff check bindings\python benches scripts
55
+ .\.venv\Scripts\python.exe -m ruff format --check bindings\python benches scripts
56
+ .\.venv\Scripts\python.exe -m mypy bindings\python\python --check-untyped-defs
57
+ ```
58
+
59
+ Rebuild/reinstall the binding after native/facade changes before running its
60
+ tests. CI also checks default/no-default Rust configurations and installed-wheel
61
+ tests, without models.
62
+
63
+ For full local package/consumer/audit/performance verification, provision:
64
+
65
+ ```powershell
66
+ cargo install cargo-audit --version 0.22.2 --locked --root .\target\audit-tool
67
+ git clone https://github.com/RustSec/advisory-db.git .\target\advisory-db
68
+ ```
69
+
70
+ From a clean committed checkout, use a new absolute output directory:
71
+
72
+ ```powershell
73
+ $python = (Resolve-Path .\.venv\Scripts\python.exe).Path
74
+ $output = Join-Path $env:TEMP 'normalizer-tr-verification-01'
75
+ .\scripts\verify.ps1 -PythonPath $python -OutputDirectory $output
76
+ ```
77
+
78
+ Optional `-RustupHome <absolute-isolated-path>` selects an existing isolated
79
+ toolchain. Keep the output/environment path short on Windows to avoid
80
+ path-length limits. Outputs include logs, packages, consumers and a checksum manifest.
81
+ See [PERFORMANCE.md](PERFORMANCE.md) for host-specific timing limits.
82
+
83
+ Owned contributions are Apache-2.0; retain third-party notices. Keep credentials,
84
+ external model source/weights, audio, wheels, environments and reports out of
85
+ Git. Only the core can publish to crates.io; the internal Rust/Python companion
86
+ keeps `publish = false`. Registry publishing is a separate owner-controlled
87
+ release action after built-artifact verification, never an untrusted PR action.
@@ -0,0 +1,556 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.5"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "autocfg"
16
+ version = "1.5.1"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
19
+
20
+ [[package]]
21
+ name = "bit-set"
22
+ version = "0.8.0"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
25
+ dependencies = [
26
+ "bit-vec",
27
+ ]
28
+
29
+ [[package]]
30
+ name = "bit-vec"
31
+ version = "0.8.0"
32
+ source = "registry+https://github.com/rust-lang/crates.io-index"
33
+ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
34
+
35
+ [[package]]
36
+ name = "bitflags"
37
+ version = "2.13.2"
38
+ source = "registry+https://github.com/rust-lang/crates.io-index"
39
+ checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06"
40
+
41
+ [[package]]
42
+ name = "cfg-if"
43
+ version = "1.0.5"
44
+ source = "registry+https://github.com/rust-lang/crates.io-index"
45
+ checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
46
+
47
+ [[package]]
48
+ name = "errno"
49
+ version = "0.3.14"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
52
+ dependencies = [
53
+ "libc",
54
+ "windows-sys",
55
+ ]
56
+
57
+ [[package]]
58
+ name = "fastrand"
59
+ version = "2.5.0"
60
+ source = "registry+https://github.com/rust-lang/crates.io-index"
61
+ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
62
+
63
+ [[package]]
64
+ name = "fnv"
65
+ version = "1.0.7"
66
+ source = "registry+https://github.com/rust-lang/crates.io-index"
67
+ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
68
+
69
+ [[package]]
70
+ name = "getrandom"
71
+ version = "0.3.4"
72
+ source = "registry+https://github.com/rust-lang/crates.io-index"
73
+ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
74
+ dependencies = [
75
+ "cfg-if",
76
+ "libc",
77
+ "r-efi 5.3.0",
78
+ "wasip2",
79
+ ]
80
+
81
+ [[package]]
82
+ name = "getrandom"
83
+ version = "0.4.3"
84
+ source = "registry+https://github.com/rust-lang/crates.io-index"
85
+ checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
86
+ dependencies = [
87
+ "cfg-if",
88
+ "libc",
89
+ "r-efi 6.0.0",
90
+ ]
91
+
92
+ [[package]]
93
+ name = "heck"
94
+ version = "0.5.0"
95
+ source = "registry+https://github.com/rust-lang/crates.io-index"
96
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
97
+
98
+ [[package]]
99
+ name = "itoa"
100
+ version = "1.0.18"
101
+ source = "registry+https://github.com/rust-lang/crates.io-index"
102
+ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
103
+
104
+ [[package]]
105
+ name = "libc"
106
+ version = "0.2.189"
107
+ source = "registry+https://github.com/rust-lang/crates.io-index"
108
+ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
109
+
110
+ [[package]]
111
+ name = "linux-raw-sys"
112
+ version = "0.12.1"
113
+ source = "registry+https://github.com/rust-lang/crates.io-index"
114
+ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
115
+
116
+ [[package]]
117
+ name = "memchr"
118
+ version = "2.8.3"
119
+ source = "registry+https://github.com/rust-lang/crates.io-index"
120
+ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
121
+
122
+ [[package]]
123
+ name = "normalizer-tr"
124
+ version = "0.3.0"
125
+ dependencies = [
126
+ "proptest",
127
+ "regex",
128
+ "serde",
129
+ "serde_json",
130
+ "unicode-normalization",
131
+ "unicode-segmentation",
132
+ ]
133
+
134
+ [[package]]
135
+ name = "normalizer-tr-python"
136
+ version = "0.3.0"
137
+ dependencies = [
138
+ "normalizer-tr",
139
+ "pyo3",
140
+ ]
141
+
142
+ [[package]]
143
+ name = "num-traits"
144
+ version = "0.2.19"
145
+ source = "registry+https://github.com/rust-lang/crates.io-index"
146
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
147
+ dependencies = [
148
+ "autocfg",
149
+ ]
150
+
151
+ [[package]]
152
+ name = "once_cell"
153
+ version = "1.21.4"
154
+ source = "registry+https://github.com/rust-lang/crates.io-index"
155
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
156
+
157
+ [[package]]
158
+ name = "portable-atomic"
159
+ version = "1.15.0"
160
+ source = "registry+https://github.com/rust-lang/crates.io-index"
161
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
162
+
163
+ [[package]]
164
+ name = "ppv-lite86"
165
+ version = "0.2.21"
166
+ source = "registry+https://github.com/rust-lang/crates.io-index"
167
+ checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
168
+ dependencies = [
169
+ "zerocopy",
170
+ ]
171
+
172
+ [[package]]
173
+ name = "proc-macro2"
174
+ version = "1.0.107"
175
+ source = "registry+https://github.com/rust-lang/crates.io-index"
176
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
177
+ dependencies = [
178
+ "unicode-ident",
179
+ ]
180
+
181
+ [[package]]
182
+ name = "proptest"
183
+ version = "1.11.0"
184
+ source = "registry+https://github.com/rust-lang/crates.io-index"
185
+ checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744"
186
+ dependencies = [
187
+ "bit-set",
188
+ "bit-vec",
189
+ "bitflags",
190
+ "num-traits",
191
+ "rand",
192
+ "rand_chacha",
193
+ "rand_xorshift",
194
+ "regex-syntax",
195
+ "rusty-fork",
196
+ "tempfile",
197
+ "unarray",
198
+ ]
199
+
200
+ [[package]]
201
+ name = "pyo3"
202
+ version = "0.29.3"
203
+ source = "registry+https://github.com/rust-lang/crates.io-index"
204
+ checksum = "700d18fa267b73b9b521fd7e13580e2f446916f176cacee1ab63fcc8191f1655"
205
+ dependencies = [
206
+ "libc",
207
+ "once_cell",
208
+ "portable-atomic",
209
+ "pyo3-build-config",
210
+ "pyo3-ffi",
211
+ "pyo3-macros",
212
+ ]
213
+
214
+ [[package]]
215
+ name = "pyo3-build-config"
216
+ version = "0.29.3"
217
+ source = "registry+https://github.com/rust-lang/crates.io-index"
218
+ checksum = "7b3fc0c4d08f6bb10e71fe39dfb9e2f59c6eb6854e22ec8092f50c69a4499adb"
219
+ dependencies = [
220
+ "target-lexicon",
221
+ ]
222
+
223
+ [[package]]
224
+ name = "pyo3-ffi"
225
+ version = "0.29.3"
226
+ source = "registry+https://github.com/rust-lang/crates.io-index"
227
+ checksum = "dfc0b8e19df29aad7086cf977bb0c2a2f143e30567eb113e9cf72b62ca698330"
228
+ dependencies = [
229
+ "libc",
230
+ "pyo3-build-config",
231
+ ]
232
+
233
+ [[package]]
234
+ name = "pyo3-macros"
235
+ version = "0.29.3"
236
+ source = "registry+https://github.com/rust-lang/crates.io-index"
237
+ checksum = "6100e8a4b5eba53afaa5ed078364851a0b2499c553a44c31026b929049b49dc6"
238
+ dependencies = [
239
+ "proc-macro2",
240
+ "pyo3-macros-backend",
241
+ "quote",
242
+ "syn 2.0.119",
243
+ ]
244
+
245
+ [[package]]
246
+ name = "pyo3-macros-backend"
247
+ version = "0.29.3"
248
+ source = "registry+https://github.com/rust-lang/crates.io-index"
249
+ checksum = "6143877a16e82b5a727b7127ff4cd86858a24a28d745d72f43e6f227c7b1bdb3"
250
+ dependencies = [
251
+ "heck",
252
+ "proc-macro2",
253
+ "quote",
254
+ "syn 2.0.119",
255
+ ]
256
+
257
+ [[package]]
258
+ name = "quick-error"
259
+ version = "1.2.3"
260
+ source = "registry+https://github.com/rust-lang/crates.io-index"
261
+ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
262
+
263
+ [[package]]
264
+ name = "quote"
265
+ version = "1.0.47"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
268
+ dependencies = [
269
+ "proc-macro2",
270
+ ]
271
+
272
+ [[package]]
273
+ name = "r-efi"
274
+ version = "5.3.0"
275
+ source = "registry+https://github.com/rust-lang/crates.io-index"
276
+ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
277
+
278
+ [[package]]
279
+ name = "r-efi"
280
+ version = "6.0.0"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
283
+
284
+ [[package]]
285
+ name = "rand"
286
+ version = "0.9.5"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41"
289
+ dependencies = [
290
+ "rand_chacha",
291
+ "rand_core",
292
+ ]
293
+
294
+ [[package]]
295
+ name = "rand_chacha"
296
+ version = "0.9.0"
297
+ source = "registry+https://github.com/rust-lang/crates.io-index"
298
+ checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
299
+ dependencies = [
300
+ "ppv-lite86",
301
+ "rand_core",
302
+ ]
303
+
304
+ [[package]]
305
+ name = "rand_core"
306
+ version = "0.9.5"
307
+ source = "registry+https://github.com/rust-lang/crates.io-index"
308
+ checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
309
+ dependencies = [
310
+ "getrandom 0.3.4",
311
+ ]
312
+
313
+ [[package]]
314
+ name = "rand_xorshift"
315
+ version = "0.4.0"
316
+ source = "registry+https://github.com/rust-lang/crates.io-index"
317
+ checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a"
318
+ dependencies = [
319
+ "rand_core",
320
+ ]
321
+
322
+ [[package]]
323
+ name = "regex"
324
+ version = "1.13.1"
325
+ source = "registry+https://github.com/rust-lang/crates.io-index"
326
+ checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d"
327
+ dependencies = [
328
+ "aho-corasick",
329
+ "memchr",
330
+ "regex-automata",
331
+ "regex-syntax",
332
+ ]
333
+
334
+ [[package]]
335
+ name = "regex-automata"
336
+ version = "0.4.18"
337
+ source = "registry+https://github.com/rust-lang/crates.io-index"
338
+ checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2"
339
+ dependencies = [
340
+ "aho-corasick",
341
+ "memchr",
342
+ "regex-syntax",
343
+ ]
344
+
345
+ [[package]]
346
+ name = "regex-syntax"
347
+ version = "0.8.11"
348
+ source = "registry+https://github.com/rust-lang/crates.io-index"
349
+ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
350
+
351
+ [[package]]
352
+ name = "rustix"
353
+ version = "1.1.5"
354
+ source = "registry+https://github.com/rust-lang/crates.io-index"
355
+ checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d"
356
+ dependencies = [
357
+ "bitflags",
358
+ "errno",
359
+ "libc",
360
+ "linux-raw-sys",
361
+ "windows-sys",
362
+ ]
363
+
364
+ [[package]]
365
+ name = "rusty-fork"
366
+ version = "0.3.1"
367
+ source = "registry+https://github.com/rust-lang/crates.io-index"
368
+ checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2"
369
+ dependencies = [
370
+ "fnv",
371
+ "quick-error",
372
+ "tempfile",
373
+ "wait-timeout",
374
+ ]
375
+
376
+ [[package]]
377
+ name = "serde"
378
+ version = "1.0.229"
379
+ source = "registry+https://github.com/rust-lang/crates.io-index"
380
+ checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
381
+ dependencies = [
382
+ "serde_core",
383
+ "serde_derive",
384
+ ]
385
+
386
+ [[package]]
387
+ name = "serde_core"
388
+ version = "1.0.229"
389
+ source = "registry+https://github.com/rust-lang/crates.io-index"
390
+ checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
391
+ dependencies = [
392
+ "serde_derive",
393
+ ]
394
+
395
+ [[package]]
396
+ name = "serde_derive"
397
+ version = "1.0.229"
398
+ source = "registry+https://github.com/rust-lang/crates.io-index"
399
+ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
400
+ dependencies = [
401
+ "proc-macro2",
402
+ "quote",
403
+ "syn 3.0.6",
404
+ ]
405
+
406
+ [[package]]
407
+ name = "serde_json"
408
+ version = "1.0.151"
409
+ source = "registry+https://github.com/rust-lang/crates.io-index"
410
+ checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
411
+ dependencies = [
412
+ "itoa",
413
+ "memchr",
414
+ "serde",
415
+ "serde_core",
416
+ "zmij",
417
+ ]
418
+
419
+ [[package]]
420
+ name = "syn"
421
+ version = "2.0.119"
422
+ source = "registry+https://github.com/rust-lang/crates.io-index"
423
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
424
+ dependencies = [
425
+ "proc-macro2",
426
+ "quote",
427
+ "unicode-ident",
428
+ ]
429
+
430
+ [[package]]
431
+ name = "syn"
432
+ version = "3.0.6"
433
+ source = "registry+https://github.com/rust-lang/crates.io-index"
434
+ checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
435
+ dependencies = [
436
+ "proc-macro2",
437
+ "quote",
438
+ "unicode-ident",
439
+ ]
440
+
441
+ [[package]]
442
+ name = "target-lexicon"
443
+ version = "0.13.5"
444
+ source = "registry+https://github.com/rust-lang/crates.io-index"
445
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
446
+
447
+ [[package]]
448
+ name = "tempfile"
449
+ version = "3.27.0"
450
+ source = "registry+https://github.com/rust-lang/crates.io-index"
451
+ checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
452
+ dependencies = [
453
+ "fastrand",
454
+ "getrandom 0.4.3",
455
+ "once_cell",
456
+ "rustix",
457
+ "windows-sys",
458
+ ]
459
+
460
+ [[package]]
461
+ name = "tinyvec"
462
+ version = "1.13.3"
463
+ source = "registry+https://github.com/rust-lang/crates.io-index"
464
+ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
465
+
466
+ [[package]]
467
+ name = "unarray"
468
+ version = "0.1.4"
469
+ source = "registry+https://github.com/rust-lang/crates.io-index"
470
+ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
471
+
472
+ [[package]]
473
+ name = "unicode-ident"
474
+ version = "1.0.26"
475
+ source = "registry+https://github.com/rust-lang/crates.io-index"
476
+ checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
477
+
478
+ [[package]]
479
+ name = "unicode-normalization"
480
+ version = "0.1.25"
481
+ source = "registry+https://github.com/rust-lang/crates.io-index"
482
+ checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
483
+ dependencies = [
484
+ "tinyvec",
485
+ ]
486
+
487
+ [[package]]
488
+ name = "unicode-segmentation"
489
+ version = "1.13.3"
490
+ source = "registry+https://github.com/rust-lang/crates.io-index"
491
+ checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
492
+
493
+ [[package]]
494
+ name = "wait-timeout"
495
+ version = "0.2.1"
496
+ source = "registry+https://github.com/rust-lang/crates.io-index"
497
+ checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11"
498
+ dependencies = [
499
+ "libc",
500
+ ]
501
+
502
+ [[package]]
503
+ name = "wasip2"
504
+ version = "1.0.4+wasi-0.2.12"
505
+ source = "registry+https://github.com/rust-lang/crates.io-index"
506
+ checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
507
+ dependencies = [
508
+ "wit-bindgen",
509
+ ]
510
+
511
+ [[package]]
512
+ name = "windows-link"
513
+ version = "0.2.1"
514
+ source = "registry+https://github.com/rust-lang/crates.io-index"
515
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
516
+
517
+ [[package]]
518
+ name = "windows-sys"
519
+ version = "0.61.2"
520
+ source = "registry+https://github.com/rust-lang/crates.io-index"
521
+ checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
522
+ dependencies = [
523
+ "windows-link",
524
+ ]
525
+
526
+ [[package]]
527
+ name = "wit-bindgen"
528
+ version = "0.57.1"
529
+ source = "registry+https://github.com/rust-lang/crates.io-index"
530
+ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
531
+
532
+ [[package]]
533
+ name = "zerocopy"
534
+ version = "0.8.59"
535
+ source = "registry+https://github.com/rust-lang/crates.io-index"
536
+ checksum = "6df92bf3d9227be3d53173901ddbffac2babc27ae50f397776ffd6dc33f800cb"
537
+ dependencies = [
538
+ "zerocopy-derive",
539
+ ]
540
+
541
+ [[package]]
542
+ name = "zerocopy-derive"
543
+ version = "0.8.59"
544
+ source = "registry+https://github.com/rust-lang/crates.io-index"
545
+ checksum = "ac4f328cf2f05d084e496c3e9c3f33ed0a183656a16e1fcec4d464d8373aec82"
546
+ dependencies = [
547
+ "proc-macro2",
548
+ "quote",
549
+ "syn 2.0.119",
550
+ ]
551
+
552
+ [[package]]
553
+ name = "zmij"
554
+ version = "1.0.23"
555
+ source = "registry+https://github.com/rust-lang/crates.io-index"
556
+ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
@@ -0,0 +1,42 @@
1
+ [package]
2
+ name = "normalizer-tr"
3
+ version = "0.3.0"
4
+ edition = "2024"
5
+ rust-version = "1.94"
6
+ description = "Bounded Turkish text-to-speech normalization with original-source diagnostics"
7
+ license = "Apache-2.0"
8
+ repository = "https://github.com/erdemtuna/normalizer-tr"
9
+ keywords = ["turkish", "tts", "normalization", "text-to-speech"]
10
+ categories = ["text-processing"]
11
+ publish = ["crates-io"]
12
+ include = ["/src/**", "/tests/**", "/examples/**", "/benches/**", "/docs/**", "/Cargo.toml", "/Cargo.lock", "/rust-toolchain.toml", "/README.md", "/CONTRIBUTING.md", "/PERFORMANCE.md", "/LICENSE", "/THIRD_PARTY_NOTICES.md"]
13
+
14
+ [package.metadata.docs.rs]
15
+ all-features = true
16
+
17
+ [[bench]]
18
+ name = "latency"
19
+ harness = false
20
+ required-features = ["serde"]
21
+
22
+ [features]
23
+ default = []
24
+ serde = ["dep:serde"]
25
+
26
+ [workspace]
27
+ members = ["bindings/python"]
28
+ resolver = "3"
29
+
30
+ [dependencies]
31
+ regex = "=1.13.1"
32
+ unicode-normalization = "=0.1.25"
33
+ unicode-segmentation = "=1.13.3"
34
+ serde = { version = "=1.0.229", features = ["derive"], optional = true }
35
+
36
+ [dev-dependencies]
37
+ proptest = "=1.11.0"
38
+ serde_json = "=1.0.151"
39
+
40
+ [lints.rust]
41
+ unsafe_code = "forbid"
42
+ missing_docs = "warn"