basil-core 1.2.2__tar.gz → 1.3.0__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 (129) hide show
  1. {basil_core-1.2.2 → basil_core-1.3.0}/MANIFEST.in +1 -0
  2. {basil_core-1.2.2 → basil_core-1.3.0}/Makefile +12 -5
  3. {basil_core-1.2.2 → basil_core-1.3.0}/PKG-INFO +6 -10
  4. basil_core-1.3.0/__version__.py +1 -0
  5. {basil_core-1.2.2 → basil_core-1.3.0}/meson.build +3 -2
  6. {basil_core-1.2.2 → basil_core-1.3.0}/pyproject.toml +17 -13
  7. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/__init__.py +1 -0
  8. basil_core-1.3.0/src/basil_core/__version__.py +1 -0
  9. basil_core-1.3.0/src/basil_core/array_tools/__init__.py +2 -0
  10. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/array_tools/_indexer.c +3 -27
  11. basil_core-1.3.0/src/basil_core/array_tools/array_item.py +26 -0
  12. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/array_tools/meson.build +2 -0
  13. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/_basil_core_astro_const.h +6 -2
  14. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/_coordinates.c +3 -26
  15. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/_spin.c +4 -26
  16. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/_tides.c +4 -26
  17. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/meson.build +3 -0
  18. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/_DWD_RLOF.c +4 -27
  19. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/_decay.c +4 -27
  20. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/_kepler.c +4 -27
  21. basil_core-1.3.0/src/basil_core/astro/orbit/_white_dwarf.c +555 -0
  22. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/decay.py +294 -1017
  23. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/meson.build +12 -0
  24. basil_core-1.3.0/src/basil_core/astro/orbit/white_dwarf.py +947 -0
  25. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/AGND.py +3 -3
  26. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/Navarro.py +2 -2
  27. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/Weibel.py +2 -2
  28. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/utils.py +3 -0
  29. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/early_frac.py +8 -8
  30. basil_core-1.3.0/src/basil_core/c_utils/basil_module.h +46 -0
  31. basil_core-1.3.0/src/basil_core/const.py +18 -0
  32. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/meson.build +2 -0
  33. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/plots/axis.py +28 -6
  34. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/_distance.c +4 -27
  35. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/_relative_entropy.c +4 -27
  36. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/_schechter.c +3 -26
  37. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/density/histogram_overhang.py +13 -3
  38. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/meson.build +3 -0
  39. basil_core-1.3.0/src/basil_core/units.py +168 -0
  40. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_indexer.py +1 -1
  41. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_orbit.py +30 -25
  42. basil_core-1.2.2/__version__.py +0 -1
  43. basil_core-1.2.2/setup.py.old +0 -240
  44. basil_core-1.2.2/src/basil_core/__version__.py +0 -1
  45. basil_core-1.2.2/src/basil_core/array_tools/__init__.py +0 -1
  46. basil_core-1.2.2/src/basil_core/astro/orbit/_GW.c +0 -539
  47. basil_core-1.2.2/src/basil_core/astro/orbit/white_dwarf.py +0 -257
  48. {basil_core-1.2.2 → basil_core-1.3.0}/.gitignore +0 -0
  49. {basil_core-1.2.2 → basil_core-1.3.0}/.gitlab-ci.yml +0 -0
  50. {basil_core-1.2.2 → basil_core-1.3.0}/README.md +0 -0
  51. {basil_core-1.2.2 → basil_core-1.3.0}/REQUIREMENTS.txt +0 -0
  52. {basil_core-1.2.2 → basil_core-1.3.0}/originals/callister_priors_arxiv_2104_09508.py +0 -0
  53. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/array_tools/indexer.py +0 -0
  54. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/__init__.py +0 -0
  55. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/__init__.py +0 -0
  56. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/coordinates.py +0 -0
  57. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/coordinates/distance.py +0 -0
  58. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/meson.build +0 -0
  59. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/__init__.py +0 -0
  60. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/ecc_root_finder.py +0 -0
  61. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/orbit/orbit.py +0 -0
  62. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/priors/__init__.py +0 -0
  63. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/priors/callister_priors.py +0 -0
  64. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/priors/meson.build +0 -0
  65. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/Lyon2024/LICENSE.txt +0 -0
  66. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/Lyon2024/Lyon2024AGNPhi.dat +0 -0
  67. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/Lyon2024/__init__.py +0 -0
  68. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/Lyon2024/meson.build +0 -0
  69. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/__init__.py +0 -0
  70. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/AGND/meson.build +0 -0
  71. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/Fontana.py +0 -0
  72. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/Furlong2015.py +0 -0
  73. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/__init__.py +0 -0
  74. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/GSMF/meson.build +0 -0
  75. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/IMF/IMF.py +0 -0
  76. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/IMF/__init__.py +0 -0
  77. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/IMF/meson.build +0 -0
  78. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/MZR/MZR.py +0 -0
  79. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/MZR/__init__.py +0 -0
  80. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/MZR/meson.build +0 -0
  81. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/MZR/utils.py +0 -0
  82. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/NSC_frac_of_GSM/NSC_frac_of_GSM.py +0 -0
  83. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/NSC_frac_of_GSM/__init__.py +0 -0
  84. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/NSC_frac_of_GSM/meson.build +0 -0
  85. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/NSC_mass_of_GSM/NSC_mass_of_GSM.py +0 -0
  86. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/NSC_mass_of_GSM/__init__.py +0 -0
  87. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/NSC_mass_of_GSM/meson.build +0 -0
  88. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/SFRD/SFRD.py +0 -0
  89. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/SFRD/__init__.py +0 -0
  90. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/SFRD/meson.build +0 -0
  91. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/SMBH_mass_of_GSM/SMBH_mass_of_GSM.py +0 -0
  92. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/SMBH_mass_of_GSM/__init__.py +0 -0
  93. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/SMBH_mass_of_GSM/meson.build +0 -0
  94. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/__init__.py +0 -0
  95. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/Peng2015/Fig2a.png +0 -0
  96. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/Peng2015/README.txt +0 -0
  97. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/Peng2015/__init__.py +0 -0
  98. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/Peng2015/meson.build +0 -0
  99. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/Peng2015/stellarMZR-SF.TXT +0 -0
  100. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/Peng2015/stellarMZR-passive.txt +0 -0
  101. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/__init__.py +0 -0
  102. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/early_frac_of_GSM_metallicity/meson.build +0 -0
  103. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/astro/relations/meson.build +0 -0
  104. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/c_utils/dbg.h +0 -0
  105. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/plots/__init__.py +0 -0
  106. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/plots/corner.py +0 -0
  107. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/plots/meson.build +0 -0
  108. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/plots/utils.py +0 -0
  109. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/random/__init__.py +0 -0
  110. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/random/meson.build +0 -0
  111. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/random/pcg64.py +0 -0
  112. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/random/sphere.py +0 -0
  113. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/__init__.py +0 -0
  114. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/density/__init__.py +0 -0
  115. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/density/density_utils.py +0 -0
  116. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/density/meson.build +0 -0
  117. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/distance.py +0 -0
  118. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/hypercube.py +0 -0
  119. {basil_core-1.2.2 → basil_core-1.3.0}/src/basil_core/stats/schechter.py +0 -0
  120. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_callister_priors.py +0 -0
  121. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_coordinates.py +0 -0
  122. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_corner.py +0 -0
  123. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_cosmology_distance.py +0 -0
  124. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_distance.py +0 -0
  125. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_histogram_overhang.py +0 -0
  126. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_hypercube.py +0 -0
  127. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_random.py +0 -0
  128. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_relations.py +0 -0
  129. {basil_core-1.2.2 → basil_core-1.3.0}/tests/test_schechter.py +0 -0
