sxs 2025.0.1__tar.gz → 2025.0.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 (129) hide show
  1. {sxs-2025.0.1 → sxs-2025.0.2}/.github/workflows/build.yml +1 -1
  2. {sxs-2025.0.1 → sxs-2025.0.2}/CITATION.cff +2 -2
  3. {sxs-2025.0.1 → sxs-2025.0.2}/PKG-INFO +2 -2
  4. {sxs-2025.0.1 → sxs-2025.0.2}/pyproject.toml +2 -1
  5. sxs-2025.0.2/sxs/__version__.py +1 -0
  6. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/handlers.py +20 -1
  7. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/lvc.py +6 -5
  8. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py +6 -0
  9. {sxs-2025.0.1 → sxs-2025.0.2}/tests/conftest.py +1 -1
  10. sxs-2025.0.1/sxs/__version__.py +0 -1
  11. {sxs-2025.0.1 → sxs-2025.0.2}/.codecov.yml +0 -0
  12. {sxs-2025.0.1 → sxs-2025.0.2}/.github/dependabot.yml +0 -0
  13. {sxs-2025.0.1 → sxs-2025.0.2}/.github/scripts/parse_bump_rule.py +0 -0
  14. {sxs-2025.0.1 → sxs-2025.0.2}/.github/workflows/pr_rtd_link.yml +0 -0
  15. {sxs-2025.0.1 → sxs-2025.0.2}/.gitignore +0 -0
  16. {sxs-2025.0.1 → sxs-2025.0.2}/.readthedocs.yaml +0 -0
  17. {sxs-2025.0.1 → sxs-2025.0.2}/LICENSE +0 -0
  18. {sxs-2025.0.1 → sxs-2025.0.2}/README.md +0 -0
  19. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/catalog.md +0 -0
  20. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/horizons.md +0 -0
  21. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/load.md +0 -0
  22. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/metadata.md +0 -0
  23. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/simulation.md +0 -0
  24. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/simulations.md +0 -0
  25. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/time_series.md +0 -0
  26. {sxs-2025.0.1 → sxs-2025.0.2}/docs/api/waveforms.md +0 -0
  27. {sxs-2025.0.1 → sxs-2025.0.2}/docs/html/main.html +0 -0
  28. {sxs-2025.0.1 → sxs-2025.0.2}/docs/images/favicon.ico +0 -0
  29. {sxs-2025.0.1 → sxs-2025.0.2}/docs/index.md +0 -0
  30. {sxs-2025.0.1 → sxs-2025.0.2}/docs/javascript/mathjax.js +0 -0
  31. {sxs-2025.0.1 → sxs-2025.0.2}/docs/julia.md +0 -0
  32. {sxs-2025.0.1 → sxs-2025.0.2}/docs/mathematica.md +0 -0
  33. {sxs-2025.0.1 → sxs-2025.0.2}/docs/stylesheets/extra.css +0 -0
  34. {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/00-Introduction.ipynb +0 -0
  35. {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/01-Simulations_and_Metadata.ipynb +0 -0
  36. {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/02-Simulation.ipynb +0 -0
  37. {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/03-Horizons.ipynb +0 -0
  38. {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/04-Waveforms.ipynb +0 -0
  39. {sxs-2025.0.1 → sxs-2025.0.2}/docs/tutorials/05-PreprocessingForFFTs.ipynb +0 -0
  40. {sxs-2025.0.1 → sxs-2025.0.2}/mkdocs.yml +0 -0
  41. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/__init__.py +0 -0
  42. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/__init__.py +0 -0
  43. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/catalog.py +0 -0
  44. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/create.py +0 -0
  45. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/catalog/description.py +0 -0
  46. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/horizons/__init__.py +0 -0
  47. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/horizons/spec_horizons_h5.py +0 -0
  48. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/horizons/xor_multishuffle_bzip2.py +0 -0
  49. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/julia/GWFrames.py +0 -0
  50. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/julia/__init__.py +0 -0
  51. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/juliapkg.json +0 -0
  52. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/metadata/__init__.py +0 -0
  53. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/metadata/metadata.py +0 -0
  54. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/metadata/metric.py +0 -0
  55. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/__init__.py +0 -0
  56. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/local.py +0 -0
  57. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/simulation.py +0 -0
  58. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/simulations/simulations.py +0 -0
  59. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/time_series.py +0 -0
  60. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/__init__.py +0 -0
  61. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/bitwise.py +0 -0
  62. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/__init__.py +0 -0
  63. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/greedy_spline.py +0 -0
  64. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/linear_bisection.py +0 -0
  65. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/peak_greed.py +0 -0
  66. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/decimation/suppression.py +0 -0
  67. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/dicts.py +0 -0
  68. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/downloads.py +0 -0
  69. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/files.py +0 -0
  70. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/formats.py +0 -0
  71. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/inspire.py +0 -0
  72. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/__init__.py +0 -0
  73. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/comparisons.py +0 -0
  74. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/conversion.py +0 -0
  75. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/dataset.py +0 -0
  76. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/horizons.py +0 -0
  77. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/metadata.py +0 -0
  78. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/waveform_amp_phase.py +0 -0
  79. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/lvcnr/waveforms.py +0 -0
  80. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/monotonicity.py +0 -0
  81. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/pretty_print.py +0 -0
  82. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/__init__.py +0 -0
  83. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/ads.py +0 -0
  84. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/arxiv.py +0 -0
  85. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/fairchild_report.py +0 -0
  86. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/inspire.py +0 -0
  87. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/journal_abbreviations.py +0 -0
  88. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/references/references.py +0 -0
  89. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/select.py +0 -0
  90. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/smooth_functions.py +0 -0
  91. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/string_converters.py +0 -0
  92. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/sxs_directories.py +0 -0
  93. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/sxs_identifiers.py +0 -0
  94. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/utilities/url.py +0 -0
  95. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/__init__.py +0 -0
  96. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/alignment.py +0 -0
  97. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/__init__.py +0 -0
  98. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/grathena.py +0 -0
  99. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/nrar.py +0 -0
  100. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py +0 -0
  101. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/format_handlers/spectre_cce_v1.py +0 -0
  102. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/memory.py +0 -0
  103. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/mode_utilities.py +0 -0
  104. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/transformations.py +0 -0
  105. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_grid.py +0 -0
  106. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_mixin.py +0 -0
  107. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_modes.py +0 -0
  108. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/waveforms/waveform_signal.py +0 -0
  109. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/__init__.py +0 -0
  110. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/__init__.py +0 -0
  111. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/deposit.py +0 -0
  112. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/login.py +0 -0
  113. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/api/records.py +0 -0
  114. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/catalog.py +0 -0
  115. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/creators.py +0 -0
  116. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/simannex.py +0 -0
  117. {sxs-2025.0.1 → sxs-2025.0.2}/sxs/zenodo/surrogatemodeling.py +0 -0
  118. {sxs-2025.0.1 → sxs-2025.0.2}/tests/__init__.py +0 -0
  119. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_catalog.py +0 -0
  120. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_horizons.py +0 -0
  121. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_julia.py +0 -0
  122. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_loader.py +0 -0
  123. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_metadata.py +0 -0
  124. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_simulation.py +0 -0
  125. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_time_series.py +0 -0
  126. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_transformations.py +0 -0
  127. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_utilities.py +0 -0
  128. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_waveform_rotations.py +0 -0
  129. {sxs-2025.0.1 → sxs-2025.0.2}/tests/test_waveforms.py +0 -0
@@ -47,7 +47,7 @@ jobs:
47
47
  if: ${{ env.skipping_build_and_test_replicate != 'true' }}
48
48
  uses: actions/cache@v4
49
49
  with:
50
- key: sxs-${{ runner.os }}-1 # Increment this number whenever the cached files should change
50
+ key: sxs-${{ runner.os }}-2 # Increment this number whenever the cached files should change
51
51
  path: |
52
52
  ${{ runner.os == 'Linux' && '/home/runner/.cache/sxs' || runner.os == 'Windows' && 'C:\Users\runneradmin\.sxs\cache' || '/Users/runner/.sxs/cache' }}
53
53
 
@@ -10,5 +10,5 @@ authors:
10
10
  title: "The sxs package"
11
11
  license: MIT
12
12
  doi: 10.5281/zenodo.4034006
13
- version: 2025.0.1
14
- date-released: 2025-03-19
13
+ version: 2025.0.2
14
+ date-released: 2025-03-26
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sxs
3
- Version: 2025.0.1
3
+ Version: 2025.0.2
4
4
  Summary: Interface to data produced by the Simulating eXtreme Spacetimes collaboration
5
5
  Project-URL: Homepage, https://github.com/sxs-collaboration/sxs
6
6
  Project-URL: Documentation, https://sxs.readthedocs.io/
@@ -46,7 +46,7 @@ Requires-Dist: quaternionic>=1.0.15
46
46
  Requires-Dist: requests>=2.24.0
47
47
  Requires-Dist: scipy>=1.13
48
48
  Requires-Dist: spherical>=1.0.15
49
- Requires-Dist: sxscatalog>=3.0.0a1
49
+ Requires-Dist: sxscatalog>=3.0.0a26
50
50
  Requires-Dist: tqdm>=4.63.1
51
51
  Requires-Dist: urllib3>=1.25.10
52
52
  Provides-Extra: docs
@@ -18,7 +18,7 @@ classifiers = [
18
18
  "Topic :: Scientific/Engineering :: Astronomy"
19
19
  ]
20
20
  dependencies = [
21
- "sxscatalog >=3.0.0a1",
21
+ "sxscatalog >=3.0.0a26",
22
22
  "numpy >=1.25",
23
23
  "scipy >=1.13",
24
24
  "numba >=0.55; implementation_name == 'cpython'",
@@ -73,6 +73,7 @@ path = "sxs/__version__.py"
73
73
 
74
74
  [tool.hatch.envs.default]
75
75
  dependencies = [
76
+ "ipython",
76
77
  "pytest",
77
78
  "pytest-cov",
78
79
  "pytest-forked >=1.3.0",
@@ -0,0 +1 @@
1
+ __version__ = "2025.0.2"
@@ -237,7 +237,7 @@ def load(location, download=None, cache=None, progress=None, truepath=None, **kw
237
237
  import pathlib
238
238
  import urllib.request
239
239
  from . import Simulations, Simulation, read_config, sxs_directory, Catalog
240
- from .utilities import url, download_file, sxs_path_to_system_path, sxs_id_version_lev_exact_re, lev_path_re
240
+ from .utilities import url, download_file, sxs_path_to_system_path, sxs_id_version_lev_exact_re, lev_path_re, sxs_identifier_re
241
241
 
242
242
  # Note: `download` and/or `cache` may still be `None` after this
243
243
  if download is None:
@@ -294,11 +294,30 @@ def load(location, download=None, cache=None, progress=None, truepath=None, **kw
294
294
  local=kwargs.get("local", False),
295
295
  annex_dir=kwargs.get("annex_dir", None)
296
296
  )
297
+ # If we chop off any "/LevN", and it's in the simulations, load it as a simulation
297
298
  if lev_path_re.sub("", location) in simulations:
298
299
  return Simulation(
299
300
  location, download=download, cache=cache, progress=progress, **kwargs
300
301
  )
301
302
 
303
+ # Now we look for a file in `simulations`
304
+ if sxs_identifier_re.match(location):
305
+ split_location = sxs_identifier_re.split(location)
306
+ # Currently we can only handle unversioned SXS ID files
307
+ if split_location[5] is None:
308
+ sxs_id = split_location[1]
309
+ file = split_location[-1].lstrip("/").lstrip("\\")
310
+ if sxs_id in simulations:
311
+ simulation = simulations[sxs_id]
312
+ if "files" in simulation:
313
+ file_info = simulation["files"][file]
314
+ location = file_info["link"]
315
+ truepath = truepath or (pathlib.Path(sxs_id) / file)
316
+ return load(
317
+ location, truepath=truepath,
318
+ download=download, cache=cache, progress=progress, **kwargs
319
+ )
320
+
302
321
  # Try to find an appropriate SXS file in the catalog
303
322
  catalog = Catalog.load(download=download)
304
323
  selections = catalog.select_files(location)
@@ -36,11 +36,12 @@ def to_lvc_conventions(
36
36
  ):
37
37
  r"""Return SXS waveform in LVC conventions.
38
38
 
39
- This is the function underpinning `sxs.load_lvc`. Essentially,
40
- that function is a fairly thin wrapper around this one; it just
41
- loads the `h` and `horizons` data and passes it to this function.
42
- For explanation of what this function does, the inputs, and
43
- outputs, see that function's docstring.
39
+ This is the function underpinning the `to_lvk` method of the
40
+ various `Simulation` types. Essentially, that function is a
41
+ fairly thin wrapper around this one; it just loads the `h` and
42
+ `horizons` data and passes it to this function. For explanation
43
+ of what this function does, the inputs, and outputs, see that
44
+ function's docstring.
44
45
 
45
46
  """
46
47
  if t_ref is None and f_ref is None:
@@ -413,6 +413,12 @@ def load(
413
413
  raise ValueError(message)
414
414
 
415
415
  file_name_str = str(file_name)
416
+ if file_name_str.endswith(".json"):
417
+ # This is just a JSON file with the "sxs_format" key, not an H5 file
418
+ # with the data in it. Just return the JSON data.
419
+ from ...handlers import JSONHandler
420
+ return JSONHandler.load(file_name_str)
421
+
416
422
  group = kwargs.get("group", None)
417
423
  if ".h5" in file_name_str and not file_name_str.endswith(".h5"):
418
424
  file_name_str, group = file_name_str.split(".h5")
@@ -29,7 +29,7 @@ GITHUB_ACTIONS_MACOS = (
29
29
  # will work adequately. Note that if macos tests are failing, it may be
30
30
  # time to increment the cache version number in .github/workflows/build.yml;
31
31
  # try that before re-enabling this decorator.
32
- if False: # GITHUB_ACTIONS_MACOS:
32
+ if GITHUB_ACTIONS_MACOS:
33
33
  skip_macOS_GH_actions_downloads = pytest.mark.skip(
34
34
  reason="macOS runners on GitHub Actions have connectivity problems"
35
35
  )
@@ -1 +0,0 @@
1
- __version__ = "2025.0.1"
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes