pyisyntax 0.1.5__tar.gz → 0.1.6__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 (78) hide show
  1. {pyisyntax-0.1.5/pyisyntax.egg-info → pyisyntax-0.1.6}/PKG-INFO +19 -1
  2. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/README.md +18 -0
  3. pyisyntax-0.1.6/isyntax/_pyisyntax.pyi +4 -0
  4. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/builder.py +14 -0
  5. {pyisyntax-0.1.5 → pyisyntax-0.1.6/pyisyntax.egg-info}/PKG-INFO +19 -1
  6. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/pyisyntax.egg-info/SOURCES.txt +2 -0
  7. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/pyproject.toml +15 -8
  8. pyisyntax-0.1.6/tests/__init__.py +0 -0
  9. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/CHANGELOG.md +0 -0
  10. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/LICENSE +0 -0
  11. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/MANIFEST.in +0 -0
  12. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax/__init__.py +0 -0
  13. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax/lowlevel/__init__.py +0 -0
  14. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax/lowlevel/io_management.py +0 -0
  15. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax/lowlevel/libisyntax.py +0 -0
  16. /pyisyntax-0.1.5/isyntax_build/__init__.py → /pyisyntax-0.1.6/isyntax/py.typed +0 -0
  17. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax/wrapper.py +0 -0
  18. {pyisyntax-0.1.5/tests → pyisyntax-0.1.6/isyntax_build}/__init__.py +0 -0
  19. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/pyisyntax.c +0 -0
  20. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/src/python_platform_utils.c +0 -0
  21. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/src/python_platform_utils.h +0 -0
  22. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/src/win32_utils.c +0 -0
  23. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/LICENSE.txt +0 -0
  24. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/README.md +0 -0
  25. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/examples/isyntax_dirwalk.c +0 -0
  26. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/examples/isyntax_example.c +0 -0
  27. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/examples/isyntax_to_tiff.c +0 -0
  28. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax.c +0 -0
  29. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax.h +0 -0
  30. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax_dwt.c +0 -0
  31. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax_reader.c +0 -0
  32. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax_reader.h +0 -0
  33. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax_streamer.c +0 -0
  34. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/isyntax/isyntax_streamer.h +0 -0
  35. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/libisyntax.c +0 -0
  36. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/libisyntax.h +0 -0
  37. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/arena.h +0 -0
  38. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/common.h +0 -0
  39. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/intrinsics.h +0 -0
  40. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/linux_platform.c +0 -0
  41. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/linux_utils.c +0 -0
  42. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/platform.c +0 -0
  43. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/platform.h +0 -0
  44. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/win32_utils.c +0 -0
  45. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/win32_utils.h +0 -0
  46. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/work_queue.c +0 -0
  47. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/platform/work_queue.h +0 -0
  48. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/ltalloc.cc +0 -0
  49. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/ltalloc.h +0 -0
  50. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/stb_ds.h +0 -0
  51. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/stb_image.h +0 -0
  52. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/stb_image_write.h +0 -0
  53. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/stb_sprintf.h +0 -0
  54. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/yxml.c +0 -0
  55. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/third_party/yxml.h +0 -0
  56. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/benaphore.c +0 -0
  57. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/benaphore.h +0 -0
  58. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/block_allocator.c +0 -0
  59. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/block_allocator.h +0 -0
  60. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/libtiff_api.h +0 -0
  61. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/mathutils.c +0 -0
  62. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/mathutils.h +0 -0
  63. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/memrw.c +0 -0
  64. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/memrw.h +0 -0
  65. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/stringutils.c +0 -0
  66. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/stringutils.h +0 -0
  67. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/timerutils.c +0 -0
  68. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/isyntax_build/vendor/libisyntax/src/utils/timerutils.h +0 -0
  69. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/pyisyntax.egg-info/dependency_links.txt +0 -0
  70. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/pyisyntax.egg-info/not-zip-safe +0 -0
  71. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/pyisyntax.egg-info/requires.txt +0 -0
  72. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/pyisyntax.egg-info/top_level.txt +0 -0
  73. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/setup.cfg +0 -0
  74. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/setup.py +0 -0
  75. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/tests/conftest.py +0 -0
  76. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/tests/data/DOWNLOAD.txt +0 -0
  77. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/tests/test_lowlevel.py +0 -0
  78. {pyisyntax-0.1.5 → pyisyntax-0.1.6}/tests/test_wrapper.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyisyntax
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: Python bindings for libisyntax
5
5
  Author-email: Aiden Nibali <dismaldenizen@gmail.com>