@@ -11,6 +11,7 @@ include src/basil_core/stats/_relative_entropy.c
11
11
  include src/basil_core/stats/_schechter.c
12
12
  include src/basil_core/astro/orbit/_GW.c
13
13
  include src/basil_core/astro/orbit/_DWD_RLOF.c
14
+ include src/basil_core/astro/orbit/_white_dwarf.c
14
15
  include src/basil_core/astro/orbit/_kepler.c
15
16
  include src/basil_core/astro/_basil_core_astro_const.h
16
17
  include src/basil_core/c_utils/dbg.h
@@ -4,7 +4,7 @@ all: tests
4
4
 
5
5
  ######## Setup ########
6
6
 
7
- VERSION = 1.2.2
7
+ VERSION = 1.3.0
8
8
  DIST=dist/basil_core-${VERSION}.tar.gz
9
9
  version: clean
10
10
  sed --in-place "s/version = .*/version = \"${VERSION}\"/g" pyproject.toml
@@ -16,14 +16,21 @@ HERE=$(shell pwd)
16
16
  WHL=wheelhouse
17
17
  LOCAL_WHEELS=${HERE}/local-wheels
18
18
 
19
+ FREETHREADED := $(shell python3 -c "import sysconfig; print(sysconfig.get_config_var('Py_GIL_DISABLED') or 0)")
20
+ ifeq ($(FREETHREADED),1)
21
+ NOLIMITED = -Dpython.allow_limited_api=false
22
+ BUILD_OPTS = -C setup-args=$(NOLIMITED)
23
+ PIP_OPTS = --config-settings=setup-args=$(NOLIMITED)
24
+ endif
25
+
19
26
  ######## Installation ########
