unitforge 0.3.18__tar.gz → 0.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.
Files changed (91) hide show
  1. {unitforge-0.3.18 → unitforge-0.4.0}/.gitignore +1 -0
  2. unitforge-0.4.0/.gitlab-ci.yml +43 -0
  3. {unitforge-0.3.18 → unitforge-0.4.0}/Cargo.lock +2 -2
  4. {unitforge-0.3.18 → unitforge-0.4.0}/Cargo.toml +2 -2
  5. {unitforge-0.3.18 → unitforge-0.4.0}/PKG-INFO +1 -1
  6. unitforge-0.4.0/install_hooks.sh +31 -0
  7. unitforge-0.4.0/python/unitforge/__init__.pyi +1776 -0
  8. unitforge-0.4.0/python/unitforge/py.typed +0 -0
  9. {unitforge-0.3.18 → unitforge-0.4.0}/src/impl_macros.rs +128 -103
  10. unitforge-0.4.0/src/internal.rs +55 -0
  11. {unitforge-0.3.18 → unitforge-0.4.0}/src/lib.rs +2 -7
  12. {unitforge-0.3.18 → unitforge-0.4.0}/src/prelude.rs +22 -4
  13. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/angle.rs +4 -16
  14. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities.template.rs +2 -5
  15. unitforge-0.4.0/test.sh +235 -0
  16. unitforge-0.4.0/tests/common/mod.rs +3 -0
  17. {unitforge-0.3.18 → unitforge-0.4.0}/tests/quantities.rs +0 -158
  18. unitforge-0.4.0/tests/quantity_core/construction.rs +37 -0
  19. unitforge-0.4.0/tests/quantity_core/enum_iter.rs +19 -0
  20. unitforge-0.4.0/tests/quantity_core/metadata.rs +80 -0
  21. unitforge-0.4.0/tests/quantity_core/normalization.rs +133 -0
  22. unitforge-0.4.0/tests/quantity_core/relations.rs +70 -0
  23. unitforge-0.4.0/tests/quantity_core/runtime_quantity.rs +191 -0
  24. unitforge-0.4.0/tests/quantity_core/scalar_edges.rs +42 -0
  25. unitforge-0.4.0/tests/quantity_core.rs +17 -0
  26. unitforge-0.4.0/tests/quantity_serde.rs +84 -0
  27. unitforge-0.4.0/tests/small_linalg_edge_cases.rs +69 -0
  28. {unitforge-0.3.18 → unitforge-0.4.0}/unitforge_macros/Cargo.toml +1 -1
  29. {unitforge-0.3.18 → unitforge-0.4.0}/unitforge_macros/src/lib.rs +3 -3
  30. unitforge-0.3.18/.gitlab-ci.yml +0 -87
  31. unitforge-0.3.18/src/internal.rs +0 -16
  32. unitforge-0.3.18/src/tests/quantity_unit_tests.rs +0 -116
  33. unitforge-0.3.18/src/tests/serde_tests.rs +0 -63
  34. {unitforge-0.3.18 → unitforge-0.4.0}/Readme.md +0 -0
  35. {unitforge-0.3.18 → unitforge-0.4.0}/Readme_py.md +0 -0
  36. {unitforge-0.3.18 → unitforge-0.4.0}/pyproject.toml +0 -0
  37. {unitforge-0.3.18 → unitforge-0.4.0}/python/unitforge/__init__.py +0 -0
  38. {unitforge-0.3.18 → unitforge-0.4.0}/scripts/generate_python_stubs.py +0 -0
  39. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/acceleration.rs +0 -0
  40. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/angular_acceleration.rs +0 -0
  41. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/angular_velocity.rs +0 -0
  42. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/area.rs +0 -0
  43. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/area_of_moment.rs +0 -0
  44. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/charge.rs +0 -0
  45. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/compliance.rs +0 -0
  46. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/density.rs +0 -0
  47. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/distance.rs +0 -0
  48. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force.rs +0 -0
  49. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force_area.rs +0 -0
  50. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force_distance.rs +0 -0
  51. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force_div_distance_power_four.rs +0 -0
  52. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force_per_volume.rs +0 -0
  53. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force_stress.rs +0 -0
  54. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/force_volume.rs +0 -0
  55. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/inverse_angle.rs +0 -0
  56. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/inverse_area.rs +0 -0
  57. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/inverse_distance.rs +0 -0
  58. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/inverse_stress.rs +0 -0
  59. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/mass.rs +0 -0
  60. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/mass_div_time_squared_volume.rs +0 -0
  61. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/mass_per_distance.rs +0 -0
  62. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/rotational_stiffness.rs +0 -0
  63. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/stiffness.rs +0 -0
  64. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/strain.rs +0 -0
  65. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/stress.rs +0 -0
  66. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/stress_squared.rs +0 -0
  67. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/time.rs +0 -0
  68. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/velocity.rs +0 -0
  69. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/velocity_squared.rs +0 -0
  70. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/voltage.rs +0 -0
  71. {unitforge-0.3.18 → unitforge-0.4.0}/src/quantities/volume.rs +0 -0
  72. {unitforge-0.3.18 → unitforge-0.4.0}/src/relations.rs +0 -0
  73. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/bindings/matrix3_py.template.rs +0 -0
  74. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/bindings/vector3_py.template.rs +0 -0
  75. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/matrix2.rs +0 -0
  76. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/matrix2x3.rs +0 -0
  77. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/matrix3.rs +0 -0
  78. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/matrix3x2.rs +0 -0
  79. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/vector2.rs +0 -0
  80. {unitforge-0.3.18 → unitforge-0.4.0}/src/small_linalg/vector3.rs +0 -0
  81. {unitforge-0.3.18 → unitforge-0.4.0}/tests/matrix2.rs +0 -0
  82. {unitforge-0.3.18 → unitforge-0.4.0}/tests/matrix2x3.rs +0 -0
  83. {unitforge-0.3.18 → unitforge-0.4.0}/tests/matrix3.rs +0 -0
  84. {unitforge-0.3.18 → unitforge-0.4.0}/tests/matrix3x2.rs +0 -0
  85. {unitforge-0.3.18 → unitforge-0.4.0}/tests/ndarray_dot.rs +0 -0
  86. {unitforge-0.3.18 → unitforge-0.4.0}/tests/small_linalg_interfaces.rs +0 -0
  87. {unitforge-0.3.18 → unitforge-0.4.0}/tests/test_quantities.py +0 -0
  88. {unitforge-0.3.18 → unitforge-0.4.0}/tests/test_small_linalg.py +0 -0
  89. {unitforge-0.3.18 → unitforge-0.4.0}/tests/typecheck/mypy_smoke.py +0 -0
  90. {unitforge-0.3.18 → unitforge-0.4.0}/tests/vector2.rs +0 -0
  91. {unitforge-0.3.18 → unitforge-0.4.0}/tests/vector3.rs +0 -0
