hatch-cpp 0.5.0__tar.gz → 0.5.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 (71) hide show
  1. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/.gitignore +5 -2
  2. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/PKG-INFO +3 -3
  3. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/__init__.py +1 -1
  4. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/plugin.py +3 -1
  5. hatch_cpp-0.5.2/hatch_cpp/tests/test_hook_registration.py +21 -0
  6. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_structs.py +5 -0
  7. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/pyproject.toml +5 -5
  8. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/LICENSE +0 -0
  9. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/README.md +0 -0
  10. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/config.py +0 -0
  11. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/hooks.py +0 -0
  12. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_hatch_build.py +0 -0
  13. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_platform_specific.py +0 -0
  14. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_basic/cpp/project/basic.cpp +0 -0
  15. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_basic/cpp/project/basic.hpp +0 -0
  16. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_basic/project/__init__.py +0 -0
  17. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_basic/pyproject.toml +0 -0
  18. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/CMakeLists.txt +0 -0
  19. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/Makefile +0 -0
  20. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/cpp/project/basic.cpp +0 -0
  21. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/cpp/project/basic.hpp +0 -0
  22. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/project/__init__.py +0 -0
  23. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/project/include/project/basic.hpp +0 -0
  24. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake/pyproject.toml +0 -0
  25. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/CMakeLists.txt +0 -0
  26. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/Makefile +0 -0
  27. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/cpp/project/basic.cpp +0 -0
  28. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/cpp/project/basic.hpp +0 -0
  29. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/project/__init__.py +0 -0
  30. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/project/include/project/basic.hpp +0 -0
  31. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/pyproject.toml +0 -0
  32. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_cmake_vcpkg/vcpkg.json +0 -0
  33. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_hatch_build/cpp/project/basic.cpp +0 -0
  34. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_hatch_build/cpp/project/basic.hpp +0 -0
  35. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_hatch_build/project/__init__.py +0 -0
  36. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_hatch_build/pyproject.toml +0 -0
  37. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_limited_api/cpp/project/basic.cpp +0 -0
  38. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_limited_api/cpp/project/basic.hpp +0 -0
  39. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_limited_api/project/__init__.py +0 -0
  40. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_limited_api/pyproject.toml +0 -0
  41. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_nanobind/cpp/project/basic.cpp +0 -0
  42. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_nanobind/cpp/project/basic.hpp +0 -0
  43. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_nanobind/project/__init__.py +0 -0
  44. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_nanobind/pyproject.toml +0 -0
  45. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_classes/cpp/project/basic.cpp +0 -0
  46. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_classes/cpp/project/basic.hpp +0 -0
  47. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_classes/project/__init__.py +0 -0
  48. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_classes/pyproject.toml +0 -0
  49. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_toolchain/cpp/project/basic.cpp +0 -0
  50. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_toolchain/cpp/project/basic.hpp +0 -0
  51. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_toolchain/project/__init__.py +0 -0
  52. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_override_toolchain/pyproject.toml +0 -0
  53. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind/cpp/project/basic.cpp +0 -0
  54. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind/cpp/project/basic.hpp +0 -0
  55. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind/project/__init__.py +0 -0
  56. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind/pyproject.toml +0 -0
  57. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind_vcpkg/cpp/project/basic.cpp +0 -0
  58. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind_vcpkg/cpp/project/basic.hpp +0 -0
  59. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind_vcpkg/project/__init__.py +0 -0
  60. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind_vcpkg/pyproject.toml +0 -0
  61. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pybind_vcpkg/vcpkg.json +0 -0
  62. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pyodide/cpp/extension.cpp +0 -0
  63. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pyodide/pyodide_project/__init__.py +0 -0
  64. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_project_pyodide/pyproject.toml +0 -0
  65. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_projects.py +0 -0
  66. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/tests/test_vcpkg_ref.py +0 -0
  67. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/toolchains/__init__.py +0 -0
  68. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/toolchains/cmake.py +0 -0
  69. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/toolchains/common.py +0 -0
  70. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/toolchains/vcpkg.py +0 -0
  71. {hatch_cpp-0.5.0 → hatch_cpp-0.5.2}/hatch_cpp/utils.py +0 -0
@@ -13,6 +13,10 @@ __pycache__/
13
13
  *.exp
14
14
  *.lib
15
15
 
16
+ # vcpkg
17
+ vcpkg/
18
+ vcpkg_installed/
19
+
16
20
  # Rust
17
21
  target
18
22
  target-capi
@@ -142,8 +146,7 @@ hatch_cpp/labextension
142
146
 
143
147
  # Emscripten SDK (locally installed)
144
148
  emsdk
145
- .pyodide_build
146
- .venv-pyodide
149
+ .pyodide_build/
147
150
 
148
151
  # Mac
149
152
  .DS_Store
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: hatch-cpp
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary: Hatch plugin for C++ builds
5
5
  Project-URL: Repository, https://github.com/python-project-templates/hatch-cpp
6
6
  Project-URL: Homepage, https://github.com/python-project-templates/hatch-cpp
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
20
20
  Classifier: Programming Language :: Python :: Implementation :: PyPy
21
21
  Requires-Python: >=3.10
22
22
  Requires-Dist: hatch-build<0.6,>=0.5
23
- Requires-Dist: hatchling
23
+ Requires-Dist: hatchling!=1.32.1
24
24
  Requires-Dist: pkn
