sxs 2024.0.4__py3-none-any.whl → 2024.0.6__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__ = "2024.0.4"
1
+ __version__ = "2024.0.6"
sxs/horizons/__init__.py CHANGED
@@ -379,6 +379,30 @@ class Horizons(object):
379
379
 
380
380
  nhat = n̂
381
381
 
382
+ @property
383
+ def λ⃗(self):
384
+ """Time-derivative of separation vector
385
+
386
+ This function can be spelled `λ⃗` or `lambdavec`, interchangeably.
387
+
388
+ Returns
389
+ -------
390
+ λ⃗ : ndarray
391
+ This has shape (self.A.n_times, 3), representing the components of the
392
+ vector as a function of time.
393
+
394
+ See Also
395
+ --------
396
+ n⃗, nvec, separation : (Non-normalized) separation vector between two horizons
397
+ n̂, nhat : Normalized separation vector
398
+ λ̂, lambdahat : Normalized version of this vector
399
+ ℓ̂, ellhat : Normalized angular-velocity vector
400
+
401
+ """
402
+ return self.n⃗.dot
403
+
404
+ lambdavec = λ⃗
405
+
382
406
  @property
383
407
  def λ̂(self):
384
408
  """Time-derivative of normalized separation vector
@@ -403,7 +427,7 @@ class Horizons(object):
403
427
  post-Newtonian theory and similar treatments.
404
428
 
405
429
  """
406
- λ⃗ = self.n̂.dot
430
+ λ⃗ = self.λ⃗
407
431
  return λ⃗ / np.linalg.norm(λ⃗, axis=1)[:, np.newaxis]
408
432
 
409
433
  lambdahat = λ̂
@@ -435,3 +459,74 @@ class Horizons(object):
435
459
  return TimeSeries(np.cross(self.n̂, self.λ̂), time=self.n̂.time)
436
460
 
437
461
  ellhat = ℓ̂
462
+
463
+ @property
464
+ def R(self):
465
+ """Frame Rotor taking (x̂, ŷ, ẑ) onto (n̂, λ̂, ℓ̂) at each instant
466
+
467
+ For example, if λ̂ᵢ is the value of λ̂ at time tᵢ, and Rᵢ the
468
+ corresponding output from this function, then we have
469
+
470
+ λ̂ᵢ = Rᵢ * quaternionic.y / Rᵢ
471
+
472
+ Returns
473
+ -------
474
+ R : quaternionic.array
475
+ This has shape (self.A.n_times, 4), representing the rotor
476
+ at each time. Note that this is *not* a TimeSeries
477
+ object, as is returned by several other functions in this
478
+ class. However, the corresponding times are available as
479
+ `R.time`.
480
+ """
481
+ import numpy as np
482
+ import quaternionic
483
+ reference_frame = np.array([quaternionic.x.vector, quaternionic.y.vector, quaternionic.z.vector])
484
+ target_frame = np.array([self.n̂, self.λ̂, self.ℓ̂])
485
+ R = quaternionic.array([
486
+ quaternionic.align(
487
+ target_frame[:, i, :],
488
+ reference_frame
489
+ )
490
+ for i in range(target_frame.shape[1])
491
+ ])
492
+ quaternionic.unflip_rotors(R, inplace=True)
493
+ R.time = self.A.time
494
+ return R
495
+
496
+ @property
497
+ def Ω⃗(self):
498
+ """Angular velocity vector of the binary
499
+
500
+ This function can be spelled `Ω⃗`, `ω⃗`, `OmegaVec`, or
501
+ `omegaVec`, interchangeably.
502
+
503
+ Returns
504
+ -------
505
+ Ω⃗ : TimeSeries
506
+ This represents the angular velocity as a function of time.
507
+ """
508
+ R = self.R
509
+ return TimeSeries(R.to_angular_velocity(R.time), time=R.time)
510
+
511
+ ω⃗ = Ω⃗
512
+ OmegaVec = Ω⃗
513
+ omegaVec = Ω⃗
514
+
515
+ @property
516
+ def Ω(self):
517
+ """Magnitude of the angular velocity of the binary
518
+
519
+ This function can be spelled `Ω`, `ω`, `Omega`, or `omega`,
520
+ interchangeably.
521
+
522
+ Returns
523
+ -------
524
+ Ω : TimeSeries
525
+ This represents the magnitude of the angular velocity as a
526
+ function of time.
527
+ """
528
+ return TimeSeries(np.linalg.norm(self.Ω⃗, axis=1), time=self.A.time)
529
+
530
+ ω = Ω
531
+ Omega = Ω
532
+ omega = Ω
@@ -74,6 +74,14 @@ def Simulation(location, *args, **kwargs):
74
74
  polynomials in 1/r with degree `x`, while "Outer" refers to