@@ -6,6 +6,7 @@ python/unitforge/py.typed
6
6
  python/unitforge/unitforge*
7
7
  **/*.rs.bk
8
8
  .idea/
9
+ .codex
9
10
  .gitlab-ci-local/
10
11
  .venv
11
12
  tests/__pycache__/
@@ -0,0 +1,43 @@
1
+ image: "rust:latest"
2
+
3
+ lint:
4
+ script:
5
+ - ./test.sh lint-base
6
+ allow_failure: true
7
+
8
+ lint_serde:
9
+ script:
10
+ - ./test.sh lint-serde
11
+ allow_failure: true
12
+
13
+ lint_strum:
14
+ script:
15
+ - ./test.sh lint-strum
16
+ allow_failure: true
17
+
18
+ lint_pyo3:
19
+ script:
20
+ - ./test.sh lint-pyo3
21
+ allow_failure: true
22
+
23
+ test:
24
+ script:
25
+ - ./test.sh test-base
26
+
27
+ test_serde:
28
+ script:
29
+ - ./test.sh test-serde
30
+
31
+ test_strum:
32
+ script:
33
+ - ./test.sh test-strum
34
+
35
+ test_pyo3:
36
+ script:
37
+ - apt-get update && apt-get install -y python3 python3-venv python3.13-dev
38
+ - ./test.sh test-pyo3
39
+
40
+ typecheck_pyo3_stubs:
41
+ script:
42
+ - apt-get update && apt-get install -y python3 python3-venv python3.13-dev
43
+ - ./test.sh typecheck-pyo3
@@ -369,7 +369,7 @@ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
369
369
 
370
370
  [[package]]
371
371
  name = "unitforge"
372
- version = "0.3.18"
372
+ version = "0.4.0"
373
373
  dependencies = [
374
374
  "ndarray",
375
375
  "num-traits",
@@ -384,7 +384,7 @@ dependencies = [
384
384
 
385
385
  [[package]]
386
386
  name = "unitforge_macros"
387
- version = "0.3.16"
387
+ version = "0.4.0"
388
388
  dependencies = [
389
389
  "regex",
390
390
  ]
@@ -4,7 +4,7 @@ crate-type = ["cdylib", "rlib"]
4
4
 
5
5
  [package]
6
6
  name = "unitforge"
7
- version = "0.3.18"
7
+ version = "0.4.0"
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,7 +23,7 @@ pyo3 = { version = "0.26.0", features = ["extension-module", "auto-initialize",
23
23
  numpy = { version = "0.26.0", optional = true }
24
24
  strum = { version = "0.28.0", optional = true }
25
25
  strum_macros = { version = "0.28.0", optional = true }
26
- unitforge_macros = { version = "0.3.16", path = "unitforge_macros" }
26
+ unitforge_macros = { version = "0.4.0", path = "unitforge_macros" }
27
27
 
28
28
  [features]
29
29
  serde = ["dep:serde", "dep:serde_json", "ndarray/serde"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: unitforge
3
- Version: 0.3.18
3
+ Version: 0.4.0
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Rust
6
6
  Classifier: License :: OSI Approved :: MIT License
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -euo pipefail
4
+
5
+ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
+ HOOKS_DIR="$ROOT_DIR/.git/hooks"
7
+ HOOK_PATH="$HOOKS_DIR/pre-commit"
8
+
9
+ if [[ ! -d "$ROOT_DIR/.git" ]]; then
10
+ echo "Expected a Git repository at $ROOT_DIR/.git" >&2
11
+ exit 1
12
+ fi
13
+
14
+ mkdir -p "$HOOKS_DIR"
15
+
16
+ cat >"$HOOK_PATH" <<'EOF'
17
+ #!/usr/bin/env bash
18
+
19
+ set -euo pipefail
20
+
21
+ ROOT_DIR="$(git rev-parse --show-toplevel)"
22
+ cd "$ROOT_DIR"
23
+
24
+ echo "[pre-commit] Running ./test.sh all"
25
+ ./test.sh all
26
+ EOF
27
+
28
+ chmod +x "$HOOK_PATH"
29
+
30
+ echo "Installed pre-commit hook at $HOOK_PATH"
31
+ echo "The hook runs ./test.sh all before each commit."