nmhit 0.1.0__tar.gz → 0.1.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 (32) hide show
  1. {nmhit-0.1.0 → nmhit-0.1.2}/.github/workflows/ci.yml +3 -3
  2. {nmhit-0.1.0 → nmhit-0.1.2}/.github/workflows/release.yml +2 -3
  3. {nmhit-0.1.0 → nmhit-0.1.2}/CMakeLists.txt +6 -1
  4. {nmhit-0.1.0 → nmhit-0.1.2}/PKG-INFO +1 -1
  5. {nmhit-0.1.0 → nmhit-0.1.2}/pyproject.toml +7 -4
  6. {nmhit-0.1.0 → nmhit-0.1.2}/.clang-format +0 -0
  7. {nmhit-0.1.0 → nmhit-0.1.2}/.gitignore +0 -0
  8. {nmhit-0.1.0 → nmhit-0.1.2}/.pre-commit-config.yaml +0 -0
  9. {nmhit-0.1.0 → nmhit-0.1.2}/CONTRIBUTING.md +0 -0
  10. {nmhit-0.1.0 → nmhit-0.1.2}/README.md +0 -0
  11. {nmhit-0.1.0 → nmhit-0.1.2}/cmake/nmhit.pc.in +0 -0
  12. {nmhit-0.1.0 → nmhit-0.1.2}/cmake/nmhitConfig.cmake.in +0 -0
  13. {nmhit-0.1.0 → nmhit-0.1.2}/generated/Lexer.cpp +0 -0
  14. {nmhit-0.1.0 → nmhit-0.1.2}/generated/Lexer.h +0 -0
  15. {nmhit-0.1.0 → nmhit-0.1.2}/generated/Parser.cpp +0 -0
  16. {nmhit-0.1.0 → nmhit-0.1.2}/generated/Parser.h +0 -0
  17. {nmhit-0.1.0 → nmhit-0.1.2}/generated/location.hh +0 -0
  18. {nmhit-0.1.0 → nmhit-0.1.2}/include/nmhit/BraceExpr.h +0 -0
  19. {nmhit-0.1.0 → nmhit-0.1.2}/include/nmhit/Node.h +0 -0
  20. {nmhit-0.1.0 → nmhit-0.1.2}/include/nmhit/TypeRegistry.h +0 -0
  21. {nmhit-0.1.0 → nmhit-0.1.2}/include/nmhit/nmhit.h +0 -0
  22. {nmhit-0.1.0 → nmhit-0.1.2}/python/nmhit/__init__.py +0 -0
  23. {nmhit-0.1.0 → nmhit-0.1.2}/python/nmhit/py.typed +0 -0
  24. {nmhit-0.1.0 → nmhit-0.1.2}/python/src/_nmhit.cpp +0 -0
  25. {nmhit-0.1.0 → nmhit-0.1.2}/python/tests/test_nmhit.py +0 -0
  26. {nmhit-0.1.0 → nmhit-0.1.2}/src/BraceExpr.cpp +0 -0
  27. {nmhit-0.1.0 → nmhit-0.1.2}/src/Lexer.l +0 -0
  28. {nmhit-0.1.0 → nmhit-0.1.2}/src/Node.cpp +0 -0
  29. {nmhit-0.1.0 → nmhit-0.1.2}/src/ParseDriver.h +0 -0
  30. {nmhit-0.1.0 → nmhit-0.1.2}/src/Parser.y +0 -0
  31. {nmhit-0.1.0 → nmhit-0.1.2}/tests/CMakeLists.txt +0 -0
  32. {nmhit-0.1.0 → nmhit-0.1.2}/tests/test_hit.cpp +0 -0
@@ -15,7 +15,7 @@ jobs:
15
15
  fail-fast: false
16
16
  matrix:
17
17
  os: [ubuntu-24.04, macos-15]
18
- python-version: ["3.9", "3.11", "3.12"]
18
+ python-version: ["3.9"]
19
19
 
20
20
  steps:
21
21
  - uses: actions/checkout@v4
@@ -48,7 +48,7 @@ jobs:
48
48
  - name: Build wheel (native arch)
49
49
  uses: pypa/cibuildwheel@v2.19
50
50
  env:
51
- CIBW_BUILD: "cp39-*"
51
+ CIBW_BUILD: "cp39-* cp313-*"
52
52
  CIBW_SKIP: "*-musllinux* *-manylinux_i686"
