crival 0.2.0__tar.gz → 0.2.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crival
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Tight IEEE 1788.1 interval arithmetic over NumPy arrays, on crnumerics' libival (CORE-MATH's correctly rounded functions)
5
5
  License: MIT
6
6
  Project-URL: Source, https://github.com/anun333/crnumerics/tree/main/ival
@@ -30,8 +30,9 @@ ival.sin(X) # a million intervals in one call
30
30
 
31
31
  ## Installing
32
32
 
33
- On Linux x86-64 and aarch64 (glibc 2.26 or later), the wheels on PyPI
34
- carry the library, so nothing else needs installing. The package is
33
+ On Linux x86-64 and aarch64 (glibc 2.26 or later) and macOS on Apple
34
+ Silicon (11 or later), the wheels on PyPI carry the library, so nothing
35
+ else needs installing. The package is
35
36
  `crival` on PyPI; the module is `ival`:
36
37
 
37
38
  ```sh
@@ -58,7 +59,8 @@ prefix like `$HOME/.local`, `PKG_CONFIG_PATH` must include its
58
59
  `ival.library_path` says which it loaded, and `ival.version()` the
59
60
  library's version. It works with libival 0.1.0 and later; 0.2.0 fixes sinRev, cosRev
60
61
  and tanRev, which in 0.1.0 could miss a set. Python 3.9 or
61
- later; tested on Linux x86-64 and aarch64.
62
+ later; tested on Linux x86-64 and aarch64, and on macOS (Apple Silicon)
63
+ against `libival.dylib` from `make build/libival.dylib`.
62
64
 
63
65
  ## What there is
64
66
 
@@ -18,8 +18,9 @@ ival.sin(X) # a million intervals in one call
18
18
 
19
19
  ## Installing
20
20
 
21
- On Linux x86-64 and aarch64 (glibc 2.26 or later), the wheels on PyPI
22
- carry the library, so nothing else needs installing. The package is
21
+ On Linux x86-64 and aarch64 (glibc 2.26 or later) and macOS on Apple
22
+ Silicon (11 or later), the wheels on PyPI carry the library, so nothing
23
+ else needs installing. The package is
23
24
  `crival` on PyPI; the module is `ival`:
24
25
 
25
26
  ```sh
@@ -46,7 +47,8 @@ prefix like `$HOME/.local`, `PKG_CONFIG_PATH` must include its
46
47
  `ival.library_path` says which it loaded, and `ival.version()` the
47
48
  library's version. It works with libival 0.1.0 and later; 0.2.0 fixes sinRev, cosRev
48
49
  and tanRev, which in 0.1.0 could miss a set. Python 3.9 or
49
- later; tested on Linux x86-64 and aarch64.
50
+ later; tested on Linux x86-64 and aarch64, and on macOS (Apple Silicon)
51
+ against `libival.dylib` from `make build/libival.dylib`.
50
52
 
51
53
  ## What there is
52
54
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "crival" # on PyPI; the module is ival (import ival)
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "Tight IEEE 1788.1 interval arithmetic over NumPy arrays, on crnumerics' libival (CORE-MATH's correctly rounded functions)"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -18,4 +18,4 @@ Source = "https://github.com/anun333/crnumerics/tree/main/ival"
18
18
  where = ["src"]
19
19
 
20
20
  [tool.setuptools.package-data]
21
- ival = ["libival.so.0", "LICENSE", "LICENSE-CORE-MATH"] # present only in a wheel from build-wheel.sh
21
+ ival = ["libival.so.0", "libival.0.dylib", "LICENSE", "LICENSE-CORE-MATH"] # present only in a wheel from build-wheel.sh
@@ -6,7 +6,8 @@ import os
6
6
  from setuptools import setup
7
7
  from setuptools.dist import Distribution
8
8
 
9
- bundled = os.path.exists(os.path.join(os.path.dirname(os.path.abspath(__file__)), "src", "ival", "libival.so.0"))
9
+ here = os.path.join(os.path.dirname(os.path.abspath(__file__)), "src", "ival")
10
+ bundled = any(os.path.exists(os.path.join(here, n)) for n in ("libival.so.0", "libival.0.dylib"))
10
11
  kw = {}
11
12
  if bundled:
12
13
  try:
@@ -20,7 +21,11 @@ if bundled:
20
21
 
21
22
  class PlatformWheel(bdist_wheel):
22
23
  def get_tag(self):
23
- return "py3", "none", super().get_tag()[2]
24
+ plat = super().get_tag()[2]
25
+ if plat.startswith("macosx_"): # the library's minimum, not the build machine's macOS
26
+ target = os.environ.get("MACOSX_DEPLOYMENT_TARGET", "11.0").replace(".", "_")
27
+ plat = "macosx_" + target + "_" + plat.split("_", 3)[3]
28
+ return "py3", "none", plat
24
29
 
25
30
  kw = {"distclass": BinaryDistribution, "cmdclass": {"bdist_wheel": PlatformWheel}}
26
31
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crival
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Tight IEEE 1788.1 interval arithmetic over NumPy arrays, on crnumerics' libival (CORE-MATH's correctly rounded functions)
5
5
  License: MIT
6
6
  Project-URL: Source, https://github.com/anun333/crnumerics/tree/main/ival
@@ -30,8 +30,9 @@ ival.sin(X) # a million intervals in one call
30
30
 
31
31
  ## Installing
32
32
 
33
- On Linux x86-64 and aarch64 (glibc 2.26 or later), the wheels on PyPI
34
- carry the library, so nothing else needs installing. The package is
33
+ On Linux x86-64 and aarch64 (glibc 2.26 or later) and macOS on Apple
34
+ Silicon (11 or later), the wheels on PyPI carry the library, so nothing
35
+ else needs installing. The package is
35
36
  `crival` on PyPI; the module is `ival`:
36
37
 
37
38
  ```sh
@@ -58,7 +59,8 @@ prefix like `$HOME/.local`, `PKG_CONFIG_PATH` must include its
58
59
  `ival.library_path` says which it loaded, and `ival.version()` the
59
60
  library's version. It works with libival 0.1.0 and later; 0.2.0 fixes sinRev, cosRev
60
61
  and tanRev, which in 0.1.0 could miss a set. Python 3.9 or
61
- later; tested on Linux x86-64 and aarch64.
62
+ later; tested on Linux x86-64 and aarch64, and on macOS (Apple Silicon)
63
+ against `libival.dylib` from `make build/libival.dylib`.
62
64
 
63
65
  ## What there is
64
66
 
@@ -41,9 +41,10 @@ def _find():
41
41
  env = os.environ.get("IVAL_LIBRARY")
42
42
  if env:
43
43
  return env
44
- here = os.path.join(os.path.dirname(os.path.abspath(__file__)), "libival.so.0")
45
- if os.path.exists(here): # a wheel's own copy (build-wheel.sh)
46
- return here
44
+ for name in ("libival.so.0", "libival.0.dylib"): # a wheel's own copy (build-wheel.sh)
45
+ here = os.path.join(os.path.dirname(os.path.abspath(__file__)), name)
46
+ if os.path.exists(here):
47
+ return here
47
48
  for name in ("libival.so.0", "libival.so"):
48
49
  try:
49
50
  ctypes.CDLL(name)
File without changes
File without changes
File without changes