6
6
  License-Expression: MIT
@@ -79,3 +79,21 @@ To modify pyisyntax project dependencies:
79
79
  ```console
80
80
  $ uv lock
81
81
  ```
82
+
83
+ ### Cutting a new release
84
+
85
+ 1. Ensure that tests are passing and everything is ready for release.
86
+ 2. Create and push a Git tag:
87
+ ```console
88
+ $ git tag v0.1.6
89
+ $ git push --tags
90
+ ```
91
+ 3. Download the artifacts from GitHub Actions, which will include the source distribution tarball and binary wheels.
92
+ 4. Create a new release on GitHub from the tagged commit and upload the packages as attachments to the release.
93
+ 5. Also upload the packages to PyPI using Twine:
94
+ ```console
95
+ $ uv run twine upload pyisyntax-*.tar.gz pyisyntax-*.whl
96
+ ```
97
+ 6. Bump the version number in `pyproject.toml` and create a commit, signalling the start of development on the next version.
98
+
99
+ These files should also be added to a GitHub release.
@@ -61,3 +61,21 @@ To modify pyisyntax project dependencies:
61
61
  ```console
62
62
  $ uv lock
63
63
  ```
64
+
65
+ ### Cutting a new release
66
+
67
+ 1. Ensure that tests are passing and everything is ready for release.
68
+ 2. Create and push a Git tag:
69
+ ```console
70
+ $ git tag v0.1.6
71
+ $ git push --tags
72
+ ```
73
+ 3. Download the artifacts from GitHub Actions, which will include the source distribution tarball and binary wheels.
74
+ 4. Create a new release on GitHub from the tagged commit and upload the packages as attachments to the release.
75
+ 5. Also upload the packages to PyPI using Twine:
76
+ ```console
77
+ $ uv run twine upload pyisyntax-*.tar.gz pyisyntax-*.whl
78
+ ```
79
+ 6. Bump the version number in `pyproject.toml` and create a commit, signalling the start of development on the next version.
80
+
81
+ These files should also be added to a GitHub release.
@@ -0,0 +1,4 @@
1
+ from typing import Any
2
+
3
+ ffi: Any
4
+ lib: Any
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import platform
2
3
  from importlib import resources
3
4
  from pathlib import Path
4
5
 
@@ -41,6 +42,19 @@ def create_ffibuilder() -> FFI:
41
42
  platform_sources = []
42
43
  extra_compile_args = []
43
44
  libraries = []
45
+ # The vendored libisyntax guards its SIMD/atomics on x86-centric macros
46
+ # that GCC does not define on aarch64 Linux, so the arm build otherwise
47
+ # fails to compile / links x86-only intrinsics. Select the correct paths:
48
+ # __ARM_NEON__ -> intrinsics.h includes <arm_neon.h> for the NEON code
49
+ # __arm64 -> ltalloc spin-wait uses sched_yield, not x86 `pause`
50
+ # the last two map x86-only bit intrinsics onto portable GCC builtins
51
+ if platform.machine() in ("aarch64", "arm64"):
52
+ extra_compile_args += [
53
+ "-D__ARM_NEON__=1",
54
+ "-D__arm64=1",
55
+ "-D_bit_scan_forward=__builtin_ctz",
56
+ "-D_popcnt32=__builtin_popcount",
57
+ ]
44
58
 