53
53
  CIBW_ARCHS_LINUX: "x86_64"
54
54
  CIBW_ARCHS_MACOS: "native"
@@ -66,7 +66,7 @@ jobs:
66
66
 
67
67
  - uses: actions/setup-python@v5
68
68
  with:
69
- python-version: "3.11"
69
+ python-version: "3.9"
70
70
 
71
71
  - name: Build sdist
72
72
  run: |
@@ -27,8 +27,7 @@ jobs:
27
27
  - name: Build wheels
28
28
  uses: pypa/cibuildwheel@v2.19
29
29
  env:
30
- # STABLE_ABI: cp39-* produces one abi3 wheel covering Python 3.9+
31
- CIBW_BUILD: "cp39-*"
30
+ CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*"
32
31
  CIBW_SKIP: "*-musllinux* *-manylinux_i686"
33
32
  CIBW_ARCHS_LINUX: "x86_64 aarch64"
34
33
  CIBW_ARCHS_MACOS: "x86_64 arm64"
@@ -51,7 +50,7 @@ jobs:
51
50
 
52
51
  - uses: actions/setup-python@v5
53
52
  with:
54
- python-version: "3.11"
53
+ python-version: "3.9"
55
54
 
56
55
  - name: Build sdist
57
56
  run: |
@@ -148,6 +148,12 @@ endif()
148
148
 
149
149
  option(NMHIT_BUILD_PYTHON "Build Python bindings via nanobind" OFF)
150
150
  if(NMHIT_BUILD_PYTHON)
151
+ # Per-version wheels: only Development.Module is needed here.
152
+ # When Python 3.12 becomes the project minimum, switch to a single abi3 wheel:
153
+ # - set wheel.py-api = "cp312" in pyproject.toml
154
+ # - add Development.SABIModule to this find_package call (requires CMake >= 3.26)
155
+ # - add STABLE_ABI back to nanobind_add_module below
156
+ # nanobind's STABLE_ABI silently no-ops below Python 3.12 (Py_LIMITED_API=0x030C0000).
151
157
  find_package(Python 3.9 REQUIRED COMPONENTS Interpreter Development.Module)
152
158
 
153
159
  # Locate nanobind's CMake integration through the Python interpreter.
@@ -168,7 +174,6 @@ if(NMHIT_BUILD_PYTHON)
168
174
 
169
175
  nanobind_add_module(
170
176
  _nmhit
171
- STABLE_ABI # Py_LIMITED_API=0x03090000: one .so covers Python 3.9+
172
177
  NB_STATIC # embed nanobind runtime; wheel is self-contained
173
178
  python/src/_nmhit.cpp
174
179
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nmhit
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Python bindings for the nmhit NEML2-flavored HIT parser
5
5
  License: MIT
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
4
4
 
5
5
  [project]
6
6
  name = "nmhit"
7
- version = "0.1.0"
7
+ version = "0.1.2"
8
8
  description = "Python bindings for the nmhit NEML2-flavored HIT parser"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -22,11 +22,14 @@ dev = ["pytest>=7"]
22
22
  cmake.build-type = "Release"
23
23
  cmake.args = ["-DNMHIT_BUILD_TESTS=OFF", "-DNMHIT_BUILD_PYTHON=ON", "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"]
24
24
  wheel.packages = ["python/nmhit"]
25
- wheel.py-api = "cp39" # triggers abi3 wheel tag to match STABLE_ABI in CMake
25
+ # Per-version wheels: one wheel per CPython release.
26
+ # When Python 3.12 becomes the project minimum, switch to a single abi3 wheel:
27
+ # set wheel.py-api = "cp312" and build = "cp312-*".
28
+ # nanobind's STABLE_ABI requires Py_LIMITED_API >= 0x030C0000 (3.12); it silently
29
+ # no-ops on earlier Pythons, so cp39-abi3 would still produce a cpython-39 suffix.
26
30
 
27
- # STABLE_ABI: one abi3 wheel per platform covers Python 3.9+
28
31
  [tool.cibuildwheel]
29
- build = "cp39-*"
32
+ build = "cp39-* cp310-* cp311-* cp312-* cp313-*"
30
33
  skip = "*-musllinux* *-manylinux_i686"
31
34
  test-requires = ["pytest"]
32
35
  test-command = "pytest {project}/python/tests/ -v"
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