-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
94 lines (86 loc) · 2.85 KB
/
pyproject.toml
File metadata and controls
94 lines (86 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
[project]
name = "werx"
version = "0.3.1"
description = "A high-performance Python package for calculating Word Error Rate (WER), powered by Rust."
readme = "README.md"
authors = [
{ name = "Ross Armstrong", email = "ross.armstrong@analyticsinmotion.com" }
]
requires-python = ">=3.10"
license = {file = 'LICENSE'}
classifiers = [
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux",
"Intended Audience :: Developers",
"Topic :: Scientific/Engineering",
"Topic :: Text Processing",
]
keywords = [
"werx",
"wer",
"word error rate",
"asr",
"automatic speech recognition",
"stt",
"speech-to-text",
"levenshtein distance",
"text similarity",
"nlp",
"accuracy metrics"
]
dependencies = []
[build-system]
requires = ["maturin>=1.8,<2.0"]
build-backend = "maturin"
[tool.maturin]
python-source = "src"
manifest-path = "werx-core/Cargo.toml"
module-name = "werx"
bindings = "pyo3"
include = ["LICENSE", "NOTICE", "README.md", "src/**"]
[project.optional-dependencies]
dev = [
"maturin >=1.10.2",
"pytest >=9.0.2",
"mypy >=1.19.0",
"ruff >=0.14.9",
]
dataframes = [
"polars >=1.36.1",
"pandas >=2.3.3"
]
benchmarks = [
"werpy >=3.1.0",
"jiwer >=4.0.0",
"pywer >=0.1.1",
# "torchmetrics", # TODO: Uncomment when torch supports Python 3.14
"evaluate >=0.4.6",
# "universal-edit-distance >=0.4.3", # TODO: Uncomment when torch supports Python 3.14
"memory-profiler >=0.61.0",
"datasets >=4.4.1",
]
[project.urls]
"Repository" = "https://github.com/analyticsinmotion/werx"
"Bug Tracker" = "https://github.com/analyticsinmotion/werx/issues"
[tool.ruff]
line-length = 88 # <-- Max line length, consistent with Black
target-version = "py314" # <-- Target Python 3.14
extend-include = ["benchmarks"] # <-- Also lint the benchmarks directory
extend-exclude = ["werx-core"] # <-- Exclude the Rust source code directory
[tool.mypy]
python_version = "3.14" # <-- Target Python 3.14
ignore_missing_imports = true # <-- Suppress errors for 3rd-party packages without stubs
strict = true # <-- Enable strict mode for safer code
exclude = "^(tests|benchmarks)/" # <-- Exclude tests and benchmarks from type checking