75
75
  data extracted at the outermost extraction radius but
76
76
  corrected for time-dilation and areal-radius effects.
77
+ download : bool
78
+ If `True`, download the information about the files from the
79
+ Zenodo/CaltechDATA record. If `False`, only use the file
80
+ information that is already available (which will raise an
81
+ error if the file information has not previously been
82
+ downloaded). If not present, use the value from the
83
+ configuration file, defaulting to `True` if it is not
84
+ configured.
77
85
 
78
86
  Returns
79
87
  -------
@@ -117,12 +125,13 @@ def Simulation(location, *args, **kwargs):
117
125
  url = f"{doi_url}{sxs_id}"
118
126
 
119
127
  # Deal with "superseded_by" field, or "deprecated" keyword in the metadata
128
+ deprecated = ("deprecated" in metadata.get("keywords", []) or metadata.get("superseded_by", False))
120
129
  if not kwargs.get("ignore_deprecation", False):
121
130
  auto_supersede = kwargs.get("auto_supersede", read_config("auto_supersede", False))
122
131
  if (
123
132
  input_version
124
133
  and not auto_supersede
125
- and ("deprecated" in metadata.get("keywords", []) or metadata.get("superseded_by", False))
134
+ and deprecated
126
135
  ):
127
136
  message = ("\n"
128
137
  + f"Simulation '{sxs_id_stem}' is deprecated and/or superseded.\n"
@@ -179,8 +188,11 @@ def Simulation(location, *args, **kwargs):
179
188
  + "to to load this waveform anyway."
180
189
  )
181
190
 
191
+ # Note the deprecation status in the kwargs, even if ignoring deprecation
192
+ kwargs["deprecated"] = deprecated
193
+
182
194
  # We want to do this *after* deprecation checking, to avoid possibly unnecessary web requests
183
- files = get_file_info(metadata, sxs_id)
195
+ files = get_file_info(metadata, sxs_id, download=kwargs.get("download", None))
184
196
 
185
197
  # If Lev is given as part of `location`, use it; otherwise, use the highest available
186
198
  lev_numbers = sorted({lev for f in files if (lev:=lev_number(f))})
@@ -281,9 +293,20 @@ class SimulationBase:
281
293
  self.lev_numbers = lev_numbers
282
294
  self.lev_number = lev_number
283
295
  self.location = location
296
+ self.deprecated = kwargs.get("deprecated", False)
284
297
 
285
298
  def __repr__(self):
286
- return f"""{type(self).__qualname__}("{self.sxs_id}")"""
299
+ chi1 = self.metadata.reference_dimensionless_spin1
300
+ chi2 = self.metadata.reference_dimensionless_spin2
301
+ construction = f"""{type(self).__qualname__}("{self.location}")\n# """
302
+ if self.deprecated:
303
+ construction += "DEPRECATED "
304
+ construction += f"{self.metadata.number_of_orbits:.3g}-orbit "
305
+ construction += f"q={self.metadata.reference_mass_ratio:.3g} "
306
+ construction += f"""chi1=[{", ".join(f"{c:.3g}" for c in chi1)}] """
307
+ construction += f"""chi2=[{", ".join(f"{c:.3g}" for c in chi2)}] """
308
+ construction += f"e={self.metadata.reference_eccentricity:.3g} simulation"
309
+ return construction
287
310
 