20
27
  $(DIST): clean version
21
28
  - git add src meson.build __version__.py
22
29
  - git commit
23
- python3 -m build
30
+ python3 -m build $(BUILD_OPTS)
24
31
 
25
32
  install: $(DIST)
26
- python3 -m pip install $(DIST)
33
+ python3 -m pip install $(DIST) $(PIP_OPTS)
27
34
 
28
35
  testpypi: tests
29
36
  python3 -m twine upload --repository testpypi $(DIST)
@@ -87,8 +94,8 @@ test_relations: install
87
94
  mkdir -p ${EXAMPLE_LOCATION}/data
88
95
  python3 ${EXAMPLE_LOCATION}/tests/test_relations.py
89
96
 
90
- tests: test_coordinates test_distance test_cosmology_distance test_orbit test_random test_callister test_indexer test_schechter
91
- #tests: test_coordinates test_distance test_orbit test_random test_callister test_corner test_indexer test_schechter
97
+ tests: test_coordinates test_distance test_cosmology_distance test_orbit test_callister test_indexer test_schechter
98
+ #tests: test_coordinates test_distance test_cosmology_distance test_orbit test_random test_callister test_indexer test_schechter
92
99
 
93
100
  ######## Clean ########
94
101
  clean:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: basil_core
3
- Version: 1.2.2
3
+ Version: 1.3.0
4
4
  Summary: BASIL-CORE: Bayesian Analytic Sampling and Integrating Library - Compiled and low-dependency utilities
5
5
  Keywords: Gravitational Wave,Bayesian Inference
6
6
  Author-Email: "V. Delfavero" <vdfavero@cita.utoronto.ca>
@@ -15,16 +15,12 @@ Classifier: Topic :: Scientific/Engineering :: Physics
15
15
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
16
16
  Project-URL: Homepage, https://gitlab.com/xevra/basil-core
17
17
  Project-URL: Bug tracker, https://gitlab.com/xevra/basil-core/issues
