openodd-py 0.2.1__tar.gz → 0.2.2__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 (47) hide show
  1. openodd_py-0.2.2/.gitattributes +4 -0
  2. {openodd_py-0.2.1 → openodd_py-0.2.2}/.github/workflows/ci.yml +16 -0
  3. {openodd_py-0.2.1 → openodd_py-0.2.2}/.github/workflows/release.yml +27 -4
  4. {openodd_py-0.2.1 → openodd_py-0.2.2}/Cargo.lock +1 -1
  5. {openodd_py-0.2.1 → openodd_py-0.2.2}/Cargo.toml +1 -1
  6. {openodd_py-0.2.1 → openodd_py-0.2.2}/PKG-INFO +2 -2
  7. {openodd_py-0.2.1 → openodd_py-0.2.2}/README.md +1 -1
  8. {openodd_py-0.2.1 → openodd_py-0.2.2}/.github/workflows/release-label.yml +0 -0
  9. {openodd_py-0.2.1 → openodd_py-0.2.2}/.gitignore +0 -0
  10. {openodd_py-0.2.1 → openodd_py-0.2.2}/LICENSE +0 -0
  11. {openodd_py-0.2.1 → openodd_py-0.2.2}/NOTICE +0 -0
  12. {openodd_py-0.2.1 → openodd_py-0.2.2}/docs/versioning.md +0 -0
  13. {openodd_py-0.2.1 → openodd_py-0.2.2}/pyproject.toml +0 -0
  14. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/__init__.py +0 -0
  15. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/_core.pyi +0 -0
  16. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/backend.py +0 -0
  17. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/items.py +0 -0
  18. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/loader.py +0 -0
  19. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/model.py +0 -0
  20. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/odds/default/default.binding.yaml +0 -0
  21. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/odds/default/default.yaml +0 -0
  22. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/py.typed +0 -0
  23. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/report.py +0 -0
  24. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/sampler.py +0 -0
  25. {openodd_py-0.2.1 → openodd_py-0.2.2}/python/openodd/sources.py +0 -0
  26. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/error.rs +0 -0
  27. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/items.rs +0 -0
  28. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/lib.rs +0 -0
  29. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/loader.rs +0 -0
  30. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/model.rs +0 -0
  31. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/python.rs +0 -0
  32. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/report.rs +0 -0
  33. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/sampler.rs +0 -0
  34. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/sources.rs +0 -0
  35. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/transmission.rs +0 -0
  36. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/units.rs +0 -0
  37. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/value.rs +0 -0
  38. {openodd_py-0.2.1 → openodd_py-0.2.2}/src/yaml.rs +0 -0
  39. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/cases.py +0 -0
  40. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/compare.py +0 -0
  41. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/difftest_probes.py +0 -0
  42. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/report_run.py +0 -0
  43. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/differential/run.py +0 -0
  44. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/test_api.py +0 -0
  45. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/test_differential.py +0 -0
  46. {openodd_py-0.2.1 → openodd_py-0.2.2}/tests/test_sampling.py +0 -0
  47. {openodd_py-0.2.1 → openodd_py-0.2.2}/tools/bump_version.py +0 -0
@@ -0,0 +1,4 @@
1
+ # Line endings are part of what an ODD *is*: its revision is the SHA-256 of its
2
+ # files' bytes. Keep them LF on every checkout, Windows included, so the bundled ODD
3
+ # has one revision on every platform.
4
+ * text=auto eol=lf
@@ -33,3 +33,19 @@ jobs:
33
33
  - run: uv venv && uv pip install maturin pytest hypothesis pyyaml
34
34
  - run: uv run --no-project maturin develop
35
35
  - run: uv run --no-project pytest -q
36
+
37
+ # The Rust tests and the Python suite on Windows, once: abi3 means one interpreter
38
+ # covers the wheel, and the Linux matrix already spans the Python versions.
39
+ windows:
40
+ runs-on: windows-latest
41
+ steps:
42
+ - uses: actions/checkout@v4
43
+ - uses: dtolnay/rust-toolchain@stable
44
+ - uses: Swatinem/rust-cache@v2
45
+ - uses: astral-sh/setup-uv@v6
46
+ with:
47
+ python-version: "3.12"
48
+ - run: cargo test
49
+ - run: uv venv && uv pip install maturin pytest hypothesis pyyaml
50
+ - run: uv run --no-project maturin develop
51
+ - run: uv run --no-project pytest -q
@@ -202,10 +202,29 @@ jobs:
202
202
  - run: uv run --no-project maturin develop
203
203
  - run: uv run --no-project pytest -q
204
204
 
205
+ # The same tests on Windows, which the Linux job cannot speak for.
206
+ verify-windows:
207
+ name: test the tagged commit (windows)
208
+ needs: [resolve]
209
+ if: ${{ !cancelled() && needs.resolve.result == 'success' && needs.resolve.outputs.proceed == 'true' }}
210
+ runs-on: windows-latest
211
+ steps:
212
+ - uses: actions/checkout@v4
213
+ with:
214
+ ref: ${{ needs.resolve.outputs.ref }}
215
+ - uses: dtolnay/rust-toolchain@stable
216
+ - uses: astral-sh/setup-uv@v6
217
+ with:
218
+ python-version: "3.12"
219
+ - run: cargo test --locked
220
+ - run: uv venv && uv pip install maturin pytest hypothesis pyyaml
221
+ - run: uv run --no-project maturin develop
222
+ - run: uv run --no-project pytest -q
223
+
205
224
  wheels:
