sxs 2025.0.15__tar.gz → 2025.0.17__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.
- {sxs-2025.0.15 → sxs-2025.0.17}/CITATION.cff +2 -2
- {sxs-2025.0.15 → sxs-2025.0.17}/PKG-INFO +9 -1
- {sxs-2025.0.15 → sxs-2025.0.17}/README.md +8 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/tutorials/00-Introduction.ipynb +5 -5
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/tutorials/01-Catalog_Dataframe.ipynb +1 -1
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/tutorials/02-Simulation.ipynb +2 -2
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/tutorials/03-Horizons.ipynb +1 -1
- {sxs-2025.0.15 → sxs-2025.0.17}/mkdocs.yml +1 -0
- sxs-2025.0.17/mkdocs_preprocess.py +33 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/pyproject.toml +3 -0
- sxs-2025.0.17/sxs/__version__.py +1 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/simulations/simulation.py +2 -1
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py +3 -4
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_simulation.py +28 -1
- sxs-2025.0.15/sxs/__version__.py +0 -1
- {sxs-2025.0.15 → sxs-2025.0.17}/.codecov.yml +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.github/ISSUE_TEMPLATE/catalog-data-issue-template.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.github/dependabot.yml +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.github/scripts/parse_bump_rule.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.github/workflows/build.yml +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.github/workflows/pr_rtd_link.yml +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.gitignore +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/.readthedocs.yaml +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/LICENSE +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/catalog.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/cite.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/horizons.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/load.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/metadata.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/simulation.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/simulations.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/time_series.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/api/waveforms.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/html/main.html +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/images/favicon.ico +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/index.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/javascript/mathjax.js +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/julia.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/mathematica.md +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/stylesheets/extra.css +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/tutorials/04-Waveforms.ipynb +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/docs/tutorials/05-PreprocessingForFFTs.ipynb +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/catalog/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/catalog/catalog.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/catalog/create.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/catalog/description.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/citation.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/handlers.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/horizons/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/horizons/spec_horizons_h5.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/horizons/xor_multishuffle_bzip2.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/julia/GWFrames.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/julia/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/juliapkg.json +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/metadata/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/metadata/metadata.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/metadata/metric.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/simulations/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/simulations/analyze.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/simulations/local.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/simulations/simulations.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/time_series.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/bitwise.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/decimation/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/decimation/greedy_spline.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/decimation/linear_bisection.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/decimation/peak_greed.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/decimation/suppression.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/dicts.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/downloads.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/files.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/formats.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/inspire.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/comparisons.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/conversion.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/dataset.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/horizons.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/metadata.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/waveform_amp_phase.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/lvcnr/waveforms.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/monotonicity.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/pretty_print.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/ads.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/arxiv.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/fairchild_report.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/inspire.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/journal_abbreviations.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/references/references.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/select.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/smooth_functions.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/string_converters.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/sxs_directories.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/sxs_identifiers.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/utilities/url.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/alignment.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/grathena.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/lvc.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/nrar.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/format_handlers/spectre_cce_v1.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/memory.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/mode_utilities.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/norms.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/transformations.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/waveform_grid.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/waveform_mixin.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/waveform_modes.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/waveform_mts.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/waveforms/waveform_signal.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/api/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/api/deposit.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/api/login.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/api/records.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/catalog.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/creators.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/simannex.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/sxs/zenodo/surrogatemodeling.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/__init__.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/conftest.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_alignment.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_catalog.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_horizons.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_julia.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_loader.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_metadata.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_time_series.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_transformations.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_utilities.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_waveform_rotations.py +0 -0
- {sxs-2025.0.15 → sxs-2025.0.17}/tests/test_waveforms.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sxs
|
|
3
|
-
Version: 2025.0.
|
|
3
|
+
Version: 2025.0.17
|
|
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/
|
|
@@ -83,6 +83,14 @@ Description-Content-Type: text/markdown
|
|
|
83
83
|
|
|
84
84
|
# Simulating eXtreme Spacetimes package
|
|
85
85
|
|
|
86
|
+
> [!NOTE]
|
|
87
|
+
> As described in our [latest paper](https://arxiv.org/abs/2505.13378), our
|
|
88
|
+
> waveforms now include memory effects. Specifically, when using any
|
|
89
|
+
> simulation with version 3 or greater, you should expect to see memory effects,
|
|
90
|
+
> most visible in the $(\ell, 0)$ modes, and generally resulting in ringdowns
|
|
91
|
+
> that do not approach 0 at late times.
|
|
92
|
+
|
|
93
|
+
|
|
86
94
|
The `sxs` python package provides a high-level interface for using data
|
|
87
95
|
produced by the SXS collaboration. In particular, the function `sxs.load` can
|
|
88
96
|
automatically find, download, and load data, returning objects that provide
|
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
# Simulating eXtreme Spacetimes package
|
|
10
10
|
|
|
11
|
+
> [!NOTE]
|
|
12
|
+
> As described in our [latest paper](https://arxiv.org/abs/2505.13378), our
|
|
13
|
+
> waveforms now include memory effects. Specifically, when using any
|
|
14
|
+
> simulation with version 3 or greater, you should expect to see memory effects,
|
|
15
|
+
> most visible in the $(\ell, 0)$ modes, and generally resulting in ringdowns
|
|
16
|
+
> that do not approach 0 at late times.
|
|
17
|
+
|
|
18
|
+
|
|
11
19
|
The `sxs` python package provides a high-level interface for using data
|
|
12
20
|
produced by the SXS collaboration. In particular, the function `sxs.load` can
|
|
13
21
|
automatically find, download, and load data, returning objects that provide
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"source": [
|
|
7
7
|
"# Introduction\n",
|
|
8
8
|
"\n",
|
|
9
|
-
"This series of notebooks describes the `sxs` python package, which provides an interface to the data produced by the Simulating eXtreme Spacetimes collaboration. All that data is hosted on [Zenodo](https://zenodo.org/communities/sxs) and [CaltechDATA](https://data.caltech.edu/). Each simulation gets its own DOI and its own web page — like [
|
|
9
|
+
"This series of notebooks describes the `sxs` python package, which provides an interface to the data produced by the Simulating eXtreme Spacetimes collaboration. All that data is hosted on [Zenodo](https://zenodo.org/communities/sxs) and [CaltechDATA](https://data.caltech.edu/). Each simulation gets its own DOI and its own web page — like [DOI 10.26138/SXS:BBH:4001](https://doi.org/10.26138/SXS:BBH:4001), for example, which redirects to its CaltechDATA page. But you want an easier way to get the data than clicking on links. This package will do that for you.\n",
|
|
10
10
|
"\n",
|
|
11
11
|
"The documentation is [here](https://sxs.readthedocs.io/en/main/). The github page is [here](https://github.com/sxs-collaboration/sxs/). Please feel free to open issues to report problems, or pull requests to fix them."
|
|
12
12
|
]
|
|
@@ -251,10 +251,10 @@
|
|
|
251
251
|
"\n",
|
|
252
252
|
"It is probably best to go through these notebooks in order:\n",
|
|
253
253
|
"\n",
|
|
254
|
-
" 1. [The catalog `DataFrame` interface](
|
|
255
|
-
" 2. [The `Simulation` interface](
|
|
256
|
-
" 3. [Data describing `Horizons`](
|
|
257
|
-
" 4. [Introduction to `WaveformModes` objects](
|
|
254
|
+
" 1. [The catalog `DataFrame` interface](../01-Catalog_Dataframe)\n",
|
|
255
|
+
" 2. [The `Simulation` interface](../02-Simulation)\n",
|
|
256
|
+
" 3. [Data describing `Horizons`](../03-Horizons)\n",
|
|
257
|
+
" 4. [Introduction to `WaveformModes` objects](../04-Waveforms)"
|
|
258
258
|
]
|
|
259
259
|
}
|
|
260
260
|
],
|
|
@@ -3345,7 +3345,7 @@
|
|
|
3345
3345
|
"source": [
|
|
3346
3346
|
"The `simulations` object, especially when agumented with the `dataframe`, provides powerful methods for selecting the particular simulations we are interested in. Once we have done so, we need to load and interact with the simulations.\n",
|
|
3347
3347
|
"\n",
|
|
3348
|
-
"Continue with the [introduction to the `Simulation` objects](
|
|
3348
|
+
"Continue with the [introduction to the `Simulation` objects](../02-Simulation)."
|
|
3349
3349
|
]
|
|
3350
3350
|
}
|
|
3351
3351
|
],
|
|
@@ -664,8 +664,8 @@
|
|
|
664
664
|
"source": [
|
|
665
665
|
"The objects returned will be the subject of the next two notebooks in this series:\n",
|
|
666
666
|
"\n",
|
|
667
|
-
"- [`Horizons`](
|
|
668
|
-
"- [`WaveformModes`](
|
|
667
|
+
"- [`Horizons`](../03-Horizons)\n",
|
|
668
|
+
"- [`WaveformModes`](../04-Waveforms)"
|
|
669
669
|
]
|
|
670
670
|
}
|
|
671
671
|
],
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import re
|
|
2
|
+
import difflib
|
|
3
|
+
from mkdocs.plugins import BasePlugin
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class AdmonitionTranslationPlugin(BasePlugin):
|
|
7
|
+
"""
|
|
8
|
+
Convert GitHub-flavored admonitions to MkDocs numpy-style admonitions.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
def on_page_markdown(self, markdown, page, config, files):
|
|
12
|
+
lines = markdown.splitlines(keepends=True)
|
|
13
|
+
out = []
|
|
14
|
+
i = 0
|
|
15
|
+
while i < len(lines):
|
|
16
|
+
m = re.match(r'> \[\!(?P<tag>\w+)\]\s*$', lines[i])
|
|
17
|
+
if m:
|
|
18
|
+
tag = m.group('tag').lower()
|
|
19
|
+
# emit the MkDocs admonition start
|
|
20
|
+
out.append(f"!!! {tag}\n")
|
|
21
|
+
i += 1
|
|
22
|
+
# consume all the > … lines as the body
|
|
23
|
+
while i < len(lines) and lines[i].startswith('>'):
|
|
24
|
+
# strip leading "> " (or just ">") and rstrip newline
|
|
25
|
+
body = lines[i].lstrip('> ').rstrip('\n')
|
|
26
|
+
out.append(f" {body}\n")
|
|
27
|
+
i += 1
|
|
28
|
+
continue
|
|
29
|
+
# otherwise, copy line verbatim
|
|
30
|
+
out.append(lines[i])
|
|
31
|
+
i += 1
|
|
32
|
+
|
|
33
|
+
return "".join(out)
|
|
@@ -64,6 +64,9 @@ ecosystem = [
|
|
|
64
64
|
Homepage = "https://github.com/sxs-collaboration/sxs"
|
|
65
65
|
Documentation = "https://sxs.readthedocs.io/"
|
|
66
66
|
|
|
67
|
+
[project.entry-points."mkdocs.plugins"]
|
|
68
|
+
admonitions_translation = "mkdocs_preprocess:AdmonitionTranslationPlugin"
|
|
69
|
+
|
|
67
70
|
|
|
68
71
|
[build-system]
|
|
69
72
|
requires = ["hatchling"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2025.0.17"
|
|
@@ -782,6 +782,7 @@ class SimulationBase:
|
|
|
782
782
|
strain = self.load_waveform(
|
|
783
783
|
*self.strain_path,
|
|
784
784
|
transform_to_inertial=False,
|
|
785
|
+
drop_times_before=kwargs.pop("drop_times_before", 0)
|
|
785
786
|
)
|
|
786
787
|
return to_lvc_conventions(strain, self.horizons, **kwargs)
|
|
787
788
|
|
|
@@ -933,7 +934,7 @@ class Simulation_v2(SimulationBase):
|
|
|
933
934
|
download_file(json_location, json_truepath)
|
|
934
935
|
return load(
|
|
935
936
|
h5_location, truepath=h5_truepath, group=group, metadata=self.metadata,
|
|
936
|
-
transform_to_inertial=transform_to_inertial
|
|
937
|
+
transform_to_inertial=transform_to_inertial, drop_times_before=0,
|
|
937
938
|
)
|
|
938
939
|
|
|
939
940
|
|
|
@@ -387,9 +387,8 @@ def load(
|
|
|
387
387
|
a string is given, the corresponding time will be used. The
|
|
388
388
|
"begin" option represents the earliest time in the data, so no
|
|
389
389
|
data will be dropped; "reference" is the `reference_time`
|
|
390
|
-
reported in the metadata. If
|
|
391
|
-
|
|
392
|
-
otherwise.
|
|
390
|
+
reported in the metadata. If no argument is given, all times
|
|
391
|
+
will be used ("begin").
|
|
393
392
|
metadata : Metadata, optional
|
|
394
393
|
If given, this metadata will be used instead of attempting to
|
|
395
394
|
load the metadata from an accompanying file.
|
|
@@ -582,7 +581,7 @@ def load(
|
|
|
582
581
|
except ValueError as e:
|
|
583
582
|
invalid(f"\n{e},\nbut one is expected for this data format.")
|
|
584
583
|
|
|
585
|
-
dtb = kwargs.pop("drop_times_before",
|
|
584
|
+
dtb = kwargs.pop("drop_times_before", "begin")
|
|
586
585
|
if dtb=="begin":
|
|
587
586
|
i0 = 0
|
|
588
587
|
elif dtb==0:
|
|
@@ -36,6 +36,7 @@ def test_sxs_load_v2():
|
|
|
36
36
|
s.Horizons
|
|
37
37
|
s.psi4
|
|
38
38
|
s.Psi4
|
|
39
|
+
assert s.h.t[0] >= 0
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
@skip_macOS_GH_actions_downloads
|
|
@@ -63,6 +64,7 @@ def test_sxs_load_v2_levs():
|
|
|
63
64
|
s.Strain
|
|
64
65
|
s.horizons
|
|
65
66
|
s.Horizons
|
|
67
|
+
assert s.h.t[0] >= 0
|
|
66
68
|
|
|
67
69
|
|
|
68
70
|
@skip_macOS_GH_actions_downloads
|
|
@@ -81,6 +83,7 @@ def test_sxs_load_v3():
|
|
|
81
83
|
s.Horizons
|
|
82
84
|
s.psi4
|
|
83
85
|
s.Psi4
|
|
86
|
+
assert s.h.t[0] >= 0
|
|
84
87
|
|
|
85
88
|
|
|
86
89
|
@skip_macOS_GH_actions_downloads
|
|
@@ -108,6 +111,7 @@ def test_sxs_load_v3_levs():
|
|
|
108
111
|
s.Strain
|
|
109
112
|
s.horizons
|
|
110
113
|
s.Horizons
|
|
114
|
+
assert s.h.t[0] >= 0
|
|
111
115
|
# Check that Lev-1 and Lev0 work and are not the same as the highest Lev
|
|
112
116
|
s = sxs.load(f"SXS:BBH:1132v3.0", ignore_deprecation=True)
|
|
113
117
|
sm1 = sxs.load(f"SXS:BBH:1132v3.0/Lev-1", ignore_deprecation=True)
|
|
@@ -144,6 +148,7 @@ def test_sxs_load_v3_catalog():
|
|
|
144
148
|
# at each Lev with each extrapolation order, but doesn't download
|
|
145
149
|
# any data
|
|
146
150
|
from pathlib import Path
|
|
151
|
+
from tqdm.auto import tqdm
|
|
147
152
|
|
|
148
153
|
def fake_load_metadata(self):
|
|
149
154
|
metadata_path = self.metadata_path
|
|
@@ -186,7 +191,7 @@ def test_sxs_load_v3_catalog():
|
|
|
186
191
|
simulations = sxs.load("simulations")
|
|
187
192
|
|
|
188
193
|
success = True
|
|
189
|
-
for sxs_id, metadata in simulations.items():
|
|
194
|
+
for sxs_id, metadata in tqdm(simulations.items()):
|
|
190
195
|
if "NSNS" in sxs_id or "BHNS" in sxs_id:
|
|
191
196
|
continue
|
|
192
197
|
|
|
@@ -263,3 +268,25 @@ def test_superseding(loader):
|
|
|
263
268
|
# Version, ignore_deprecation, auto_supersede
|
|
264
269
|
s = loader(f"{simulation}v2.0", ignore_deprecation=True, auto_supersede=True)
|
|
265
270
|
assert s.sxs_id_stem == simulation
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
def test_issue_116():
|
|
274
|
+
import tempfile
|
|
275
|
+
import contextlib
|
|
276
|
+
# Test that loading the strain as a user normally would drops
|
|
277
|
+
# times before 0
|
|
278
|
+
h = sxs.load("SXS:BBH:4000v3.0").h
|
|
279
|
+
assert h.t[0] >= 0
|
|
280
|
+
# Test that loading that same file directly *keeps* times before 0
|
|
281
|
+
h2 = sxs.load(h.__file__, metadata={})
|
|
282
|
+
assert h2.t[0] < 0
|
|
283
|
+
# Test that manually changing the time array and round-tripping
|
|
284
|
+
# through RPDMB preserves times
|
|
285
|
+
h3 = h.copy()
|
|
286
|
+
h3.t -= h3.max_norm_time()
|
|
287
|
+
with tempfile.TemporaryDirectory() as temp_dir:
|
|
288
|
+
with contextlib.redirect_stdout(None):
|
|
289
|
+
sxs.rpdmb.save(h3, f"{temp_dir}/test")
|
|
290
|
+
h4 = sxs.load(f"{temp_dir}/test", metadata={})
|
|
291
|
+
assert h4.t.size == h3.t.size == h.t.size
|
|
292
|
+
assert h4.t[0] == h3.t[0]
|
sxs-2025.0.15/sxs/__version__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2025.0.15"
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|