sxs 2025.0.16__py3-none-any.whl → 2025.0.18__py3-none-any.whl

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/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "2025.0.16"
1
+ __version__ = "2025.0.18"
sxs/catalog/catalog.py CHANGED
@@ -6,7 +6,7 @@ import functools
6
6
  # noinspection SpellCheckingInspection
7
7
  class Catalog(object):
8
8
  """Container interface to the SXS catalog"""
9
- url = "https://data.black-holes.org/catalog.json"
9
+ url = "https://data.black-holes.org/catalog.zip"
10
10
 
11
11
  def __init__(self, catalog=None, **kwargs):
12
12
  from .. import Metadata
@@ -60,6 +60,9 @@ class Catalog(object):
60
60
  which, as of `sxs` version 2024.0.0, has been deprecated in
61
61
  favor of the `Simulations` interface. See the documentation
62
62
  for more information.
63
+
64
+ THIS CAN ONLY PROVIDE OLD DATA!
65
+
63
66
  """
64
67
  warn(deprecation_notice)
65
68
 
@@ -73,36 +76,12 @@ class Catalog(object):
73
76
  if_newer = False
74
77
 
75
78
  if download or download is None:
76
- # 1. Download the full json file (zipped in flight, but auto-decompressed on arrival)
77
- # 2. Zip to a temporary file (using bzip2, which is better than the in-flight compression)
78
- # 3. Replace the original catalog.zip with the temporary zip file
79
- # 4. Remove the full json file
80
- # 5. Make sure the temporary zip file is gone too
81
- temp_json = cache_path.with_suffix(".temp.json")
82
- temp_zip = cache_path.with_suffix(".temp.zip")
83
79
  try:
84
- try:
85
- download_file(cls.url, temp_json, progress=progress, if_newer=if_newer)
86
- except Exception as e:
87
- if download:
88
- raise RuntimeError(f"Failed to download '{cls.url}'; try setting `download=False`") from e
89
- download_failed = e # We'll try the cache
90
- else:
91
- download_failed = False
92
- if temp_json.exists():
93
- with zipfile.ZipFile(temp_zip, "w", compression=zipfile.ZIP_BZIP2) as catalog_zip:
94
- catalog_zip.write(temp_json, arcname="catalog.json")
95
- temp_zip.replace(cache_path)
96
- finally:
97
- # The `missing_ok` argument to `unlink` would be much nicer, but was added in python 3.8
98
- try:
99
- temp_json.unlink()
100
- except FileNotFoundError as e:
101
- pass
102
- try:
103
- temp_zip.unlink()
104
- except FileNotFoundError as e:
105
- pass
80
+ download_file(cls.url, cache_path, progress=progress, if_newer=if_newer)
81
+ except Exception as e:
82
+ if download:
83
+ raise RuntimeError(f"Failed to download '{cls.url}'; try setting `download=False`") from e
84
+ download_failed = e # We'll try the cache
106
85
 
107
86
  if not cache_path.exists():
108
87
  if download is False: # Test if it literally *is* False, rather than just casts to False
@@ -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 `None`, the default, t=0 will be
391
- used if present in the data, and the first time step
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", 0)
584
+ dtb = kwargs.pop("drop_times_before", "begin")
586
585
  if dtb=="begin":
587
586
  i0 = 0
588
587
  elif dtb==0:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sxs
3
- Version: 2025.0.16
3
+ Version: 2025.0.18
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
@@ -1,11 +1,11 @@
1
1
  sxs/__init__.py,sha256=C8VhmrUPAa70Y-C2KfZv9BhS6ef-eB7uaNtwm18IRhk,2637
2
- sxs/__version__.py,sha256=xCVYVWrP49sS05Knu6LBHhTBlrCM-7hIvBCvunxySHA,26
2
+ sxs/__version__.py,sha256=Zp8-5A0uO7ej2Pvo61c5zj8bbXO39g6v_i7hfxUerOA,26
3
3
  sxs/citation.py,sha256=QAiRnasTXpufZCaoxTKR5ESSJQ2ww7FgWyxoaaAQifw,7167
4
4
  sxs/handlers.py,sha256=rUS0TmbewpllnZHkS5TXCx6nxGA-E8xrBGLlejBPEAg,18820
5
5
  sxs/juliapkg.json,sha256=-baaa3Za_KBmmiGjlh2YYLWmvUvZl6GaKKXwNI4S7qU,178
6
6
  sxs/time_series.py,sha256=OKaLg8tFyrtKcef7900ri-a0C6A8wKxA68KovZXvH6I,41081
7
7
  sxs/catalog/__init__.py,sha256=9-WTMTPDmqqkFyIHOtEbPA6etXm3_RSRrLWvHtLrjLg,205
8
- sxs/catalog/catalog.py,sha256=3sUNREH-eyNwtjBVW9MKih_B6hHooPj_I1OYxP_adao,26804
8
+ sxs/catalog/catalog.py,sha256=R2tO7kpIqBgobvk9tDsvHTYNTH432dlWDrMiBL5g8Nk,25562
9
9
  sxs/catalog/create.py,sha256=KL3zHljdLADeLfTDMTSkcVjIFim92Ylc-ziEvpiflEU,4734
10
10
  sxs/catalog/description.py,sha256=4eHMde4oGNp69jRmXCsfrIYJ4WK5HYgYFgXyF5htLDM,10830
11
11
  sxs/horizons/__init__.py,sha256=f7Zfkj9-r-4IOa-LFuqvChxLDMz6nNiAjsjXCG_uWw0,19194
@@ -19,7 +19,7 @@ sxs/metadata/metric.py,sha256=Tsig1Jm50OO8r89zfjCuQ4i3JAoiazSb4J9qYtPWKgM,41
19
19
  sxs/simulations/__init__.py,sha256=eXkheYhRaYyKjul5J1IXpoJ7Wq4nr3Tgwr-HSS3BTek,156
20
20
  sxs/simulations/analyze.py,sha256=YwX0i_GRATRpvp7T8VheShkclvqYsraGDDKEkJQxJnw,11530
21
21
  sxs/simulations/local.py,sha256=e77SeaWMl2PWX_EndQtShOXZxcFKhQsUDQ55R2Njcuc,43
22
- sxs/simulations/simulation.py,sha256=vTqroGL4QVOl0wFcOve69ScSNRJn4bWAuJtA_hg1PAw,43673
22
+ sxs/simulations/simulation.py,sha256=A4gE0KGFU6hgE6hR0BCrRqDyrN_4A7MnKIyEYfFn_Rs,43760
23
23
  sxs/simulations/simulations.py,sha256=sMle89VoD1CQni1N23Vjo3h2yj9LHHAtuaB_qfD3Wgg,109
24
24
  sxs/utilities/__init__.py,sha256=WSStlqljfgQheMxHGfuofSc5LdmASGvO3FNO3f_zaT0,4806
25
25
  sxs/utilities/bitwise.py,sha256=G9ZNYgwDQRhq5wbDf-p2HcUqkEP_IRDiQoXW4KyU17k,13205
@@ -71,7 +71,7 @@ sxs/waveforms/format_handlers/__init__.py,sha256=0wsnuBYCYsCkN19L2ipga7BtigvPyBc
71
71
  sxs/waveforms/format_handlers/grathena.py,sha256=5NrHL3K0mRHApnFx5YsMUufDKUD1A_dZu8mGQqOdBeE,3622
72
72
  sxs/waveforms/format_handlers/lvc.py,sha256=bGAB2k1vXIloA25dUKu4ZUJde5Y4CHrjkPXtQ93aw7w,8006
73
73
  sxs/waveforms/format_handlers/nrar.py,sha256=3ycVoqQcWAAixV3mKp58_wUhYBHt6QeLv2YGSvy-EGM,21538
74
- sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py,sha256=7XgXnroQ-3dHCYnN6KrDkz8z9EVl57f8W6iOX6bUemA,27745
74
+ sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py,sha256=jTUn487h32wUdXmKFIzUoU5yPj-fxSdzR9OV5f52zRc,27702
75
75
  sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py,sha256=pFEJIlb6OQQNhv6r48ALFnZMKNZjuQY55ydWBADCDgU,2348
76
76
  sxs/waveforms/format_handlers/spectre_cce_v1.py,sha256=nh57zbG_uWJZQVhMrz7H05fpsjl1X6oaita8aTRcWxU,3963
77
77
  sxs/zenodo/__init__.py,sha256=rgFd1jN7IVcZEeed7iAoht1DitbLj31-8EtA0pd_e3c,25996
@@ -83,7 +83,8 @@ sxs/zenodo/api/__init__.py,sha256=EM_eh4Q8R5E0vIfMhyIR1IYFfOBu6vA0UTasgX9gHys,21
83
83
  sxs/zenodo/api/deposit.py,sha256=J4RGvGjh0cEOrN4bBZWEDcPAhNscqB2fzLlvRZ5HTHM,36948
84
84
  sxs/zenodo/api/login.py,sha256=hXyxLrx1PALaEEH76XrBvlO5Wwz-qa-MCjkI8UyB3t0,18005
85
85
  sxs/zenodo/api/records.py,sha256=nKkhoHZ95CTztHF9Zzaug5p7IiUCJG4Em1i-l-WqH6U,3689
86
- sxs-2025.0.16.dist-info/METADATA,sha256=A-DbdcADvHCuL5mIbKoA2NU3FDv_xaF3qU1yewLPiXs,12857
87
- sxs-2025.0.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
- sxs-2025.0.16.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
89
- sxs-2025.0.16.dist-info/RECORD,,
86
+ sxs-2025.0.18.dist-info/METADATA,sha256=BpOnDzYH5t6ge6s_RpYnTVUq8qBjOmMWEZ4KPPIlYH4,13214
87
+ sxs-2025.0.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
88
+ sxs-2025.0.18.dist-info/entry_points.txt,sha256=51VqSnJT5UOMI4RilR9giG9DNrIDgnsSkuNuYldEnTs,89
89
+ sxs-2025.0.18.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
90
+ sxs-2025.0.18.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [mkdocs.plugins]
2
+ admonitions_translation = mkdocs_preprocess:AdmonitionTranslationPlugin