206
225
  name: wheel (${{ matrix.os }} ${{ matrix.target }})
207
- needs: [resolve, verify]
208
- if: ${{ !cancelled() && needs.verify.result == 'success' }}
226
+ needs: [resolve, verify, verify-windows]
227
+ if: ${{ !cancelled() && needs.verify.result == 'success' && needs.verify-windows.result == 'success' }}
209
228
  runs-on: ${{ matrix.runner }}
210
229
  strategy:
211
230
  matrix:
@@ -215,12 +234,13 @@ jobs:
215
234
  - { os: linux, runner: ubuntu-latest, target: x86_64 }
216
235
  - { os: linux, runner: ubuntu-24.04-arm, target: aarch64 }
217
236
  - { os: macos, runner: macos-latest, target: universal2-apple-darwin }
237
+ - { os: windows, runner: windows-latest, target: x64 }
218
238
  steps:
219
239
  - uses: actions/checkout@v4
220
240
  with:
221
241
  ref: ${{ needs.resolve.outputs.ref }}
222
242
  # abi3-py310, so one wheel per platform serves every Python 3.10+.
223
- # `manylinux` is ignored on macOS.
243
+ # `manylinux` is ignored on macOS and Windows.
224
244
  - uses: PyO3/maturin-action@v1
225
245
  with:
226
246
  target: ${{ matrix.target }}
@@ -230,13 +250,16 @@ jobs:
230
250
  # rebuild of the same sources.
231
251
  - uses: astral-sh/setup-uv@v6
232
252
  - name: test the wheel that is about to be published
253
+ shell: bash
233
254
  run: |
234
255
  uv venv --python 3.12 "$RUNNER_TEMP/fresh"
235
256
  uv pip install --python "$RUNNER_TEMP/fresh" dist/*.whl pytest hypothesis pyyaml
257
+ PY="$RUNNER_TEMP/fresh/bin/python"
258
+ [ -x "$PY" ] || PY="$RUNNER_TEMP/fresh/Scripts/python"
236
259
  # Run from a directory without python/openodd, so the installed wheel is
237
260
  # what gets imported.
238
261
  cp -r tests "$RUNNER_TEMP/tests"
239
- cd "$RUNNER_TEMP" && "$RUNNER_TEMP/fresh/bin/python" -m pytest tests -q
262
+ cd "$RUNNER_TEMP" && "$PY" -m pytest tests -q
240
263
  - uses: actions/upload-artifact@v4
241
264
  with:
242
265
  name: wheel-${{ matrix.os }}-${{ matrix.target }}
@@ -263,7 +263,7 @@ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
263
263
 
264
264
  [[package]]
265
265
  name = "openodd"
266
- version = "0.2.1"
266
+ version = "0.2.2"
267
267
  dependencies = [
268
268
  "flate2",
269
269
  "fs2",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "openodd"
3
- version = "0.2.1"
3
+ version = "0.2.2"
4
4
  edition = "2021"
5
5
  rust-version = "1.82"
6
6
  description = "ASAM OpenODD 1.0: read, evaluate, version and sample Operational Design Domains"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openodd-py
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Topic :: Scientific/Engineering
@@ -59,7 +59,7 @@ Releases are cut by labels, as in simple_lanelet2. Put exactly one of
59
59
  `main`, the [release workflow](.github/workflows/release.yml) bumps the version in
60
60
  `Cargo.toml` and `Cargo.lock` with `tools/bump_version.py`, commits
61
61
  `chore(release): vX.Y.Z` and tags it, runs the tests again, builds the wheels (Linux
62
- x86_64/aarch64, macOS universal2) and the sdist, tests each wheel, and attaches them to a
62
+ x86_64/aarch64, macOS universal2, Windows x64) and the sdist, tests each wheel, and attaches them to a
63
63
  GitHub release with generated notes, and publishes them to PyPI with Trusted
64
64
  Publishing. A PR without a label releases nothing. The
65
65
  [release label check](.github/workflows/release-label.yml) runs on every PR: it creates any missing `release:*` label, fails if the PR carries more than one, and
@@ -44,7 +44,7 @@ Releases are cut by labels, as in simple_lanelet2. Put exactly one of
44
44
  `main`, the [release workflow](.github/workflows/release.yml) bumps the version in
45
45
  `Cargo.toml` and `Cargo.lock` with `tools/bump_version.py`, commits
46
46
  `chore(release): vX.Y.Z` and tags it, runs the tests again, builds the wheels (Linux
47
- x86_64/aarch64, macOS universal2) and the sdist, tests each wheel, and attaches them to a
47
+ x86_64/aarch64, macOS universal2, Windows x64) and the sdist, tests each wheel, and attaches them to a
48
48
  GitHub release with generated notes, and publishes them to PyPI with Trusted
49
49
  Publishing. A PR without a label releases nothing. The
50
50
  [release label check](.github/workflows/release-label.yml) runs on every PR: it creates any missing `release:*` label, fails if the PR carries more than one, and
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