18
- Requires-Python: >=3.12
19
- Requires-Dist: h5py>=2.7.0
20
- Requires-Dist: numpy<2.4.0,>=2.0
21
- Requires-Dist: matplotlib>=2.2.4
22
- Requires-Dist: scipy>=1.5.0
23
- Requires-Dist: six>=1.10.0
24
- Requires-Dist: fast_histogram>=0.10
25
- Requires-Dist: xev-data>=0.1.1
18
+ Requires-Python: <3.15,>=3.9
19
+ Requires-Dist: h5py>=3.11
20
+ Requires-Dist: numpy<2.6.0,>=1.19.0
21
+ Requires-Dist: matplotlib>=3.8
22
+ Requires-Dist: scipy>=1.11.0
26
23
  Requires-Dist: astropy>=6.0
27
- Requires-Dist: pathlib
28
24
  Description-Content-Type: text/markdown
29
25
 
30
26
  # Basil Core
@@ -0,0 +1 @@
1
+ __version__ = '1.3.0'
@@ -1,12 +1,13 @@
1
1
  project('basil_core',
2
2
  'c',
3
- version: '1.2.2',
3
+ version: '1.3.0',
4
4
  default_options: ['warning_level=2', 'optimization=3', 'c_std=c99'],
5
- meson_version: '>=0.64.0',
5
+ meson_version: '>=1.3.0',
6
6
  )
7
7
 
8
8
  py = import('python').find_installation(pure: false)
9
9
  numpy_dep = dependency('numpy')
10
+ add_project_arguments('-DNPY_TARGET_VERSION=NPY_1_19_API_VERSION', language: 'c')
10
11
 
11
12
  # Include directories
