unitforge 0.3.10__tar.gz → 0.3.12__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.
- {unitforge-0.3.10 → unitforge-0.3.12}/.gitignore +2 -0
- unitforge-0.3.12/.gitlab-ci.yml +87 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/Cargo.lock +9 -2
- {unitforge-0.3.10 → unitforge-0.3.12}/Cargo.toml +5 -4
- {unitforge-0.3.10 → unitforge-0.3.12}/PKG-INFO +3 -1
- {unitforge-0.3.10 → unitforge-0.3.12}/pyproject.toml +2 -0
- unitforge-0.3.12/python/unitforge/__init__.pyi +1744 -0
- unitforge-0.3.12/python/unitforge/py.typed +0 -0
- unitforge-0.3.12/scripts/generate_python_stubs.py +502 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/impl_macros.rs +1 -1
- {unitforge-0.3.10 → unitforge-0.3.12}/src/lib.rs +4 -4
- unitforge-0.3.12/src/quantities.template.rs +624 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/relations.rs +1 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/bindings/matrix3_py.template.rs +1 -1
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/bindings/vector3_py.template.rs +29 -6
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/test_small_linalg.py +14 -1
- unitforge-0.3.12/tests/typecheck/mypy_smoke.py +48 -0
- unitforge-0.3.12/unitforge_macros/Cargo.toml +15 -0
- unitforge-0.3.10/build.rs → unitforge-0.3.12/unitforge_macros/src/lib.rs +306 -92
- unitforge-0.3.10/.gitlab-ci.yml +0 -49
- unitforge-0.3.10/src/quantities.template.rs +0 -240
- {unitforge-0.3.10 → unitforge-0.3.12}/Readme.md +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/Readme_py.md +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/prelude.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/acceleration.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/angle.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/angular_acceleration.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/angular_velocity.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/area.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/area_of_moment.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/charge.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/compliance.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/density.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/distance.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force_area.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force_distance.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force_div_distance_power_four.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force_per_volume.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force_stress.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/force_volume.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/inverse_area.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/inverse_distance.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/inverse_stress.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/mass.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/mass_div_time_squared_volume.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/mass_per_distance.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/rotational_stiffness.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/stiffness.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/strain.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/stress.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/stress_squared.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/time.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/velocity.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/velocity_squared.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/voltage.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/quantities/volume.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/matrix2.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/matrix2x3.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/matrix3.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/matrix3x2.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/vector2.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/small_linalg/vector3.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/tests/quantity_unit_tests.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/src/tests/serde_tests.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/matrix2.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/matrix2x3.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/matrix3.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/matrix3x2.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/ndarray_dot.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/quantities.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/small_linalg_interfaces.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/test_quantities.py +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/vector2.rs +0 -0
- {unitforge-0.3.10 → unitforge-0.3.12}/tests/vector3.rs +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
image: "rust:latest"
|
|
2
|
+
|
|
3
|
+
lint:
|
|
4
|
+
script:
|
|
5
|
+
- rustup component add clippy
|
|
6
|
+
- cargo clippy --no-deps -- -D warnings
|
|
7
|
+
allow_failure: true
|
|
8
|
+
|
|
9
|
+
lint_serde:
|
|
10
|
+
script:
|
|
11
|
+
- rustup component add clippy
|
|
12
|
+
- cargo clippy -F serde --no-deps -- -D warnings
|
|
13
|
+
allow_failure: true
|
|
14
|
+
|
|
15
|
+
lint_strum:
|
|
16
|
+
script:
|
|
17
|
+
- rustup component add clippy
|
|
18
|
+
- cargo clippy -F strum --no-deps -- -D warnings
|
|
19
|
+
allow_failure: true
|
|
20
|
+
|
|
21
|
+
lint_pyo3:
|
|
22
|
+
script:
|
|
23
|
+
- rustup component add clippy
|
|
24
|
+
- cargo clippy -F pyo3 --no-deps -- -D warnings
|
|
25
|
+
allow_failure: true
|
|
26
|
+
|
|
27
|
+
test:
|
|
28
|
+
script:
|
|
29
|
+
- rustc --version && cargo --version
|
|
30
|
+
- cargo test --workspace --verbose
|
|
31
|
+
|
|
32
|
+
test_serde:
|
|
33
|
+
script:
|
|
34
|
+
- rustc --version && cargo --version
|
|
35
|
+
- cargo test -F serde --workspace
|
|
36
|
+
|
|
37
|
+
test_strum:
|
|
38
|
+
script:
|
|
39
|
+
- cargo test -F strum --workspace
|
|
40
|
+
|
|
41
|
+
test_pyo3:
|
|
42
|
+
script:
|
|
43
|
+
- apt-get update && apt-get install -y python3 python3-venv python3.13-dev
|
|
44
|
+
- python3 -m venv .venv
|
|
45
|
+
- source .venv/bin/activate
|
|
46
|
+
- pip install --upgrade pip setuptools wheel maturin pytest numpy
|
|
47
|
+
- python scripts/generate_python_stubs.py
|
|
48
|
+
- maturin develop --features pyo3
|
|
49
|
+
- pytest tests
|
|
50
|
+
- deactivate
|
|
51
|
+
|
|
52
|
+
typecheck_pyo3_stubs:
|
|
53
|
+
script:
|
|
54
|
+
- apt-get update && apt-get install -y python3 python3-venv python3.13-dev
|
|
55
|
+
- python3 -m venv .venv
|
|
56
|
+
- source .venv/bin/activate
|
|
57
|
+
- pip install --upgrade pip setuptools wheel maturin numpy "mypy==1.8.0"
|
|
58
|
+
- python scripts/generate_python_stubs.py
|
|
59
|
+
- python scripts/generate_python_stubs.py --check
|
|
60
|
+
- MYPYPATH=python mypy --python-version 3.7 tests/typecheck/mypy_smoke.py
|
|
61
|
+
- maturin build --features pyo3 --out dist
|
|
62
|
+
- |
|
|
63
|
+
python - <<'PY'
|
|
64
|
+
import glob
|
|
65
|
+
import zipfile
|
|
66
|
+
|
|
67
|
+
wheels = sorted(glob.glob("dist/*.whl"))
|
|
68
|
+
if not wheels:
|
|
69
|
+
raise SystemExit("No wheels built in dist/")
|
|
70
|
+
|
|
71
|
+
required = {
|
|
72
|
+
"unitforge/__init__.py",
|
|
73
|
+
"unitforge/__init__.pyi",
|
|
74
|
+
"unitforge/py.typed",
|
|
75
|
+
}
|
|
76
|
+
with zipfile.ZipFile(wheels[-1]) as wheel:
|
|
77
|
+
names = set(wheel.namelist())
|
|
78
|
+
missing = sorted(required - names)
|
|
79
|
+
if missing:
|
|
80
|
+
raise SystemExit(f"Wheel is missing required typing artifacts: {missing}")
|
|
81
|
+
print("Wheel typing artifacts verified.")
|
|
82
|
+
PY
|
|
83
|
+
- pip install --force-reinstall --no-deps dist/*.whl
|
|
84
|
+
- TMP_DIR="$(mktemp -d)"
|
|
85
|
+
- cp tests/typecheck/mypy_smoke.py "$TMP_DIR"/
|
|
86
|
+
- (cd "$TMP_DIR" && mypy --python-version 3.7 mypy_smoke.py)
|
|
87
|
+
- deactivate
|
|
@@ -369,15 +369,22 @@ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
|
|
|
369
369
|
|
|
370
370
|
[[package]]
|
|
371
371
|
name = "unitforge"
|
|
372
|
-
version = "0.3.
|
|
372
|
+
version = "0.3.12"
|
|
373
373
|
dependencies = [
|
|
374
374
|
"ndarray",
|
|
375
375
|
"num-traits",
|
|
376
376
|
"numpy",
|
|
377
377
|
"pyo3",
|
|
378
|
-
"regex",
|
|
379
378
|
"serde",
|
|
380
379
|
"serde_json",
|
|
381
380
|
"strum",
|
|
382
381
|
"strum_macros",
|
|
382
|
+
"unitforge_macros",
|
|
383
|
+
]
|
|
384
|
+
|
|
385
|
+
[[package]]
|
|
386
|
+
name = "unitforge_macros"
|
|
387
|
+
version = "0.3.12"
|
|
388
|
+
dependencies = [
|
|
389
|
+
"regex",
|
|
383
390
|
]
|
|
@@ -4,7 +4,7 @@ crate-type = ["cdylib", "rlib"]
|
|
|
4
4
|
|
|
5
5
|
[package]
|
|
6
6
|
name = "unitforge"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.12"
|
|
8
8
|
edition = "2021"
|
|
9
9
|
authors = ["Dr.Q team <info@askdrq.com>", "Henrik Stromberg <henrik@askdrq.com>"]
|
|
10
10
|
description = "A library for unit and quantity consistent computations in Rust"
|
|
@@ -23,11 +23,12 @@ pyo3 = { version = "0.26.0", features = ["extension-module", "auto-initialize",
|
|
|
23
23
|
numpy = { version = "0.26.0", optional = true }
|
|
24
24
|
strum = { version = "0.27.2", optional = true }
|
|
25
25
|
strum_macros = { version = "0.27.2", optional = true }
|
|
26
|
-
|
|
27
|
-
[build-dependencies]
|
|
28
|
-
regex = "1.11.1"
|
|
26
|
+
unitforge_macros = { version = "0.3.10", path = "unitforge_macros" }
|
|
29
27
|
|
|
30
28
|
[features]
|
|
31
29
|
serde = ["dep:serde", "dep:serde_json", "ndarray/serde"]
|
|
32
30
|
pyo3 = ["dep:pyo3", "dep:numpy"]
|
|
33
31
|
strum = ["dep:strum", "dep:strum_macros"]
|
|
32
|
+
|
|
33
|
+
[workspace]
|
|
34
|
+
members = ["unitforge_macros"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: unitforge
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.12
|
|
4
4
|
Classifier: Programming Language :: Python :: 3
|
|
5
5
|
Classifier: Programming Language :: Rust
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -9,7 +9,9 @@ Classifier: Topic :: Scientific/Engineering :: Physics
|
|
|
9
9
|
Requires-Dist: numpy>=2.2.0
|
|
10
10
|
Summary: A library for unit and quantity consistent computations in Rust
|
|
11
11
|
Keywords: units,quantities,simulation,physics
|
|
12
|
+
Author: Dr.Q team <info@askdrq.com>, Henrik Stromberg <henrik@askdrq.com>
|
|
12
13
|
Author-email: "Dr.Q team" <info@askdrq.com>, Henrik Stromberg <henrik@askdrq.com>
|
|
14
|
+
License: MIT
|
|
13
15
|
Requires-Python: >=3.7
|
|
14
16
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
15
17
|
Project-URL: Repository, https://gitlab.com/henrikjstromberg/unitforge
|