288
311
  def __str__(self):
289
312
  return repr(self)
@@ -317,6 +340,7 @@ class SimulationBase:
317
340
  if not hasattr(self, "_horizons"):
318
341
  self._horizons = self.load_horizons()
319
342
  return self._horizons
343
+ Horizons = horizons
320
344
 
321
345
  @property
322
346
  def strain(self):
@@ -500,16 +524,18 @@ class Simulation_v2(SimulationBase):
500
524
  h5_truepath = sxs_id_path / sxs_path_to_system_path(h5_path)
501
525
  json_truepath = sxs_id_path / sxs_path_to_system_path(json_path)
502
526
  if not json_truepath.exists():
527
+ if not read_config("download", True):
528
+ raise ValueError(f"{json_truepath} not found and download is disabled")
503
529
  download_file(json_location, sxs_directory("cache") / json_truepath)
504
530
  return load(h5_location, truepath=h5_truepath, group=group, metadata=self.metadata)
505
531
 
506
532
 
507
- def get_file_info(metadata, sxs_id):
533
+ def get_file_info(metadata, sxs_id, download=None):
508
534
  from .. import load_via_sxs_id
509
535
  if "files" in metadata:
510
536
  return metadata["files"]
511
537
  truepath = Path(sxs_path_to_system_path(sxs_id)) / "zenodo_metadata.json"
512
- record = load_via_sxs_id(sxs_id, "export/json", truepath=truepath)
538
+ record = load_via_sxs_id(sxs_id, "export/json", truepath=truepath, download=download)
513
539
  entries = record["files"]["entries"]