45
59
  ffibuilder.set_source(
46
60
  "isyntax._pyisyntax",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyisyntax
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: Python bindings for libisyntax
5
5
  Author-email: Aiden Nibali <dismaldenizen@gmail.com>
6
6
  License-Expression: MIT
@@ -79,3 +79,21 @@ To modify pyisyntax project dependencies:
79
79
  ```console
80
80
  $ uv lock
81
81
  ```
82
+
83
+ ### Cutting a new release
84
+
85
+ 1. Ensure that tests are passing and everything is ready for release.
86
+ 2. Create and push a Git tag:
87
+ ```console
88
+ $ git tag v0.1.6
89
+ $ git push --tags
90
+ ```
91
+ 3. Download the artifacts from GitHub Actions, which will include the source distribution tarball and binary wheels.
92
+ 4. Create a new release on GitHub from the tagged commit and upload the packages as attachments to the release.
93
+ 5. Also upload the packages to PyPI using Twine:
94
+ ```console
95
+ $ uv run twine upload pyisyntax-*.tar.gz pyisyntax-*.whl
96
+ ```
97
+ 6. Bump the version number in `pyproject.toml` and create a commit, signalling the start of development on the next version.
98
+
99
+ These files should also be added to a GitHub release.
@@ -5,6 +5,8 @@ README.md
5
5
  pyproject.toml
6
6
  setup.py
7
7
  isyntax/__init__.py
8
+ isyntax/_pyisyntax.pyi
9
+ isyntax/py.typed
8
10
  isyntax/wrapper.py
9
11
  isyntax/lowlevel/__init__.py
10
12
  isyntax/lowlevel/io_management.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyisyntax"
3
- version = "0.1.5"
3
+ version = "0.1.6"
4
4
  description = "Python bindings for libisyntax"
5
5
  readme = { content-type = "text/markdown", file = "README.md" }
6
6
  license = "MIT"
@@ -19,24 +19,25 @@ Download = "https://pypi.org/project/pyisyntax/#files"
19
19
  Tracker = "https://github.com/anibali/pyisyntax/issues"
20
20
  "Release notes" = "https://github.com/anibali/pyisyntax/blob/master/CHANGELOG.md"
21
21
 
22
- [tool.uv]
23
- dev-dependencies = [
22
+ [dependency-groups]
23
+ dev = [
24
24
  "mypy>=1.15.0",
25
- "pytest",
25
+ "pytest>=9.0.0",
26
26
  "pytest-mock",
27
27
  "ruff==0.11.6",
28
28
  "tox>=4.0",
29
29
  "tox-uv",
30
30
  "twine",
31
+ "ty>=0.0.63",
31
32
  "types-cffi",
32
33
  "typing_extensions",
33
34
  ]
34
35
 
35
36
  [build-system]
36
37
  requires = [
37
- "cffi>=1.12",
38
- "setuptools>=77",
39
- "wheel",
38
+ "cffi>=1.12",
39
+ "setuptools>=77",
40
+ "wheel",
40
41
  ]
41
42
  build-backend = "setuptools.build_meta"
42
43
 
@@ -51,6 +52,7 @@ exclude = [
51
52
  [tool.ruff.lint]
52
53
  select = ["ALL"]
53
54
  ignore = [
55
+ "COM812", # missing-trailing-comma, conflicts with ruff format
54
56
  "D1", # undocumented-
55
57
  "PLR0913", # too-many-arguments
56
58
  "TRY003", # raise-vanilla-args
@@ -70,7 +72,12 @@ typeCheckingMode = "standard"
70
72
  addopts = "-Werror"
71
73
 
72
74
  [tool.mypy]
73
- disable_error_code = ["import-untyped"]
75
+ files = ["isyntax", "isyntax_build", "tests"]
76
+ exclude = ["^isyntax_build/vendor/"]
77
+
78
+ [tool.ty.src]
79
+ include = ["isyntax", "isyntax_build", "tests"]
80
+ exclude = ["isyntax_build/vendor"]
74
81
 
75
82
  [tool.tox]
76
83
  legacy_tox_ini = """
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