25
25
  Requires-Dist: pydantic
26
26
  Provides-Extra: develop
@@ -29,7 +29,7 @@ Requires-Dist: bump-my-version; extra == 'develop'
29
29
  Requires-Dist: check-dist; extra == 'develop'
30
30
  Requires-Dist: codespell; extra == 'develop'
31
31
  Requires-Dist: hatch-build>=0.3.2; extra == 'develop'
32
- Requires-Dist: hatchling; extra == 'develop'
32
+ Requires-Dist: hatchling!=1.32.1; extra == 'develop'
33
33
  Requires-Dist: mdformat; extra == 'develop'
34
34
  Requires-Dist: mdformat-tables>=1; extra == 'develop'
35
35
  Requires-Dist: nanobind; extra == 'develop'
@@ -1,4 +1,4 @@
1
- __version__ = "0.5.0"
1
+ __version__ = "0.5.2"
2
2
 
3
3
  from .config import *
4
4
  from .hooks import *
@@ -28,11 +28,13 @@ def _wheel_tag(platform: str, machine: str, version_major: int, version_minor: i
28
28
  os_name = "linux"
29
29
  else:
30
30
  os_name = "win"
31
+ # platform.machine() reports AMD64/ARM64 on Windows, but PEP 425 platform tags are lowercase
32
+ machine = machine.lower()
31
33
  abi = "abi3" if abi3 else f"cp{version_major}{version_minor}"
32
34
  return f"cp{version_major}{version_minor}-{abi}-{os_name}_{machine}"
33
35
 
34
36
 
35
- class HatchCppBuildHook(BuildHookInterface[HatchCppBuildConfig]):
37
+ class HatchCppBuildHook(BuildHookInterface):
36
38
  """The hatch-cpp build hook."""
37
39
 
38
40
  PLUGIN_NAME = "hatch-cpp"
@@ -0,0 +1,21 @@
1
+ from hatchling.builders.hooks.plugin.interface import BuildHookInterface
2
+
3
+ from hatch_cpp.hooks import hatch_register_build_hook
4
+
5
+
6
+ def test_registered_build_hook_accepts_hatchling_configuration(tmp_path):
7
+ hook_class = hatch_register_build_hook()
8
+ config = {}
9
+ hook = hook_class(
10
+ root=str(tmp_path),
11
+ config=config,
12
+ build_config=None,
13
+ metadata=None,
14
+ directory=str(tmp_path),
15
+ target_name="wheel",
16
+ )
17
+
18
+ assert isinstance(hook, BuildHookInterface)
19
+ assert hook.PLUGIN_NAME == "hatch-cpp"
20
+ assert hook.config is config
21
+ assert hook.target_name == "wheel"
@@ -87,6 +87,11 @@ class TestStructs:
87
87
  with pytest.raises(ValueError, match="PYODIDE_ABI_VERSION"):
88
88
  _wheel_tag("emscripten", "wasm32", 3, 14, False)
89
89
 
90
+ def test_wheel_tag_machine_is_lowercased(self):
91
+ assert _wheel_tag("win32", "AMD64", 3, 11, False) == "cp311-cp311-win_amd64"
92
+ assert _wheel_tag("win32", "ARM64", 3, 11, True) == "cp311-abi3-win_arm64"
93
+ assert _wheel_tag("linux", "x86_64", 3, 11, False) == "cp311-cp311-linux_x86_64"
94
+
90
95
  def test_pyodide_build_plan_compiles_objects_before_linking(self, monkeypatch: pytest.MonkeyPatch):
91
96
  monkeypatch.setenv("PYODIDE_ABI_VERSION", "2026_0")
92
97
  monkeypatch.setenv("CC", "/toolchain/cc")
@@ -1,6 +1,6 @@
1
1
  [build-system]
2
2
  requires = [
3
- "hatchling",
3
+ "hatchling!=1.32.1",
4
4
  ]
5
5
  build-backend = "hatchling.build"
6
6
 
@@ -12,7 +12,7 @@ authors = [
12
12
  description = "Hatch plugin for C++ builds"
13
13
  readme = "README.md"
14
14
  license = { text = "Apache-2.0" }
15
- version = "0.5.0"
15
+ version = "0.5.2"
16
16
  requires-python = ">=3.10"
17
17
  keywords = [
18
18
  "hatch",
@@ -37,7 +37,7 @@ classifiers = [
37
37
  ]
38
38
 
39
39
  dependencies = [
40
- "hatchling",
40
+ "hatchling!=1.32.1",
41
41
  "hatch-build>=0.5,<0.6",
42
42
  "pkn",
43
43
  "pydantic",
@@ -49,7 +49,7 @@ develop = [
49
49
  "bump-my-version",
50
50
  "check-dist",
51
51
  "codespell",
52
- "hatchling",
52
+ "hatchling!=1.32.1",
53
53
  "hatch-build>=0.3.2",
54
54
  "mdformat",
55
55
  "mdformat-tables>=1",
@@ -79,7 +79,7 @@ Repository = "https://github.com/python-project-templates/hatch-cpp"
79
79
  Homepage = "https://github.com/python-project-templates/hatch-cpp"
80
80
 
81
81
  [tool.bumpversion]
82
- current_version = "0.5.0"
82
+ current_version = "0.5.2"
83
83
  commit = true
84
84
  tag = true
85
85
  commit_args = "-s"
File without changes
File without changes
File without changes
File without changes
File without changes