514
540
  return {
515
541
  str(filename): {
@@ -217,7 +217,6 @@ class Simulations(collections.OrderedDict):
217
217
  """
218
218
  import numpy as np
219
219
  import pandas as pd
220
- from datetime import datetime, timezone
221
220
 
222
221
  if hasattr(self, "_dataframe"):
223
222
  return self._dataframe
@@ -259,55 +258,36 @@ class Simulations(collections.OrderedDict):
259
258
 
260
259
  def datetime_from_string(x):
261
260
  try:
262
- dt = datetime.strptime(x, "%Y-%m-%dT%H:%M:%S%z")
261
+ dt = pd.to_datetime(x).tz_convert("UTC")
263
262
  except:
264
- dt = datetime.min.replace(tzinfo=timezone.utc)
263
+ dt = pd.to_datetime("1970-1-1").tz_localize("UTC")
265
264
  return dt
266
265
 
267
266
  sims_df = pd.concat((
268
- simulations["object_types"].astype("category"),
269
- simulations["initial_data_type"].astype("category"),
270
- simulations["initial_separation"].map(floater),
271
- simulations["initial_orbital_frequency"].map(floater),
272
- simulations["initial_adot"].map(floater),
273
- simulations["initial_ADM_energy"].map(floater),
274
- simulations["initial_ADM_linear_momentum"].map(three_vec),
275
- simulations["initial_ADM_linear_momentum"].map(norm).rename("initial_ADM_linear_momentum_mag"),
276
- simulations["initial_ADM_angular_momentum"].map(three_vec),
277
- simulations["initial_ADM_angular_momentum"].map(norm).rename("initial_ADM_angular_momentum_mag"),
278
- simulations["initial_mass1"].map(floater),
279
- simulations["initial_mass2"].map(floater),
280
- simulations["initial_mass_ratio"].map(floater),
281
- simulations["initial_dimensionless_spin1"].map(three_vec),
282
- simulations["initial_dimensionless_spin1"].map(norm).rename("initial_dimensionless_spin1_mag"),
283
- simulations["initial_dimensionless_spin2"].map(three_vec),
284
- simulations["initial_dimensionless_spin2"].map(norm).rename("initial_dimensionless_spin2_mag"),
285
- simulations["initial_position1"].map(three_vec),
286
- simulations["initial_position2"].map(three_vec),
287
267
  simulations["reference_time"].map(floater),
288
- (
289
- simulations["reference_position1"].map(three_vec)
290
- -simulations["reference_position2"].map(three_vec)
291
- ).map(norm).rename("reference_separation"),
292
- simulations["reference_orbital_frequency"].map(norm).rename("reference_orbital_frequency_mag"),
293
268
  simulations["reference_mass_ratio"].map(floater),
294
- simulations["reference_dimensionless_spin1"].map(norm).rename("reference_chi1_mag"),
295
- simulations["reference_dimensionless_spin2"].map(norm).rename("reference_chi2_mag"),
269
+ simulations["reference_dimensionless_spin1"].map(three_vec),
270
+ simulations["reference_dimensionless_spin1"].map(norm).rename("reference_dimensionless_spin1_mag"),
271
+ simulations["reference_dimensionless_spin2"].map(three_vec),
272
+ simulations["reference_dimensionless_spin2"].map(norm).rename("reference_dimensionless_spin2_mag"),
296
273
  simulations["reference_chi_eff"].map(floater),
297
274
  simulations["reference_chi1_perp"].map(floater),
298
275
  simulations["reference_chi2_perp"].map(floater),
299
276
  simulations["reference_eccentricity"].map(floater),
300
277
  simulations["reference_eccentricity"].map(floaterbound).rename("reference_eccentricity_bound"),
301
278
  simulations["reference_mean_anomaly"].map(floater),
302
- simulations["reference_mass1"].map(floater),
303
- simulations["reference_mass2"].map(floater),
304
- simulations["reference_dimensionless_spin1"].map(three_vec),
305
- simulations["reference_dimensionless_spin1"].map(norm).rename("reference_dimensionless_spin1_mag"),
306
- simulations["reference_dimensionless_spin2"].map(three_vec),
307
- simulations["reference_dimensionless_spin2"].map(norm).rename("reference_dimensionless_spin2_mag"),
308
279
  simulations["reference_orbital_frequency"].map(three_vec),
280
+ simulations["reference_orbital_frequency"].map(norm).rename("reference_orbital_frequency_mag"),
281
+ (
282
+ simulations["reference_position1"].map(three_vec)
283
+ -simulations["reference_position2"].map(three_vec)
284
+ ).map(norm).rename("reference_separation"),
309
285
  simulations["reference_position1"].map(three_vec),
310
286
  simulations["reference_position2"].map(three_vec),
287
+ simulations["reference_mass1"].map(floater),
288
+ simulations["reference_mass2"].map(floater),
289
+ simulations["reference_dimensionless_spin1"].map(norm).rename("reference_chi1_mag"),
290
+ simulations["reference_dimensionless_spin2"].map(norm).rename("reference_chi2_mag"),
311
291
  simulations["relaxation_time"].map(floater),
312
292
  #simulations["merger_time"].map(floater),
313
293
  simulations["common_horizon_time"].map(floater),
@@ -318,27 +298,50 @@ class Simulations(collections.OrderedDict):
318
298
  simulations["remnant_velocity"].map(norm).rename("remnant_velocity_mag"),
319
299
  #simulations["final_time"].map(floater),
320
300
  simulations["EOS"].fillna(simulations["eos"]),
301
+ simulations["disk_mass"].map(floater),
302
+ simulations["ejecta_mass"].map(floater),
303
+ simulations["object_types"].astype("category"),
321
304
  simulations["initial_data_type"].astype("category"),
305
+ simulations["initial_separation"].map(floater),
306
+ simulations["initial_orbital_frequency"].map(floater),
307
+ simulations["initial_adot"].map(floater),
308
+ simulations["initial_ADM_energy"].map(floater),
309
+ simulations["initial_ADM_linear_momentum"].map(three_vec),
310
+ simulations["initial_ADM_linear_momentum"].map(norm).rename("initial_ADM_linear_momentum_mag"),
311
+ simulations["initial_ADM_angular_momentum"].map(three_vec),
312
+ simulations["initial_ADM_angular_momentum"].map(norm).rename("initial_ADM_angular_momentum_mag"),
313
+ simulations["initial_mass1"].map(floater),
314
+ simulations["initial_mass2"].map(floater),
315
+ simulations["initial_mass_ratio"].map(floater),
316
+ simulations["initial_dimensionless_spin1"].map(three_vec),
317
+ simulations["initial_dimensionless_spin1"].map(norm).rename("initial_dimensionless_spin1_mag"),
318
+ simulations["initial_dimensionless_spin2"].map(three_vec),
319
+ simulations["initial_dimensionless_spin2"].map(norm).rename("initial_dimensionless_spin2_mag"),
320
+ simulations["initial_position1"].map(three_vec),
321
+ simulations["initial_position2"].map(three_vec),
322
322
  #simulations["object1"].astype("category"),
323
323
  #simulations["object2"].astype("category"),
324
- simulations["disk_mass"].map(floater),
325
- simulations["ejecta_mass"].map(floater),
326
324
  # simulations["url"],
327
325
  #simulations["simulation_name"],
328
326
  #simulations["alternative_names"],
329
327
  # simulations["metadata_path"],
330
- simulations["date_link_earliest"].map(datetime_from_string),
331
- simulations["date_postprocessing"].map(datetime_from_string),
332
- simulations["date_run_earliest"].map(datetime_from_string),
333
- simulations["date_run_latest"].map(datetime_from_string),
334
328
  # simulations["end_of_trajectory_time"].map(floater),
335
329
  # simulations["merger_time"].map(floater),
336
330
  simulations["number_of_orbits"].map(floater),
337
331
  simulations["superseded_by"],
338
332
  simulations["DOI_versions"],
339
333
  simulations["keywords"],
334
+ simulations["date_link_earliest"].map(datetime_from_string),
335
+ simulations["date_run_earliest"].map(datetime_from_string),
336
+ simulations["date_run_latest"].map(datetime_from_string),
337
+ simulations["date_postprocessing"].map(datetime_from_string),
340
338
  ), axis=1)
341
339
 
340
+ sims_df.insert(0, "deprecated", (
341
+ ~sims_df.superseded_by.isna()
342
+ | sims_df["keywords"].map(lambda ks: "deprecated" in ks)
343
+ ))
344
+
342
345
  # We have ignored the following fields present in the
343
346
  # simulations.json file (as of 2024-08-04), listed here with
344
347
  # the number of non-null entries:
@@ -571,10 +571,12 @@ def load(
571
571
  w = w.to_inertial_frame()
572
572
 
573
573
  if metadata is None:
574
- if not metadata_path.exists():
575
- invalid(f'\nMetadata file "{metadata_path}" cannot be found, but is expected for this data format.')
576
- else:
574
+ if metadata_path.exists():
577
575
  metadata = Metadata.from_file(metadata_path)
576
+ elif metadata_path.with_suffix(".txt").exists():
577
+ metadata = Metadata.from_file(metadata_path.with_suffix(".txt"))
578
+ else:
579
+ invalid(f"\nMetadata files {metadata_path}/.txt cannot be found, but at least one is expected for this data format.")
578
580
 
579
581
  dtb = kwargs.pop("drop_times_before", 0)
580
582
  if dtb=="begin":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sxs
3
- Version: 2024.0.4
3
+ Version: 2024.0.6
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/
@@ -1,5 +1,5 @@
1
1
  sxs/__init__.py,sha256=51_F8xiD6cdE2kIq9dPyHxNQVsp4oCvtR1wQQQ0VS2A,2577
2
- sxs/__version__.py,sha256=ZiWqAtT6wK0axwT1EB0WMPx2vpakw9wl4xBetLE4lQY,25
2
+ sxs/__version__.py,sha256=YFK3IT8GG2d3hDuZZ42G2jgH-IxsrF_xK1YVnywr2M4,25
3
3
  sxs/handlers.py,sha256=F9XmIhjZm8df1g49fUHemc-9wWstwFUZMacY2RXCWhE,24814
4
4
  sxs/juliapkg.json,sha256=higH1UDu30K_PN6-o7lAz0j1xjgYEiCCYBAc-Iaw1Iw,178
5
5
  sxs/time_series.py,sha256=OKaLg8tFyrtKcef7900ri-a0C6A8wKxA68KovZXvH6I,41081
@@ -10,7 +10,7 @@ sxs/catalog/__init__.py,sha256=9-WTMTPDmqqkFyIHOtEbPA6etXm3_RSRrLWvHtLrjLg,205
10
10
  sxs/catalog/catalog.py,sha256=3sUNREH-eyNwtjBVW9MKih_B6hHooPj_I1OYxP_adao,26804
11
11
  sxs/catalog/create.py,sha256=KL3zHljdLADeLfTDMTSkcVjIFim92Ylc-ziEvpiflEU,4734
12
12
  sxs/catalog/description.py,sha256=4eHMde4oGNp69jRmXCsfrIYJ4WK5HYgYFgXyF5htLDM,10830
13
- sxs/horizons/__init__.py,sha256=CmBOz9wtb3AwRwsTVdjDj4QmnV3c9mKBw3-gif7FD54,16275
13
+ sxs/horizons/__init__.py,sha256=f7Zfkj9-r-4IOa-LFuqvChxLDMz6nNiAjsjXCG_uWw0,19194
14
14
  sxs/horizons/spec_horizons_h5.py,sha256=63cIGXuCEbJWrkRu3_mjL2gmssWtQ4axBTmg_wo_020,3642
15
15
  sxs/horizons/xor_multishuffle_bzip2.py,sha256=y4AKuxmLuj8K1pkdhIoSzENGyMu4uhpiPrBh-XisvK4,6536
16
16
  sxs/julia/GWFrames.py,sha256=47H9Ugff7ldGBujiUTcADT3b4MSxUtqmajvSApI91WA,2892
@@ -18,8 +18,8 @@ sxs/julia/__init__.py,sha256=uSLP_xfU-GZG7IO5vs0TEkCR4LH8aBYMF-852wDY3kI,3490
18
18
  sxs/metadata/__init__.py,sha256=KCvJ9Cf1WhIZp-z28UzarKcmUAzV2BOv2gqKiorILjo,149
19
19
  sxs/metadata/metadata.py,sha256=_vGqMUbeiN0fecJj9f9f9ex56WgSZuwwBXykUuj1_ZI,27679
20
20
  sxs/simulations/__init__.py,sha256=sl-sDI5N2A03lAfzMig8Jm_Beri_v65qjlIOeGGX9XM,72
21
- sxs/simulations/simulation.py,sha256=TaW1wMxbbNjyU9-DrYr65DjlAbtPLPAEoxYtIG6gSkM,21410
22
- sxs/simulations/simulations.py,sha256=V1cE966NLCJ2tyowh6S1LrVTGj5KzfLx7RVaUZ5zr_I,16905
21
+ sxs/simulations/simulation.py,sha256=8eGMyKIBJD45uo8Gb6fhhF5mHnp03cGu5SzAb-4wfS4,22884
22
+ sxs/simulations/simulations.py,sha256=G4w_zed15g-b_4wLnt5sRmVPo2XxDq6XAW8EnlreX9E,16953
23
23
  sxs/utilities/__init__.py,sha256=YTyrKYkiDZV4EoT4IHXGBsc_j6RU0aK1c3HERyshVq0,4760
24
24
  sxs/utilities/bitwise.py,sha256=G9ZNYgwDQRhq5wbDf-p2HcUqkEP_IRDiQoXW4KyU17k,13205
25
25
  sxs/utilities/dicts.py,sha256=CCpm3upG_9SRj9gjawukSUfaJ5asF-XRG2ausEXhYyg,695
@@ -66,7 +66,7 @@ sxs/waveforms/waveform_signal.py,sha256=Ojrt6DSDdleB0qmu6UwjjPnYdaWsrjnpBA_8dhnM
66
66
  sxs/waveforms/format_handlers/__init__.py,sha256=0wsnuBYCYsCkN19L2ipga7BtigvPyBcqiy_4qrzmLpE,50
67
67
  sxs/waveforms/format_handlers/lvc.py,sha256=kUiLT-QbBTH5Di2touWwXqasQ8Q777mV9zhRIHEqjPk,7789
68
68
  sxs/waveforms/format_handlers/nrar.py,sha256=2gQby7NwfagXCCllzVsxsc_cRbtdIWVvvwF4GOLvtLQ,20431
69
- sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py,sha256=HfWBOspSx9lECnEtvqesjX92UY4DDa3ViYY6_VD6GEY,27529
69
+ sxs/waveforms/format_handlers/rotating_paired_diff_multishuffle_bzip2.py,sha256=ixxAntHxxDEP_NJJ9vSwptwIHBBZRcFq00k9WcOeOug,27676
70
70
  sxs/waveforms/format_handlers/rotating_paired_xor_multishuffle_bzip2.py,sha256=pFEJIlb6OQQNhv6r48ALFnZMKNZjuQY55ydWBADCDgU,2348
71
71
  sxs/waveforms/format_handlers/spectre_cce_v1.py,sha256=nh57zbG_uWJZQVhMrz7H05fpsjl1X6oaita8aTRcWxU,3963
72
72
  sxs/zenodo/__init__.py,sha256=KDcCWb7E3frZ0VylKFUkgeEMra6RG1q6FFy5Na8UuLY,26224
@@ -78,7 +78,7 @@ sxs/zenodo/api/__init__.py,sha256=EM_eh4Q8R5E0vIfMhyIR1IYFfOBu6vA0UTasgX9gHys,21
78
78
  sxs/zenodo/api/deposit.py,sha256=J4RGvGjh0cEOrN4bBZWEDcPAhNscqB2fzLlvRZ5HTHM,36948
79
79
  sxs/zenodo/api/login.py,sha256=Yz0ytgi81_5BpDzhrS0WPMXlvU2qUaCK8yn8zxfEbko,18007
80
80
  sxs/zenodo/api/records.py,sha256=nKkhoHZ95CTztHF9Zzaug5p7IiUCJG4Em1i-l-WqH6U,3689
81
- sxs-2024.0.4.dist-info/METADATA,sha256=SHZVVk8z8EafgHJLBR3mFBLG3EgZZdRYvBc7iGhPHtI,9301
82
- sxs-2024.0.4.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
83
- sxs-2024.0.4.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
84
- sxs-2024.0.4.dist-info/RECORD,,
81
+ sxs-2024.0.6.dist-info/METADATA,sha256=0W1NSgRu9H9pxeMYebBBB1fNjBhCzNe5aFZw4ngYi1o,9301
82
+ sxs-2024.0.6.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
83
+ sxs-2024.0.6.dist-info/licenses/LICENSE,sha256=ptVOd5m7LDM5ZF0x32cxb8c2Nd5NDmAhy6DX7xt_7VA,1080
84
+ sxs-2024.0.6.dist-info/RECORD,,
File without changes