12
13
  inc_dirs = [
@@ -1,18 +1,24 @@
1
1
  [build-system]
2
2
  requires = [
3
3
  "meson-python>=0.13.0",
4
- "meson>=0.64.0",
4
+ "meson>=1.3.0",
5
5
  "wheel",
6
- "numpy",
6
+ "numpy>=2.0",
7
7
  ]
8
8
  build-backend = 'mesonpy'
9
9
 
10
+ [tool.meson-python]
11
+ limited-api = true
12
+
10
13
  [tool.meson-python.args]
11
14
  setup = ["--warnlevel=2"]
12
15
 
13
16
  [tool.cibuildwheel]
14
- # Disable free-threading builds on all platforms
15
- skip = "cp3??t-*"
17
+ build = "cp39-* cp314t-*"
18
+
19
+ [[tool.cibuildwheel.overrides]]
20
+ select = "*t-*"
21
+ config-settings = { setup-args = "-Dpython.allow_limited_api=false" }
16
22
 
17
23
  [project]
18
24
  name = "basil_core"
@@ -26,7 +32,7 @@ maintainers = [
26
32
  ]
27
33
  license = {text = "MIT License"}
28
34
  readme = "README.md"
29
- requires-python = ">=3.12"
35
+ requires-python = ">=3.9,<3.15"
30
36
  keywords = ["Gravitational Wave", "Bayesian Inference"]
31
37
  classifiers = [
32
38
  "Development Status :: 3 - Alpha",
@@ -38,15 +44,13 @@ classifiers = [
38
44
  "Topic :: Scientific/Engineering :: Information Analysis",
39
45
  ]
40
46
  dependencies = [
41
- "h5py>=2.7.0",
42
- "numpy>=2.0,<2.4.0",
43
- "matplotlib>=2.2.4",
44
- "scipy>=1.5.0",
45
- "six>=1.10.0",
46
- "fast_histogram>=0.10",
47
- "xev-data>=0.1.1",
47
+ "h5py>=3.11",
48
+ "numpy>=1.19.0,<2.6.0",
49
+ "matplotlib>=3.8",
50
+ "scipy>=1.11.0",
51
+ #"fast_histogram>=0.12",
52
+ #"xev-data>=0.1.8",
48
53
  "astropy>=6.0",
49
- "pathlib",
50
54
  ]
51
55
 
52
56
  [project.urls]
@@ -1 +1,2 @@
1
1
  from basil_core.__version__ import __version__
2
+ from basil_core.units import allow_units
@@ -0,0 +1 @@
1
+ __version__ = '1.3.0'
@@ -0,0 +1,2 @@
1
+ from basil_core.array_tools.indexer import *
2
+ from basil_core.array_tools.array_item import *
@@ -1,10 +1,10 @@
1
1
  #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
7
6
  #include "dbg.h"
7
+ #include "basil_module.h"
8
8
 
9
9
  /* Define docstrings */
10
10
  static char module_docstring[] = "an array indexer for xevra";
@@ -43,34 +43,10 @@ static PyMethodDef module_methods[] = {
43
43
 
44
44
  /* This is the function that will call on import */
45
45
 
46
- #if PY_MAJOR_VERSION >= 3
47
- #define MOD_ERROR_VAL NULL
48
- #define MOD_SUCCESS_VAL(val) val
49
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
50
- #define MOD_DEF(ob, name, doc, methods) \
51
- static struct PyModuleDef moduledef = { \
52
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
53
- ob = PyModule_Create(&moduledef);
54
- #else
55
- #define MOD_ERROR_VAL
56
- #define MOD_SUCCESS_VAL(val)
57
- #define MOD_INIT(name) void init##name(void)
58
- #define MOD_DEF(ob, name, doc, methods) \
59
- ob = Py_InitModule3(name, methods, doc);
60
- #endif
61
-
62
- MOD_INIT(_indexer)
63
- {
64
- PyObject *m;
65
- MOD_DEF(m, "_indexer", module_docstring, module_methods);
66
- if (m == NULL)
67
- return MOD_ERROR_VAL;
68
- import_array();
69
- return MOD_SUCCESS_VAL(m);
70
- }
46
+ static int _indexer_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
47
+ BASIL_MODULE(_indexer, module_docstring, module_methods)
71
48
 
72
49
  /* Begin the function definitions */
73
-
74
50
  static PyObject *_unique_array_index64(PyObject *self, PyObject *args) {
75
51
 
76
52
  // n will be used to describe the length of the
@@ -0,0 +1,26 @@
1
+ """Compatibility with NumPy 2.4.0
2
+
3
+ Solves most of the depracation issues for newer versions of NumPy
4
+ """
5
+ # Import numpy
6
+ import numpy as np
7
+
8
+ def unwrap(x):
9
+ """Python ternary operator"""
10
+ # It is your own fault if you make a pointer loop
11
+ return unwrap(x.item()) if hasattr(x, 'item') else x
12
+
13
+ def as_float(x):
14
+ return float(unwrap(x))
15
+
16
+ def as_int(x):
17
+ return int(unwrap(x))
18
+
19
+ def is_scalar(x):
20
+ """True for python/numpy data structures with a single value"""
21
+ return (
22
+ not hasattr(x, '__len__') or \
23
+ (hasattr(x, 'size') and x.size == 1) or \
24
+ (len(x) == 1) & is_scalar(x[0])
25
+ )
26
+
@@ -2,12 +2,14 @@
2
2
  py.install_sources([
3
3
  '__init__.py',
4
4
  'indexer.py',
5
+ 'array_item.py',
5
6
  ], subdir: 'basil_core/array_tools')
6
7
 
7
8
  py.extension_module('_indexer',
8
9
  sources: ['_indexer.c'],
9
10
  include_directories: incdir,
10
11
  dependencies: [numpy_dep],
12
+ limited_api: '3.9',
11
13
  subdir: 'basil_core/array_tools',
12
14
  install: true,
13
15
  )
@@ -7,7 +7,11 @@
7
7
  #define RSUN 6.957e8
8
8
  #define GGRAV 6.6743e-11 //Consistent with astropy
9
9
  #define CLIGHT 299792458
10
- #define CHANDRASEKHAR_MASS 1.4 * (MSUN)
11
-
10
+ #define CHANDRASEKHAR_MASS (1.44 * (MSUN))
11
+ #define M_P_WD 1.133393626297889e+27
12
+ #define MYR_SEC 31557600000000
13
+ #define GYR_SEC 31557600000000000
14
+ #define SOL_LUM 3.828e+26
15
+ #define SIGMA_SB 5.67037442e-08
12
16
 
13
17
  #endif
@@ -1,10 +1,10 @@
1
1
  #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
7
6
  #include "dbg.h"
7
+ #include "basil_module.h"
8
8
 
9
9
  /* Define docstrings */
10
10
  static char module_docstring[] = "Coordinate transformations for xevra";
@@ -44,31 +44,8 @@ static PyMethodDef module_methods[] = {
44
44
 
45
45
  /* This is the function that will call on import */
46
46
 
47
- #if PY_MAJOR_VERSION >= 3
48
- #define MOD_ERROR_VAL NULL
49
- #define MOD_SUCCESS_VAL(val) val
50
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
51
- #define MOD_DEF(ob, name, doc, methods) \
52
- static struct PyModuleDef moduledef = { \
53
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
54
- ob = PyModule_Create(&moduledef);
55
- #else
56
- #define MOD_ERROR_VAL
57
- #define MOD_SUCCESS_VAL(val)
58
- #define MOD_INIT(name) void init##name(void)
59
- #define MOD_DEF(ob, name, doc, methods) \
60
- ob = Py_InitModule3(name, methods, doc);
61
- #endif
62
-
63
- MOD_INIT(_coordinates)
64
- {
65
- PyObject *m;
66
- MOD_DEF(m, "_coordinates", module_docstring, module_methods);
67
- if (m == NULL)
68
- return MOD_ERROR_VAL;
69
- import_array();
70
- return MOD_SUCCESS_VAL(m);
71
- }
47
+ static int _coordinates_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
48
+ BASIL_MODULE(_coordinates, module_docstring, module_methods)
72
49
 
73
50
  /* Begin the function definitions */
74
51
 
@@ -1,9 +1,10 @@
1
1
  #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
6
+ #include "dbg.h"
7
+ #include "basil_module.h"
7
8
 
8
9
  /* Define docstrings */
9
10
  static char module_docstring[] = "Coordinate transformations for spin";
@@ -54,31 +55,8 @@ static PyMethodDef module_methods[] = {
54
55
 
55
56
  /* This is the function that will call on import */
56
57
 
57
- #if PY_MAJOR_VERSION >= 3
58
- #define MOD_ERROR_VAL NULL
59
- #define MOD_SUCCESS_VAL(val) val
60
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
61
- #define MOD_DEF(ob, name, doc, methods) \
62
- static struct PyModuleDef moduledef = { \
63
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
64
- ob = PyModule_Create(&moduledef);
65
- #else
66
- #define MOD_ERROR_VAL
67
- #define MOD_SUCCESS_VAL(val)
68
- #define MOD_INIT(name) void init##name(void)
69
- #define MOD_DEF(ob, name, doc, methods) \
70
- ob = Py_InitModule3(name, methods, doc);
71
- #endif
72
-
73
- MOD_INIT(_spin)
74
- {
75
- PyObject *m;
76
- MOD_DEF(m, "_spin", module_docstring, module_methods);
77
- if (m == NULL)
78
- return MOD_ERROR_VAL;
79
- import_array();
80
- return MOD_SUCCESS_VAL(m);
81
- }
58
+ static int _spin_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
59
+ BASIL_MODULE(_spin, module_docstring, module_methods)
82
60
 
83
61
  /* Begin the function definitions */
84
62
  /* Chi effective from m1, m2, chi1z, chi2z */
@@ -1,9 +1,10 @@
1
1
  #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
6
+ #include "dbg.h"
7
+ #include "basil_module.h"
7
8
 
8
9
  /* Define docstrings */
9
10
  static char module_docstring[] = "Coordinate transformations for tides";
@@ -53,31 +54,8 @@ static PyMethodDef module_methods[] = {
53
54
 
54
55
  /* This is the function that will call on import */
55
56
 
56
- #if PY_MAJOR_VERSION >= 3
57
- #define MOD_ERROR_VAL NULL
58
- #define MOD_SUCCESS_VAL(val) val
59
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
60
- #define MOD_DEF(ob, name, doc, methods) \
61
- static struct PyModuleDef moduledef = { \
62
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
63
- ob = PyModule_Create(&moduledef);
64
- #else
65
- #define MOD_ERROR_VAL
66
- #define MOD_SUCCESS_VAL(val)
67
- #define MOD_INIT(name) void init##name(void)
68
- #define MOD_DEF(ob, name, doc, methods) \
69
- ob = Py_InitModule3(name, methods, doc);
70
- #endif
71
-
72
- MOD_INIT(_tides)
73
- {
74
- PyObject *m;
75
- MOD_DEF(m, "_tides", module_docstring, module_methods);
76
- if (m == NULL)
77
- return MOD_ERROR_VAL;
78
- import_array();
79
- return MOD_SUCCESS_VAL(m);
80
- }
57
+ static int _tides_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
58
+ BASIL_MODULE(_tides, module_docstring, module_methods)
81
59
 
82
60
  /* Begin the function definitions */
83
61
  /* Chi effective from m1, m2, chi1z, chi2z */
@@ -9,6 +9,7 @@ py.extension_module('_coordinates',
9
9
  sources: ['_coordinates.c'],
10
10
  include_directories: incdir,
11
11
  dependencies: [numpy_dep],
12
+ limited_api: '3.9',
12
13
  subdir: 'basil_core/astro/coordinates',
13
14
  install: true,
14
15
  )
@@ -16,6 +17,7 @@ py.extension_module('_spin',
16
17
  sources: ['_spin.c'],
17
18
  include_directories: incdir,
18
19
  dependencies: [numpy_dep],
20
+ limited_api: '3.9',
19
21
  subdir: 'basil_core/astro/coordinates',
20
22
  install: true,
21
23
  )
@@ -23,6 +25,7 @@ py.extension_module('_tides',
23
25
  sources: ['_tides.c'],
24
26
  include_directories: incdir,
25
27
  dependencies: [numpy_dep],
28
+ limited_api: '3.9',
26
29
  subdir: 'basil_core/astro/coordinates',
27
30
  install: true,
28
31
  )
@@ -1,10 +1,10 @@
1
- #define NP_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
1
+ #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
7
6
  #include "dbg.h"
7
+ #include "basil_module.h"
8
8
  #include "_basil_core_astro_const.h"
9
9
 
10
10
  /* Define docstring */
@@ -47,31 +47,8 @@ static PyMethodDef module_methods[] = {
47
47
 
48
48
  /* This is the function that will call on import */
49
49
 
50
- #if PY_MAJOR_VERSION >= 3
51
- #define MOD_ERROR_VAL NULL
52
- #define MOD_SUCCESS_VAL(val) val
53
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
54
- #define MOD_DEF(ob, name, doc, methods) \
55
- static struct PyModuleDef moduledef = { \
56
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
57
- ob = PyModule_Create(&moduledef);
58
- #else
59
- #define MOD_ERROR_VAL
60
- #define MOD_SUCCESS_VAL(val)
61
- #define MOD_INIT(name) void init##name(void)
62
- #define MOD_DEF(ob, name, doc, methods) \
63
- ob = Py_InitModule3(name, methods, doc);
64
- #endif
65
-
66
- MOD_INIT(_DWD_RLOF)
67
- {
68
- PyObject *m;
69
- MOD_DEF(m, "_DWD_RLOF", module_docstring, module_methods);
70
- if (m == NULL)
71
- return MOD_ERROR_VAL;
72
- import_array();
73
- return MOD_SUCCESS_VAL(m);
74
- }
50
+ static int _DWD_RLOF_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
51
+ BASIL_MODULE(_DWD_RLOF, module_docstring, module_methods)
75
52
 
76
53
  /* Define other functions here */
77
54
 
@@ -1,10 +1,10 @@
1
- #define NP_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
1
+ #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
7
6
  #include "dbg.h"
7
+ #include "basil_module.h"
8
8
  #include "_basil_core_astro_const.h"
9
9
 
10
10
  /* Define docstring */
@@ -128,31 +128,8 @@ static PyMethodDef module_methods[] = {
128
128
 
129
129
  /* This is the function that will call on import */
130
130
 
131
- #if PY_MAJOR_VERSION >= 3
132
- #define MOD_ERROR_VAL NULL
133
- #define MOD_SUCCESS_VAL(val) val
134
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
135
- #define MOD_DEF(ob, name, doc, methods) \
136
- static struct PyModuleDef moduledef = { \
137
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
138
- ob = PyModule_Create(&moduledef);
139
- #else
140
- #define MOD_ERROR_VAL
141
- #define MOD_SUCCESS_VAL(val)
142
- #define MOD_INIT(name) void init##name(void)
143
- #define MOD_DEF(ob, name, doc, methods) \
144
- ob = Py_InitModule3(name, methods, doc);
145
- #endif
146
-
147
- MOD_INIT(_decay)
148
- {
149
- PyObject *m;
150
- MOD_DEF(m, "_decay", module_docstring, module_methods);
151
- if (m == NULL)
152
- return MOD_ERROR_VAL;
153
- import_array();
154
- return MOD_SUCCESS_VAL(m);
155
- }
131
+ static int _decay_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
132
+ BASIL_MODULE(_decay, module_docstring, module_methods)
156
133
 
157
134
  /* Define other functions here */
158
135
 
@@ -1,10 +1,10 @@
1
- #define NP_NO_DEPRECATED_API NPY_1_7_API_VERSION
2
- #define Py_LIMITED_API 0x030600f0
1
+ #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
3
2
 
4
3
  #include <Python.h>
5
4
  #include <numpy/arrayobject.h>
6
5
  #include <numpy/npy_math.h>
7
6
  #include "dbg.h"
7
+ #include "basil_module.h"
8
8
  #include "_basil_core_astro_const.h"
9
9
 
10
10
  /* Define docstring */
@@ -38,31 +38,8 @@ static PyMethodDef module_methods[] = {
38
38
 
39
39
  /* This is the function that will call on import */
40
40
 
41
- #if PY_MAJOR_VERSION >= 3
42
- #define MOD_ERROR_VAL NULL
43
- #define MOD_SUCCESS_VAL(val) val
44
- #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
45
- #define MOD_DEF(ob, name, doc, methods) \
46
- static struct PyModuleDef moduledef = { \
47
- PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
48
- ob = PyModule_Create(&moduledef);
49
- #else
50
- #define MOD_ERROR_VAL
51
- #define MOD_SUCCESS_VAL(val)
52
- #define MOD_INIT(name) void init##name(void)
53
- #define MOD_DEF(ob, name, doc, methods) \
54
- ob = Py_InitModule3(name, methods, doc);
55
- #endif
56
-
57
- MOD_INIT(_kepler)
58
- {
59
- PyObject *m;
60
- MOD_DEF(m, "_kepler", module_docstring, module_methods);
61
- if (m == NULL)
62
- return MOD_ERROR_VAL;
63
- import_array();
64
- return MOD_SUCCESS_VAL(m);
65
- }
41
+ static int _kepler_exec(PyObject *m) { (void)m; import_array1(-1); return 0; }
42
+ BASIL_MODULE(_kepler, module_docstring, module_methods)
66
43
 
67
44
  /* Define other functions here */
68
45