complexipy 5.3.0__tar.gz → 5.4.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.
- {complexipy-5.3.0 → complexipy-5.4.0}/Cargo.lock +1 -1
- {complexipy-5.3.0 → complexipy-5.4.0}/Cargo.toml +1 -1
- {complexipy-5.3.0 → complexipy-5.4.0}/PKG-INFO +4 -6
- {complexipy-5.3.0 → complexipy-5.4.0}/README.md +2 -1
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/es/index.md +2 -1
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/index.md +2 -1
- {complexipy-5.3.0 → complexipy-5.4.0}/pyproject.toml +15 -7
- {complexipy-5.3.0 → complexipy-5.4.0}/src/classes.rs +5 -4
- {complexipy-5.3.0 → complexipy-5.4.0}/src/cognitive_complexity.rs +26 -9
- {complexipy-5.3.0 → complexipy-5.4.0}/src/lib.rs +4 -3
- {complexipy-5.3.0 → complexipy-5.4.0}/src/utils.rs +0 -49
- {complexipy-5.3.0 → complexipy-5.4.0}/src/wasm.rs +3 -1
- {complexipy-5.3.0 → complexipy-5.4.0}/uv.lock +64 -91
- {complexipy-5.3.0 → complexipy-5.4.0}/.pre-commit-config.yaml +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/LICENSE +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/build-wasm.sh +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/__init__.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/_complexipy.pyi +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/api.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/main.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/py.typed +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/types.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/__init__.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/cache.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/csv.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/diff.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/gitlab.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/json.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/output.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/sarif.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/snapshot.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy/utils/toml.py +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/complexipy.toml +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/about.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/comparison-with-ruff.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/es/about.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/es/comparison-with-ruff.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/es/img/complexipy_icon.svg +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/es/understanding-scores.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/es/usage-guide.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/img/complexipy_icon.svg +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/understanding-scores.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/docs/usage-guide.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/mkdocs.es.yml +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/mkdocs.yml +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/serve-web-version.sh +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/.vscode-test.mjs +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/.vscodeignore +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/CHANGELOG.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/LICENSE +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/README.md +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/eslint.config.mjs +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/extension.js +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/img/complexipy.png +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/img/complexipy_icon.png +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/img/complexipy_icon.svg +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/jsconfig.json +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/package-lock.json +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/package.json +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/test/extension.test.js +0 -0
- {complexipy-5.3.0 → complexipy-5.4.0}/vscode/complexipy/test/statusbar.test.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: complexipy
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.4.0
|
|
4
4
|
Classifier: Development Status :: 5 - Production/Stable
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -18,12 +18,9 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
18
18
|
Classifier: Topic :: Software Development :: Libraries
|
|
19
19
|
Requires-Dist: tomli>=2.2.1
|
|
20
20
|
Requires-Dist: typer>=0.12.5
|
|
21
|
-
Requires-Dist: ruff>=0.9.0 ; extra == 'dev'
|
|
22
|
-
Requires-Dist: ty>=0.0.1a1 ; extra == 'dev'
|
|
23
|
-
Provides-Extra: dev
|
|
24
21
|
License-File: LICENSE
|
|
25
22
|
Summary: An extremely fast Python library to calculate the cognitive complexity of Python files, written in Rust.
|
|
26
|
-
Keywords: cognitive,complexity,cognitive complexity,quality,quality assurance,
|
|
23
|
+
Keywords: maintainability,usability,DevEx tools,cognitive,complexity,cognitive complexity,quality,quality assurance,libraries,performance,static analysis,code quality,technical debt,refactoring,CI/CD,fast
|
|
27
24
|
Home-Page: https://github.com/rohaquinlop/complexipy
|
|
28
25
|
Author-email: Robin Quintero <rohaquinlop301@gmail.com>
|
|
29
26
|
License: MIT
|
|
@@ -50,7 +47,8 @@ Project-URL: Repository, https://github.com/rohaquinlop/complexipy
|
|
|
50
47
|
<a href="#installation">Installation</a> •
|
|
51
48
|
<a href="#quick-start">Quick Start</a> •
|
|
52
49
|
<a href="#integrations">Integrations</a> •
|
|
53
|
-
<a href="https://rohaquinlop.github.io/complexipy/">Documentation</a>
|
|
50
|
+
<a href="https://rohaquinlop.github.io/complexipy/">Documentation</a> •
|
|
51
|
+
<a href="https://www.complexipy-teams.com/">Complexipy Teams</a>
|
|
54
52
|
</p>
|
|
55
53
|
</div>
|
|
56
54
|
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
<a href="#installation">Installation</a> •
|
|
16
16
|
<a href="#quick-start">Quick Start</a> •
|
|
17
17
|
<a href="#integrations">Integrations</a> •
|
|
18
|
-
<a href="https://rohaquinlop.github.io/complexipy/">Documentation</a>
|
|
18
|
+
<a href="https://rohaquinlop.github.io/complexipy/">Documentation</a> •
|
|
19
|
+
<a href="https://www.complexipy-teams.com/">Complexipy Teams</a>
|
|
19
20
|
</p>
|
|
20
21
|
</div>
|
|
21
22
|
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
<a href="#instalación">Instalación</a> •
|
|
16
16
|
<a href="#inicio-rápido">Inicio Rápido</a> •
|
|
17
17
|
<a href="#integraciones">Integraciones</a> •
|
|
18
|
-
<a href="https://rohaquinlop.github.io/complexipy/">Documentación</a>
|
|
18
|
+
<a href="https://rohaquinlop.github.io/complexipy/">Documentación</a> •
|
|
19
|
+
<a href="https://www.complexipy-teams.com/">Complexipy Teams</a>
|
|
19
20
|
</p>
|
|
20
21
|
</div>
|
|
21
22
|
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
<a href="#installation">Installation</a> •
|
|
16
16
|
<a href="#quick-start">Quick Start</a> •
|
|
17
17
|
<a href="#integrations">Integrations</a> •
|
|
18
|
-
<a href="https://rohaquinlop.github.io/complexipy/">Documentation</a>
|
|
18
|
+
<a href="https://rohaquinlop.github.io/complexipy/">Documentation</a> •
|
|
19
|
+
<a href="https://www.complexipy-teams.com/">Complexipy Teams</a>
|
|
19
20
|
</p>
|
|
20
21
|
</div>
|
|
21
22
|
|
|
@@ -9,14 +9,22 @@ readme = "README.md"
|
|
|
9
9
|
license = { text = "MIT" }
|
|
10
10
|
authors = [{name = "Robin Quintero", email = "rohaquinlop301@gmail.com"}]
|
|
11
11
|
keywords = [
|
|
12
|
+
"maintainability",
|
|
13
|
+
"usability",
|
|
14
|
+
"DevEx tools",
|
|
12
15
|
"cognitive",
|
|
13
16
|
"complexity",
|
|
14
17
|
"cognitive complexity",
|
|
15
18
|
"quality",
|
|
16
19
|
"quality assurance",
|
|
17
|
-
"testing",
|
|
18
20
|
"libraries",
|
|
19
21
|
"performance",
|
|
22
|
+
"static analysis",
|
|
23
|
+
"code quality",
|
|
24
|
+
"technical debt",
|
|
25
|
+
"refactoring",
|
|
26
|
+
"CI/CD",
|
|
27
|
+
"fast",
|
|
20
28
|
]
|
|
21
29
|
requires-python = ">=3.8"
|
|
22
30
|
classifiers = [
|
|
@@ -74,12 +82,6 @@ indent-width = 4
|
|
|
74
82
|
[tool.ty.src]
|
|
75
83
|
exclude = ["tests"]
|
|
76
84
|
|
|
77
|
-
[project.optional-dependencies]
|
|
78
|
-
dev = [
|
|
79
|
-
"ruff>=0.9.0",
|
|
80
|
-
"ty>=0.0.1a1",
|
|
81
|
-
]
|
|
82
|
-
|
|
83
85
|
[dependency-groups]
|
|
84
86
|
dev = [
|
|
85
87
|
"maturin>=1.8.3",
|
|
@@ -89,3 +91,9 @@ dev = [
|
|
|
89
91
|
"ruff>=0.9.0",
|
|
90
92
|
"ty>=0.0.1a1",
|
|
91
93
|
]
|
|
94
|
+
|
|
95
|
+
[tool.pytest.ini_options]
|
|
96
|
+
testpaths = ["tests"]
|
|
97
|
+
python_files = ["test_*.py", "main.py"]
|
|
98
|
+
python_functions = ["test_*"]
|
|
99
|
+
norecursedirs = ["tests/src"]
|
|
@@ -29,12 +29,11 @@ pub struct FunctionComplexity {
|
|
|
29
29
|
pub line_complexities: Vec<LineComplexity>,
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
#[cfg_attr(feature = "python", pyclass(module = "complexipy", get_all))]
|
|
33
32
|
#[cfg_attr(
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
feature = "python",
|
|
34
|
+
pyclass(module = "complexipy", get_all),
|
|
35
|
+
derive(Serialize, Deserialize, Clone)
|
|
36
36
|
)]
|
|
37
|
-
#[derive(Clone)]
|
|
38
37
|
pub struct FileComplexity {
|
|
39
38
|
pub path: String,
|
|
40
39
|
pub file_name: String,
|
|
@@ -51,4 +50,6 @@ pub struct FileComplexity {
|
|
|
51
50
|
pub struct CodeComplexity {
|
|
52
51
|
pub functions: Vec<FunctionComplexity>,
|
|
53
52
|
pub complexity: u64,
|
|
53
|
+
#[cfg(feature = "wasm")]
|
|
54
|
+
pub version: String,
|
|
54
55
|
}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
#[cfg(any(feature = "python", feature = "wasm"))]
|
|
2
2
|
mod shared_deps {
|
|
3
|
-
pub use crate::classes::{
|
|
3
|
+
pub use crate::classes::{FunctionComplexity, LineComplexity};
|
|
4
4
|
pub use crate::utils::{count_bool_ops, get_line_number, has_noqa_complexipy, is_decorator};
|
|
5
5
|
pub use ruff_python_ast::{self as ast, Stmt};
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
#[cfg(feature = "python")]
|
|
9
|
+
use crate::classes::{CodeComplexity, FileComplexity};
|
|
10
|
+
|
|
8
11
|
#[cfg(any(feature = "python", feature = "wasm"))]
|
|
9
12
|
use shared_deps::*;
|
|
10
13
|
|
|
@@ -30,6 +33,7 @@ mod python_deps {
|
|
|
30
33
|
#[cfg(feature = "python")]
|
|
31
34
|
use python_deps::*;
|
|
32
35
|
|
|
36
|
+
#[cfg(feature = "python")]
|
|
33
37
|
type ComplexitiesAndFailedPaths = (Vec<FileComplexity>, Vec<String>);
|
|
34
38
|
|
|
35
39
|
#[cfg(feature = "python")]
|
|
@@ -137,7 +141,8 @@ pub fn process_path(
|
|
|
137
141
|
}
|
|
138
142
|
|
|
139
143
|
let repo_path = dir.path().join(&repo_name).to_string_lossy().to_string();
|
|
140
|
-
let (complexities, f_paths) =
|
|
144
|
+
let (complexities, f_paths) =
|
|
145
|
+
evaluate_dir(&repo_path, quiet, exclude.clone(), check_script);
|
|
141
146
|
dir.close()?;
|
|
142
147
|
|
|
143
148
|
file_complexities = complexities;
|
|
@@ -168,7 +173,12 @@ pub fn process_path(
|
|
|
168
173
|
}
|
|
169
174
|
|
|
170
175
|
#[cfg(feature = "python")]
|
|
171
|
-
fn evaluate_dir(
|
|
176
|
+
fn evaluate_dir(
|
|
177
|
+
path: &str,
|
|
178
|
+
quiet: bool,
|
|
179
|
+
exclude: Vec<&str>,
|
|
180
|
+
check_script: bool,
|
|
181
|
+
) -> ComplexitiesAndFailedPaths {
|
|
172
182
|
let mut files_paths: Vec<String> = Vec::new();
|
|
173
183
|
|
|
174
184
|
let parent_dir = path::Path::new(path)
|
|
@@ -263,10 +273,12 @@ fn evaluate_dir(path: &str, quiet: bool, exclude: Vec<&str>, check_script: bool)
|
|
|
263
273
|
if quiet {
|
|
264
274
|
let results: Vec<_> = files_paths
|
|
265
275
|
.iter()
|
|
266
|
-
.map(
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
276
|
+
.map(
|
|
277
|
+
|file_path| match file_complexity(file_path, parent_dir, check_script) {
|
|
278
|
+
Ok(file_complexity) => (Some(file_complexity), None),
|
|
279
|
+
Err(_) => (None, Some(file_path.clone())),
|
|
280
|
+
},
|
|
281
|
+
)
|
|
270
282
|
.collect();
|
|
271
283
|
|
|
272
284
|
let mut complexities = Vec::new();
|
|
@@ -320,7 +332,11 @@ fn evaluate_dir(path: &str, quiet: bool, exclude: Vec<&str>, check_script: bool)
|
|
|
320
332
|
#[cfg(feature = "python")]
|
|
321
333
|
#[pyfunction]
|
|
322
334
|
#[pyo3(signature = (file_path, base_path, check_script=false))]
|
|
323
|
-
pub fn file_complexity(
|
|
335
|
+
pub fn file_complexity(
|
|
336
|
+
file_path: &str,
|
|
337
|
+
base_path: &str,
|
|
338
|
+
check_script: bool,
|
|
339
|
+
) -> PyResult<FileComplexity> {
|
|
324
340
|
let path = path::Path::new(file_path);
|
|
325
341
|
let file_name = path
|
|
326
342
|
.file_name()
|
|
@@ -370,7 +386,8 @@ pub fn code_complexity(code: &str, check_script: bool) -> PyResult<CodeComplexit
|
|
|
370
386
|
|
|
371
387
|
// println!("{:#?}", ast_body);
|
|
372
388
|
|
|
373
|
-
let (functions, complexity) =
|
|
389
|
+
let (functions, complexity) =
|
|
390
|
+
function_level_cognitive_complexity_shared(&ast_body, code, check_script);
|
|
374
391
|
|
|
375
392
|
Ok(CodeComplexity {
|
|
376
393
|
functions,
|
|
@@ -2,16 +2,17 @@ mod classes;
|
|
|
2
2
|
mod cognitive_complexity;
|
|
3
3
|
mod utils;
|
|
4
4
|
|
|
5
|
-
#[cfg(feature = "python")]
|
|
6
|
-
use pyo3::prelude::*;
|
|
7
|
-
|
|
8
5
|
// Add WASM support when wasm feature is enabled
|
|
9
6
|
#[cfg(feature = "wasm")]
|
|
10
7
|
mod wasm;
|
|
11
8
|
|
|
12
9
|
#[cfg(feature = "python")]
|
|
13
10
|
use classes::{CodeComplexity, FileComplexity, FunctionComplexity, LineComplexity};
|
|
11
|
+
#[cfg(feature = "python")]
|
|
14
12
|
use cognitive_complexity::{code_complexity, file_complexity, main};
|
|
13
|
+
#[cfg(feature = "python")]
|
|
14
|
+
use pyo3::prelude::*;
|
|
15
|
+
#[cfg(feature = "python")]
|
|
15
16
|
use utils::{create_snapshot_file, load_snapshot_file, output_csv, output_json};
|
|
16
17
|
|
|
17
18
|
/// A Python module implemented in Rust.
|
|
@@ -284,61 +284,12 @@ pub fn count_bool_ops(expr: ast::Expr, nesting_level: u64) -> u64 {
|
|
|
284
284
|
complexity += count_bool_ops(value.clone(), nesting_level);
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
-
ast::Expr::FString(f) => {
|
|
288
|
-
for element in f.value.elements() {
|
|
289
|
-
if element.is_interpolation() {
|
|
290
|
-
if let Some(inter) = element.as_interpolation() {
|
|
291
|
-
complexity += count_bool_ops(*inter.expression.clone(), nesting_level);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
ast::Expr::ListComp(l) => {
|
|
297
|
-
complexity +=
|
|
298
|
-
count_comprehension_complexity(&l.generators, *l.elt.clone(), nesting_level);
|
|
299
|
-
}
|
|
300
|
-
ast::Expr::SetComp(s) => {
|
|
301
|
-
complexity +=
|
|
302
|
-
count_comprehension_complexity(&s.generators, *s.elt.clone(), nesting_level);
|
|
303
|
-
}
|
|
304
|
-
ast::Expr::Generator(g) => {
|
|
305
|
-
complexity +=
|
|
306
|
-
count_comprehension_complexity(&g.generators, *g.elt.clone(), nesting_level);
|
|
307
|
-
}
|
|
308
|
-
ast::Expr::DictComp(d) => {
|
|
309
|
-
complexity +=
|
|
310
|
-
count_comprehension_complexity(&d.generators, *d.key.clone(), nesting_level);
|
|
311
|
-
complexity += count_bool_ops(*d.value.clone(), nesting_level + 1);
|
|
312
|
-
}
|
|
313
287
|
_ => {}
|
|
314
288
|
}
|
|
315
289
|
|
|
316
290
|
complexity
|
|
317
291
|
}
|
|
318
292
|
|
|
319
|
-
#[cfg(any(feature = "python", feature = "wasm"))]
|
|
320
|
-
fn count_comprehension_complexity(
|
|
321
|
-
generators: &[ast::Comprehension],
|
|
322
|
-
elt: ast::Expr,
|
|
323
|
-
nesting_level: u64,
|
|
324
|
-
) -> u64 {
|
|
325
|
-
let mut complexity: u64 = 1 + nesting_level;
|
|
326
|
-
|
|
327
|
-
for (i, clause) in generators.iter().enumerate() {
|
|
328
|
-
if i > 0 {
|
|
329
|
-
complexity += 1;
|
|
330
|
-
}
|
|
331
|
-
for if_expr in clause.ifs.iter() {
|
|
332
|
-
complexity += 1 + count_bool_ops(if_expr.clone(), nesting_level + 1);
|
|
333
|
-
}
|
|
334
|
-
complexity += count_bool_ops(clause.iter.clone(), nesting_level + 1);
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
complexity += count_bool_ops(elt, nesting_level + 1);
|
|
338
|
-
|
|
339
|
-
complexity
|
|
340
|
-
}
|
|
341
|
-
|
|
342
293
|
#[cfg(any(feature = "python", feature = "wasm"))]
|
|
343
294
|
fn count_different_childs_type(expr: ast::Expr, prev_pr: ast::Expr) -> u64 {
|
|
344
295
|
let mut complexity: u64 = 0;
|
|
@@ -27,10 +27,12 @@ fn get_code_complexity(code: &str) -> Result<CodeComplexity, String> {
|
|
|
27
27
|
Err(e) => return Err(format!("Parse error: {}", e)),
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
let (functions, complexity) =
|
|
30
|
+
let (functions, complexity) =
|
|
31
|
+
function_level_cognitive_complexity_shared(parsed.suite(), code, false);
|
|
31
32
|
|
|
32
33
|
Ok(CodeComplexity {
|
|
33
34
|
complexity,
|
|
34
35
|
functions,
|
|
36
|
+
version: env!("CARGO_PKG_VERSION").to_string(),
|
|
35
37
|
})
|
|
36
38
|
}
|
|
@@ -64,11 +64,11 @@ wheels = [
|
|
|
64
64
|
|
|
65
65
|
[[package]]
|
|
66
66
|
name = "certifi"
|
|
67
|
-
version = "2026.
|
|
67
|
+
version = "2026.4.22"
|
|
68
68
|
source = { registry = "https://pypi.org/simple" }
|
|
69
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
69
|
+
sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" }
|
|
70
70
|
wheels = [
|
|
71
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
71
|
+
{ url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" },
|
|
72
72
|
]
|
|
73
73
|
|
|
74
74
|
[[package]]
|
|
@@ -282,34 +282,25 @@ dependencies = [
|
|
|
282
282
|
{ name = "typer", version = "0.24.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
283
283
|
]
|
|
284
284
|
|
|
285
|
-
[package.optional-dependencies]
|
|
286
|
-
dev = [
|
|
287
|
-
{ name = "ruff" },
|
|
288
|
-
{ name = "ty" },
|
|
289
|
-
]
|
|
290
|
-
|
|
291
285
|
[package.dev-dependencies]
|
|
292
286
|
dev = [
|
|
293
287
|
{ name = "maturin" },
|
|
294
288
|
{ name = "mkdocs-material" },
|
|
295
289
|
{ name = "pre-commit", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
296
290
|
{ name = "pre-commit", version = "4.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
297
|
-
{ name = "pre-commit", version = "4.
|
|
291
|
+
{ name = "pre-commit", version = "4.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
298
292
|
{ name = "pytest", version = "8.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
299
293
|
{ name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
300
|
-
{ name = "pytest", version = "9.0.
|
|
294
|
+
{ name = "pytest", version = "9.0.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
301
295
|
{ name = "ruff" },
|
|
302
296
|
{ name = "ty" },
|
|
303
297
|
]
|
|
304
298
|
|
|
305
299
|
[package.metadata]
|
|
306
300
|
requires-dist = [
|
|
307
|
-
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.9.0" },
|
|
308
301
|
{ name = "tomli", specifier = ">=2.2.1" },
|
|
309
|
-
{ name = "ty", marker = "extra == 'dev'", specifier = ">=0.0.1a1" },
|
|
310
302
|
{ name = "typer", specifier = ">=0.12.5" },
|
|
311
303
|
]
|
|
312
|
-
provides-extras = ["dev"]
|
|
313
304
|
|
|
314
305
|
[package.metadata.requires-dev]
|
|
315
306
|
dev = [
|
|
@@ -335,8 +326,7 @@ name = "exceptiongroup"
|
|
|
335
326
|
version = "1.3.1"
|
|
336
327
|
source = { registry = "https://pypi.org/simple" }
|
|
337
328
|
dependencies = [
|
|
338
|
-
{ name = "typing-extensions",
|
|
339
|
-
{ name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.13'" },
|
|
329
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
340
330
|
]
|
|
341
331
|
sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" }
|
|
342
332
|
wheels = [
|
|
@@ -369,14 +359,14 @@ wheels = [
|
|
|
369
359
|
|
|
370
360
|
[[package]]
|
|
371
361
|
name = "filelock"
|
|
372
|
-
version = "3.
|
|
362
|
+
version = "3.29.0"
|
|
373
363
|
source = { registry = "https://pypi.org/simple" }
|
|
374
364
|
resolution-markers = [
|
|
375
365
|
"python_full_version >= '3.10'",
|
|
376
366
|
]
|
|
377
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
367
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b5/fe/997687a931ab51049acce6fa1f23e8f01216374ea81374ddee763c493db5/filelock-3.29.0.tar.gz", hash = "sha256:69974355e960702e789734cb4871f884ea6fe50bd8404051a3530bc07809cf90", size = 57571, upload-time = "2026-04-19T15:39:10.068Z" }
|
|
378
368
|
wheels = [
|
|
379
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
369
|
+
{ url = "https://files.pythonhosted.org/packages/81/47/dd9a212ef6e343a6857485ffe25bba537304f1913bdbed446a23f7f592e1/filelock-3.29.0-py3-none-any.whl", hash = "sha256:96f5f6344709aa1572bbf631c640e4ebeeb519e08da902c39a001882f30ac258", size = 39812, upload-time = "2026-04-19T15:39:08.752Z" },
|
|
380
370
|
]
|
|
381
371
|
|
|
382
372
|
[[package]]
|
|
@@ -417,23 +407,23 @@ wheels = [
|
|
|
417
407
|
|
|
418
408
|
[[package]]
|
|
419
409
|
name = "identify"
|
|
420
|
-
version = "2.6.
|
|
410
|
+
version = "2.6.19"
|
|
421
411
|
source = { registry = "https://pypi.org/simple" }
|
|
422
412
|
resolution-markers = [
|
|
423
413
|
"python_full_version >= '3.10'",
|
|
424
414
|
]
|
|
425
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
415
|
+
sdist = { url = "https://files.pythonhosted.org/packages/52/63/51723b5f116cc04b061cb6f5a561790abf249d25931d515cd375e063e0f4/identify-2.6.19.tar.gz", hash = "sha256:6be5020c38fcb07da56c53733538a3081ea5aa70d36a156f83044bfbf9173842", size = 99567, upload-time = "2026-04-17T18:39:50.265Z" }
|
|
426
416
|
wheels = [
|
|
427
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
417
|
+
{ url = "https://files.pythonhosted.org/packages/94/84/d9273cd09688070a6523c4aee4663a8538721b2b755c4962aafae0011e72/identify-2.6.19-py2.py3-none-any.whl", hash = "sha256:20e6a87f786f768c092a721ad107fc9df0eb89347be9396cadf3f4abbd1fb78a", size = 99397, upload-time = "2026-04-17T18:39:49.221Z" },
|
|
428
418
|
]
|
|
429
419
|
|
|
430
420
|
[[package]]
|
|
431
421
|
name = "idna"
|
|
432
|
-
version = "3.
|
|
422
|
+
version = "3.13"
|
|
433
423
|
source = { registry = "https://pypi.org/simple" }
|
|
434
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
424
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ce/cc/762dfb036166873f0059f3b7de4565e1b5bc3d6f28a414c13da27e442f99/idna-3.13.tar.gz", hash = "sha256:585ea8fe5d69b9181ec1afba340451fba6ba764af97026f92a91d4eef164a242", size = 194210, upload-time = "2026-04-22T16:42:42.314Z" }
|
|
435
425
|
wheels = [
|
|
436
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
426
|
+
{ url = "https://files.pythonhosted.org/packages/5d/13/ad7d7ca3808a898b4612b6fe93cde56b53f3034dcde235acb1f0e1df24c6/idna-3.13-py3-none-any.whl", hash = "sha256:892ea0cde124a99ce773decba204c5552b69c3c67ffd5f232eb7696135bc8bb3", size = 68629, upload-time = "2026-04-22T16:42:40.909Z" },
|
|
437
427
|
]
|
|
438
428
|
|
|
439
429
|
[[package]]
|
|
@@ -459,7 +449,7 @@ resolution-markers = [
|
|
|
459
449
|
"python_full_version == '3.9.*'",
|
|
460
450
|
]
|
|
461
451
|
dependencies = [
|
|
462
|
-
{ name = "zipp", version = "3.23.
|
|
452
|
+
{ name = "zipp", version = "3.23.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
463
453
|
]
|
|
464
454
|
sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" }
|
|
465
455
|
wheels = [
|
|
@@ -740,26 +730,26 @@ wheels = [
|
|
|
740
730
|
|
|
741
731
|
[[package]]
|
|
742
732
|
name = "maturin"
|
|
743
|
-
version = "1.
|
|
733
|
+
version = "1.13.1"
|
|
744
734
|
source = { registry = "https://pypi.org/simple" }
|
|
745
735
|
dependencies = [
|
|
746
736
|
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
747
737
|
]
|
|
748
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
738
|
+
sdist = { url = "https://files.pythonhosted.org/packages/39/16/b284a7bc4af3dd87717c784278c1b8cb18606ad1f6f7a671c47bfd9c3df0/maturin-1.13.1.tar.gz", hash = "sha256:9a87ff3b8e4d1c6eac33ebfe8e261e8236516d98d45c0323550621819b5a1a2f", size = 340369, upload-time = "2026-04-09T15:14:07.026Z" }
|
|
749
739
|
wheels = [
|
|
750
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
751
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
752
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
753
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
754
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
755
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
756
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
757
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
758
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
759
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
760
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
761
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
762
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
740
|
+
{ url = "https://files.pythonhosted.org/packages/43/4d/a23fc95be881aa8c7a6ea353410417872e4d7065df03d7f3db8f0dbed4a7/maturin-1.13.1-py3-none-linux_armv6l.whl", hash = "sha256:416e4e01cb88b798e606ee43929df897e42c1647b722ef68283816cca99a8742", size = 10102444, upload-time = "2026-04-09T15:13:48.393Z" },
|
|
741
|
+
{ url = "https://files.pythonhosted.org/packages/a6/1e/65c385d65bae95cf04895d52f39dbed8b1453ae55da2903d252ade40a774/maturin-1.13.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:72888e87819ce546d0d2df900e4b385e4ef299077d92ee37b48923a5602dae94", size = 19576043, upload-time = "2026-04-09T15:14:08.685Z" },
|
|
742
|
+
{ url = "https://files.pythonhosted.org/packages/8f/13/f6bc868d0bfecd9314870b97f530a167e31f7878ac4945c78245c6eef69c/maturin-1.13.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:98b5fcf1a186c217830a8295ecc2989c6b1cf50945417adfc15252107b9475b7", size = 10117339, upload-time = "2026-04-09T15:13:40.559Z" },
|
|
743
|
+
{ url = "https://files.pythonhosted.org/packages/51/58/279e081305c11c1c1c4fccacf77df8959646c5d4de7a57ec7e787653e270/maturin-1.13.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:3da18cccf2f683c0977bff9146a0908d6ffce836d600665736ac01679f588cb9", size = 10139689, upload-time = "2026-04-09T15:13:38.291Z" },
|
|
744
|
+
{ url = "https://files.pythonhosted.org/packages/00/94/69391af5396c6aab723932240803f49e5f3de3dd7c57d32f02d237a0ce32/maturin-1.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:6b1e5916a253243e8f5f9e847b62bbc98420eec48c9ce2e2e8724c6da89d359b", size = 10551141, upload-time = "2026-04-09T15:13:42.887Z" },
|
|
745
|
+
{ url = "https://files.pythonhosted.org/packages/9e/bf/4edac2667b49e3733438062ae416413b8fc8d42e1bd499ba15e1fb02fc55/maturin-1.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:dc91031e0619c1e28730279ef9ee5f106c9b9ec806b013f888676b242f892eb7", size = 9983094, upload-time = "2026-04-09T15:13:56.868Z" },
|
|
746
|
+
{ url = "https://files.pythonhosted.org/packages/79/94/a6d651cfe8fc6bf2e892c90e3cdbb25c06d81c9115140d03ea1a68a97575/maturin-1.13.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:001741c6cff56aa8ea59a0d78ae990c0550d0e3e82b00b683eedb4158a8ef7e6", size = 9949980, upload-time = "2026-04-09T15:13:59.185Z" },
|
|
747
|
+
{ url = "https://files.pythonhosted.org/packages/b5/d1/82c067464f848e38af9910bce55eb54302b1c1284a279d515dbfcf5994f5/maturin-1.13.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:01c845825c917c07c1d0b2c9032c59c16a7d383d1e649a46481d3e5693c2750f", size = 13186276, upload-time = "2026-04-09T15:13:45.725Z" },
|
|
748
|
+
{ url = "https://files.pythonhosted.org/packages/7c/f4/25367baf1025580f047f9b37598bb3fadc416e24536afd4f28e190335c73/maturin-1.13.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f69093ed4a0e6464e52a7fc26d714f859ce15630ec8070743398c6bf41f38a9e", size = 10891837, upload-time = "2026-04-09T15:13:35.68Z" },
|
|
749
|
+
{ url = "https://files.pythonhosted.org/packages/af/be/caafad8ce74974b7deafdf144d12f758993dfea4c66c9905b138f51a7792/maturin-1.13.1-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:c1490584f3c70af45466ee99065b49e6657ebdccac6b10571bb44681309c9396", size = 10351032, upload-time = "2026-04-09T15:14:01.632Z" },
|
|
750
|
+
{ url = "https://files.pythonhosted.org/packages/66/0e/970a721d27cfa410e8bfa0a1e32e6ef52cb8169692110a5fdabe1af3f570/maturin-1.13.1-py3-none-win32.whl", hash = "sha256:c6a720b252c99de072922dbe4432ab19662b6f80045b0355fec23bdfccb450da", size = 8855465, upload-time = "2026-04-09T15:13:51.122Z" },
|
|
751
|
+
{ url = "https://files.pythonhosted.org/packages/88/70/7c1e0d65fa147d5479055a171541c82b8cdfc1c825d85a82240470f14176/maturin-1.13.1-py3-none-win_amd64.whl", hash = "sha256:a2017d2281203d0c6570240e7d746564d766d756105823b7de68bda6ae722711", size = 10230471, upload-time = "2026-04-09T15:13:53.89Z" },
|
|
752
|
+
{ url = "https://files.pythonhosted.org/packages/c5/2a/afe0193b673a79ffd2e01ad999511b7e9e6b49af02bb3759d82a78c3043d/maturin-1.13.1-py3-none-win_arm64.whl", hash = "sha256:2839024dcd65776abb4759e5bca29941971e095574162a4d335191da4be9ff24", size = 8905575, upload-time = "2026-04-09T15:14:03.891Z" },
|
|
763
753
|
]
|
|
764
754
|
|
|
765
755
|
[[package]]
|
|
@@ -802,7 +792,7 @@ dependencies = [
|
|
|
802
792
|
{ name = "mkdocs-get-deps", version = "0.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
|
|
803
793
|
{ name = "packaging" },
|
|
804
794
|
{ name = "pathspec", version = "0.12.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
805
|
-
{ name = "pathspec", version = "1.0
|
|
795
|
+
{ name = "pathspec", version = "1.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
|
|
806
796
|
{ name = "pyyaml" },
|
|
807
797
|
{ name = "pyyaml-env-tag", version = "0.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
808
798
|
{ name = "pyyaml-env-tag", version = "1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
|
|
@@ -844,7 +834,7 @@ dependencies = [
|
|
|
844
834
|
{ name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
845
835
|
{ name = "mergedeep", marker = "python_full_version >= '3.9'" },
|
|
846
836
|
{ name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
847
|
-
{ name = "platformdirs", version = "4.9.
|
|
837
|
+
{ name = "platformdirs", version = "4.9.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
848
838
|
{ name = "pyyaml", marker = "python_full_version >= '3.9'" },
|
|
849
839
|
]
|
|
850
840
|
sdist = { url = "https://files.pythonhosted.org/packages/ce/25/b3cccb187655b9393572bde9b09261d267c3bf2f2cdabe347673be5976a6/mkdocs_get_deps-0.2.2.tar.gz", hash = "sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1", size = 11047, upload-time = "2026-03-10T02:46:33.632Z" }
|
|
@@ -901,11 +891,11 @@ wheels = [
|
|
|
901
891
|
|
|
902
892
|
[[package]]
|
|
903
893
|
name = "packaging"
|
|
904
|
-
version = "26.
|
|
894
|
+
version = "26.1"
|
|
905
895
|
source = { registry = "https://pypi.org/simple" }
|
|
906
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
896
|
+
sdist = { url = "https://files.pythonhosted.org/packages/df/de/0d2b39fb4af88a0258f3bac87dfcbb48e73fbdea4a2ed0e2213f9a4c2f9a/packaging-26.1.tar.gz", hash = "sha256:f042152b681c4bfac5cae2742a55e103d27ab2ec0f3d88037136b6bfe7c9c5de", size = 215519, upload-time = "2026-04-14T21:12:49.362Z" }
|
|
907
897
|
wheels = [
|
|
908
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
898
|
+
{ url = "https://files.pythonhosted.org/packages/7a/c2/920ef838e2f0028c8262f16101ec09ebd5969864e5a64c4c05fad0617c56/packaging-26.1-py3-none-any.whl", hash = "sha256:5d9c0669c6285e491e0ced2eee587eaf67b670d94a19e94e3984a481aba6802f", size = 95831, upload-time = "2026-04-14T21:12:47.56Z" },
|
|
909
899
|
]
|
|
910
900
|
|
|
911
901
|
[[package]]
|
|
@@ -931,15 +921,15 @@ wheels = [
|
|
|
931
921
|
|
|
932
922
|
[[package]]
|
|
933
923
|
name = "pathspec"
|
|
934
|
-
version = "1.0
|
|
924
|
+
version = "1.1.0"
|
|
935
925
|
source = { registry = "https://pypi.org/simple" }
|
|
936
926
|
resolution-markers = [
|
|
937
927
|
"python_full_version >= '3.10'",
|
|
938
928
|
"python_full_version == '3.9.*'",
|
|
939
929
|
]
|
|
940
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
930
|
+
sdist = { url = "https://files.pythonhosted.org/packages/2e/17/9c3094b822982b9f1ea666d8580ce59000f61f87c1663556fb72031ad9ec/pathspec-1.1.0.tar.gz", hash = "sha256:f5d7c555da02fd8dde3e4a2354b6aba817a89112fa8f333f7917a2a4834dd080", size = 133918, upload-time = "2026-04-23T01:46:22.298Z" }
|
|
941
931
|
wheels = [
|
|
942
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
932
|
+
{ url = "https://files.pythonhosted.org/packages/fa/c9/8eed0486f074e9f1ca7f8ce5ad663e65f12fdab344028d658fa1b03d35e0/pathspec-1.1.0-py3-none-any.whl", hash = "sha256:574b128f7456bd899045ccd142dd446af7e6cfd0072d63ad73fbc55fbb4aaa42", size = 56264, upload-time = "2026-04-23T01:46:20.606Z" },
|
|
943
933
|
]
|
|
944
934
|
|
|
945
935
|
[[package]]
|
|
@@ -968,14 +958,14 @@ wheels = [
|
|
|
968
958
|
|
|
969
959
|
[[package]]
|
|
970
960
|
name = "platformdirs"
|
|
971
|
-
version = "4.9.
|
|
961
|
+
version = "4.9.6"
|
|
972
962
|
source = { registry = "https://pypi.org/simple" }
|
|
973
963
|
resolution-markers = [
|
|
974
964
|
"python_full_version >= '3.10'",
|
|
975
965
|
]
|
|
976
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
966
|
+
sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload-time = "2026-04-09T00:04:10.812Z" }
|
|
977
967
|
wheels = [
|
|
978
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
968
|
+
{ url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" },
|
|
979
969
|
]
|
|
980
970
|
|
|
981
971
|
[[package]]
|
|
@@ -1043,21 +1033,21 @@ wheels = [
|
|
|
1043
1033
|
|
|
1044
1034
|
[[package]]
|
|
1045
1035
|
name = "pre-commit"
|
|
1046
|
-
version = "4.
|
|
1036
|
+
version = "4.6.0"
|
|
1047
1037
|
source = { registry = "https://pypi.org/simple" }
|
|
1048
1038
|
resolution-markers = [
|
|
1049
1039
|
"python_full_version >= '3.10'",
|
|
1050
1040
|
]
|
|
1051
1041
|
dependencies = [
|
|
1052
1042
|
{ name = "cfgv", version = "3.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1053
|
-
{ name = "identify", version = "2.6.
|
|
1043
|
+
{ name = "identify", version = "2.6.19", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1054
1044
|
{ name = "nodeenv", marker = "python_full_version >= '3.10'" },
|
|
1055
1045
|
{ name = "pyyaml", marker = "python_full_version >= '3.10'" },
|
|
1056
1046
|
{ name = "virtualenv", marker = "python_full_version >= '3.10'" },
|
|
1057
1047
|
]
|
|
1058
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1048
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8e/22/2de9408ac81acbb8a7d05d4cc064a152ccf33b3d480ebe0cd292153db239/pre_commit-4.6.0.tar.gz", hash = "sha256:718d2208cef53fdc38206e40524a6d4d9576d103eb16f0fec11c875e7716e9d9", size = 198525, upload-time = "2026-04-21T20:31:41.613Z" }
|
|
1059
1049
|
wheels = [
|
|
1060
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1050
|
+
{ url = "https://files.pythonhosted.org/packages/80/6e/4b28b62ecb6aae56769c34a8ff1d661473ec1e9519e2d5f8b2c150086b26/pre_commit-4.6.0-py2.py3-none-any.whl", hash = "sha256:e2cf246f7299edcabcf15f9b0571fdce06058527f0a06535068a86d38089f29b", size = 226472, upload-time = "2026-04-21T20:31:40.092Z" },
|
|
1061
1051
|
]
|
|
1062
1052
|
|
|
1063
1053
|
[[package]]
|
|
@@ -1162,7 +1152,7 @@ wheels = [
|
|
|
1162
1152
|
|
|
1163
1153
|
[[package]]
|
|
1164
1154
|
name = "pytest"
|
|
1165
|
-
version = "9.0.
|
|
1155
|
+
version = "9.0.3"
|
|
1166
1156
|
source = { registry = "https://pypi.org/simple" }
|
|
1167
1157
|
resolution-markers = [
|
|
1168
1158
|
"python_full_version >= '3.10'",
|
|
@@ -1176,9 +1166,9 @@ dependencies = [
|
|
|
1176
1166
|
{ name = "pygments", version = "2.20.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1177
1167
|
{ name = "tomli", marker = "python_full_version == '3.10.*'" },
|
|
1178
1168
|
]
|
|
1179
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1169
|
+
sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" }
|
|
1180
1170
|
wheels = [
|
|
1181
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1171
|
+
{ url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" },
|
|
1182
1172
|
]
|
|
1183
1173
|
|
|
1184
1174
|
[[package]]
|
|
@@ -1195,19 +1185,19 @@ wheels = [
|
|
|
1195
1185
|
|
|
1196
1186
|
[[package]]
|
|
1197
1187
|
name = "python-discovery"
|
|
1198
|
-
version = "1.2.
|
|
1188
|
+
version = "1.2.2"
|
|
1199
1189
|
source = { registry = "https://pypi.org/simple" }
|
|
1200
1190
|
dependencies = [
|
|
1201
1191
|
{ name = "filelock", version = "3.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
1202
1192
|
{ name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
1203
|
-
{ name = "filelock", version = "3.
|
|
1193
|
+
{ name = "filelock", version = "3.29.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1204
1194
|
{ name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
1205
1195
|
{ name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
1206
|
-
{ name = "platformdirs", version = "4.9.
|
|
1196
|
+
{ name = "platformdirs", version = "4.9.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1207
1197
|
]
|
|
1208
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1198
|
+
sdist = { url = "https://files.pythonhosted.org/packages/de/ef/3bae0e537cfe91e8431efcba4434463d2c5a65f5a89edd47c6cf2f03c55f/python_discovery-1.2.2.tar.gz", hash = "sha256:876e9c57139eb757cb5878cbdd9ae5379e5d96266c99ef731119e04fffe533bb", size = 58872, upload-time = "2026-04-07T17:28:49.249Z" }
|
|
1209
1199
|
wheels = [
|
|
1210
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1200
|
+
{ url = "https://files.pythonhosted.org/packages/d8/db/795879cc3ddfe338599bddea6388cc5100b088db0a4caf6e6c1af1c27e04/python_discovery-1.2.2-py3-none-any.whl", hash = "sha256:e1ae95d9af875e78f15e19aed0c6137ab1bb49c200f21f5061786490c9585c7a", size = 31894, upload-time = "2026-04-07T17:28:48.09Z" },
|
|
1211
1201
|
]
|
|
1212
1202
|
|
|
1213
1203
|
[[package]]
|
|
@@ -1531,7 +1521,7 @@ dependencies = [
|
|
|
1531
1521
|
{ name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
1532
1522
|
{ name = "rich", marker = "python_full_version < '3.9'" },
|
|
1533
1523
|
{ name = "shellingham", marker = "python_full_version < '3.9'" },
|
|
1534
|
-
{ name = "typing-extensions",
|
|
1524
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.9'" },
|
|
1535
1525
|
]
|
|
1536
1526
|
sdist = { url = "https://files.pythonhosted.org/packages/6d/c1/933d30fd7a123ed981e2a1eedafceab63cb379db0402e438a13bc51bbb15/typer-0.20.1.tar.gz", hash = "sha256:68585eb1b01203689c4199bc440d6be616f0851e9f0eb41e4a778845c5a0fd5b", size = 105968, upload-time = "2025-12-19T16:48:56.302Z" }
|
|
1537
1527
|
wheels = [
|
|
@@ -1578,27 +1568,11 @@ wheels = [
|
|
|
1578
1568
|
name = "typing-extensions"
|
|
1579
1569
|
version = "4.13.2"
|
|
1580
1570
|
source = { registry = "https://pypi.org/simple" }
|
|
1581
|
-
resolution-markers = [
|
|
1582
|
-
"python_full_version < '3.9'",
|
|
1583
|
-
]
|
|
1584
1571
|
sdist = { url = "https://files.pythonhosted.org/packages/f6/37/23083fcd6e35492953e8d2aaaa68b860eb422b34627b13f2ce3eb6106061/typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef", size = 106967, upload-time = "2025-04-10T14:19:05.416Z" }
|
|
1585
1572
|
wheels = [
|
|
1586
1573
|
{ url = "https://files.pythonhosted.org/packages/8b/54/b1ae86c0973cc6f0210b53d508ca3641fb6d0c56823f288d108bc7ab3cc8/typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c", size = 45806, upload-time = "2025-04-10T14:19:03.967Z" },
|
|
1587
1574
|
]
|
|
1588
1575
|
|
|
1589
|
-
[[package]]
|
|
1590
|
-
name = "typing-extensions"
|
|
1591
|
-
version = "4.15.0"
|
|
1592
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1593
|
-
resolution-markers = [
|
|
1594
|
-
"python_full_version >= '3.10'",
|
|
1595
|
-
"python_full_version == '3.9.*'",
|
|
1596
|
-
]
|
|
1597
|
-
sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" }
|
|
1598
|
-
wheels = [
|
|
1599
|
-
{ url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" },
|
|
1600
|
-
]
|
|
1601
|
-
|
|
1602
1576
|
[[package]]
|
|
1603
1577
|
name = "urllib3"
|
|
1604
1578
|
version = "2.2.3"
|
|
@@ -1626,23 +1600,22 @@ wheels = [
|
|
|
1626
1600
|
|
|
1627
1601
|
[[package]]
|
|
1628
1602
|
name = "virtualenv"
|
|
1629
|
-
version = "21.2.
|
|
1603
|
+
version = "21.2.4"
|
|
1630
1604
|
source = { registry = "https://pypi.org/simple" }
|
|
1631
1605
|
dependencies = [
|
|
1632
1606
|
{ name = "distlib" },
|
|
1633
1607
|
{ name = "filelock", version = "3.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
1634
1608
|
{ name = "filelock", version = "3.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
1635
|
-
{ name = "filelock", version = "3.
|
|
1609
|
+
{ name = "filelock", version = "3.29.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1636
1610
|
{ name = "platformdirs", version = "4.3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.9'" },
|
|
1637
1611
|
{ name = "platformdirs", version = "4.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
|
|
1638
|
-
{ name = "platformdirs", version = "4.9.
|
|
1612
|
+
{ name = "platformdirs", version = "4.9.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
|
|
1639
1613
|
{ name = "python-discovery" },
|
|
1640
|
-
{ name = "typing-extensions",
|
|
1641
|
-
{ name = "typing-extensions", version = "4.15.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9' and python_full_version < '3.11'" },
|
|
1614
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
|
|
1642
1615
|
]
|
|
1643
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1616
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0c/98/3a7e644e19cb26133488caff231be390579860bbbb3da35913c49a1d0a46/virtualenv-21.2.4.tar.gz", hash = "sha256:b294ef68192638004d72524ce7ef303e9d0cf5a44c95ce2e54a7500a6381cada", size = 5850742, upload-time = "2026-04-14T22:15:31.438Z" }
|
|
1644
1617
|
wheels = [
|
|
1645
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1618
|
+
{ url = "https://files.pythonhosted.org/packages/27/8d/edd0bd910ff803c308ee9a6b7778621af0d10252219ad9f19ef4d4982a61/virtualenv-21.2.4-py3-none-any.whl", hash = "sha256:29d21e941795206138d0f22f4e45ff7050e5da6c6472299fb7103318763861ac", size = 5831232, upload-time = "2026-04-14T22:15:29.342Z" },
|
|
1646
1619
|
]
|
|
1647
1620
|
|
|
1648
1621
|
[[package]]
|
|
@@ -1745,12 +1718,12 @@ wheels = [
|
|
|
1745
1718
|
|
|
1746
1719
|
[[package]]
|
|
1747
1720
|
name = "zipp"
|
|
1748
|
-
version = "3.23.
|
|
1721
|
+
version = "3.23.1"
|
|
1749
1722
|
source = { registry = "https://pypi.org/simple" }
|
|
1750
1723
|
resolution-markers = [
|
|
1751
1724
|
"python_full_version == '3.9.*'",
|
|
1752
1725
|
]
|
|
1753
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1726
|
+
sdist = { url = "https://files.pythonhosted.org/packages/30/21/093488dfc7cc8964ded15ab726fad40f25fd3d788fd741cc1c5a17d78ee8/zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110", size = 25965, upload-time = "2026-04-13T23:21:46.6Z" }
|
|
1754
1727
|
wheels = [
|
|
1755
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1728
|
+
{ url = "https://files.pythonhosted.org/packages/08/8a/0861bec20485572fbddf3dfba2910e38fe249796cb73ecdeb74e07eeb8d3/zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc", size = 10378, upload-time = "2026-04-13T23:21:45.386Z" },
|
|
1756
1729
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|