gwpy 3.0.10__py3-none-any.whl → 3.0.12__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.

Potentially problematic release.


This version of gwpy might be problematic. Click here for more details.

gwpy/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '3.0.10'
16
- __version_tuple__ = version_tuple = (3, 0, 10)
15
+ __version__ = version = '3.0.12'
16
+ __version_tuple__ = version_tuple = (3, 0, 12)
gwpy/io/datafind.py CHANGED
@@ -22,7 +22,7 @@ Automatic discovery of file paths for both LIGO and Virgo index solutions
22
22
  (``gwdatafind`` or ``ffl``, respectvely) is supported.
23
23
 
24
24
  The functions in this module are highly reliant on having local access to
25
- files (either directly, or via NFS, or CVMFS).
25
+ files (either directly, or via NFS/fuse).
26
26
 
27
27
  Data discovery using the DataFind service requires the `gwdatafind` Python
28
28
  package (a dependency of ``gwpy``), and either the ``GW_DATAFIND_SERVER``
@@ -45,7 +45,7 @@ from unittest import mock
45
45
 
46
46
  import gwdatafind
47
47
 
48
- from ligo.segments import segment as LigoSegment
48
+ from igwn_segments import segment as LigoSegment
49
49
 
50
50
  from ..time import to_gps
51
51
  from . import ffldatafind
gwpy/io/ffldatafind.py CHANGED
@@ -32,7 +32,7 @@ from collections import defaultdict
32
32
  from functools import lru_cache
33
33
  from warnings import warn
34
34
 
35
- from ligo.segments import (
35
+ from igwn_segments import (
36
36
  segment,
37
37
  segmentlist,
38
38
  )
@@ -27,7 +27,6 @@ import pytest
27
27
  import gwdatafind
28
28
 
29
29
  from ...testing.errors import (
30
- pytest_skip_cvmfs_read_error,
31
30
  pytest_skip_network_error,
32
31
  )
33
32
  from ...testing.utils import (
@@ -76,30 +75,6 @@ def _mock_gwdatafind(func):
76
75
  return wrapper
77
76
 
78
77
 
79
- def _gwosc_gwdatafind(func):
80
- """Decorate a function to use the GWOSC GWDataFind server.
81
-
82
- That server returns paths from CVMFS (``/cvmfs/gwosc.osgstorage.org``) so
83
- we need to add various protections.
84
- """
85
- @mock.patch.dict( # point GWDataFind at GWOSC server
86
- "os.environ",
87
- {"GWDATAFIND_SERVER": "datafind.gwosc.org:80"},
88
- )
89
- @pytest_skip_cvmfs_read_error # skip CVMFS problems
90
- @pytest_skip_network_error # skip network problems
91
- @pytest.mark.skipif( # skip missing CVMFS repo
92
- not os.path.isdir('/cvmfs/gwosc.osgstorage.org/'),
93
- reason="GWOSC CVMFS repository not available",
94
- )
95
- @pytest.mark.cvmfs # mark test as requiring cvmfs
96
- @pytest.mark.requires("LDAStools.frameCPP") # skip if no frameCPP
97
- def wrapper(*args, **kwargs):
98
- return func(*args, **kwargs)
99
-
100
- return wrapper
101
-
102
-
103
78
  # -- tests --------------------------------------------------------------------
104
79
 
105
80
  @mock.patch.dict("os.environ", clear=True)
@@ -207,34 +182,6 @@ def test_find_best_frametype():
207
182
  ) == 'HW100916'
208
183
 
209
184
 
210
- @_gwosc_gwdatafind
211
- def test_find_best_frametype_with_gaps():
212
- """Test that `find_best_frametype` works across gaps.
213
-
214
- It tries to find something that covers at least some of the gap.
215
- """
216
- assert io_datafind.find_best_frametype(
217
- "L1:GWOSC-4KHZ_R1_STRAIN",
218
- 1187733504,
219
- 1187733504 + 4097, # one second too long
220
- ) == "L1_GWOSC_O2_4KHZ_R1"
221
-
222
-
223
- @_gwosc_gwdatafind
224
- def test_find_best_frametype_with_gaps_multiple():
225
- """Test that `find_best_frametype` works across gaps with multiple
226
- channels.
227
- """
228
- assert io_datafind.find_best_frametype(
229
- ("L1:GWOSC-4KHZ_R1_STRAIN", "L1:GWOSC-4KHZ_R1_DQMASK"),
230
- 1187733504,
231
- 1187733504 + 4097, # one second too long
232
- ) == {
233
- "L1:GWOSC-4KHZ_R1_STRAIN": "L1_GWOSC_O2_4KHZ_R1",
234
- "L1:GWOSC-4KHZ_R1_DQMASK": "L1_GWOSC_O2_4KHZ_R1",
235
- }
236
-
237
-
238
185
  @pytest.mark.requires("LDAStools.frameCPP")
239
186
  @pytest_skip_network_error
240
187
  @pytest.mark.skipif(
gwpy/plot/axes.py CHANGED
@@ -39,6 +39,8 @@ from matplotlib.collections import PolyCollection
39
39
  from matplotlib.lines import Line2D
40
40
  from matplotlib.projections import register_projection
41
41
 
42
+ from packaging.version import Version
43
+
42
44
  from . import (Plot, colorbar as gcbar)
43
45
  from .colors import format_norm
44
46
  from .gps import GPS_SCALES
@@ -47,6 +49,8 @@ from ..time import to_gps
47
49
 
48
50
  __author__ = 'Duncan Macleod <duncan.macleod@ligo.org>'
49
51
 
52
+ matplotlib_version = Version(matplotlib_version)
53
+
50
54
 
51
55
  def log_norm(func):
52
56
  """Wrap ``func`` to handle custom gwpy keywords for a LogNorm colouring
@@ -86,7 +90,7 @@ def restore_grid(func):
86
90
  automatically removed a grid on a set of Axes. This decorator just
87
91
  undoes that.
88
92
  """
89
- if matplotlib_version >= "3.7.0":
93
+ if matplotlib_version >= Version("3.7.0"):
90
94
  return func
91
95
 
92
96
  @wraps(func)
@@ -162,7 +166,7 @@ class Axes(_Axes):
162
166
  super().__init__(*args, **kwargs)
163
167
 
164
168
  # handle Series in `ax.plot()`
165
- if matplotlib_version >= "3.8.0":
169
+ if matplotlib_version >= Version("3.8.0"):
166
170
  self._get_lines = PlotArgsProcessor()
167
171
  else:
168
172
  self._get_lines = PlotArgsProcessor(self)
gwpy/plot/segments.py CHANGED
@@ -27,7 +27,7 @@ from matplotlib.projections import register_projection
27
27
  from matplotlib.collections import PatchCollection
28
28
  from matplotlib.patches import Rectangle
29
29
 
30
- import ligo.segments
30
+ import igwn_segments
31
31
 
32
32
  from .axes import Axes
33
33
  from .colors import tint
@@ -44,10 +44,10 @@ class SegmentAxes(Axes):
44
44
  This `SegmentAxes` provides custom methods for displaying any of
45
45
 
46
46
  - `~gwpy.segments.DataQualityFlag`
47
- - `~gwpy.segments.Segment` or :class:`ligo.segments.segment`
48
- - `~gwpy.segments.SegmentList` or :class:`ligo.segments.segmentlist`
47
+ - `~gwpy.segments.Segment` or :class:`igwn_segments.segment`
48
+ - `~gwpy.segments.SegmentList` or :class:`igwn_segments.segmentlist`
49
49
  - `~gwpy.segments.SegmentListDict` or
50
- :class:`ligo.segments.segmentlistdict`
50
+ :class:`igwn_segments.segmentlistdict`
51
51
 
52
52
  Parameters
53
53
  ----------
@@ -84,9 +84,9 @@ class SegmentAxes(Axes):
84
84
  return self.plot_dict
85
85
  if isinstance(obj, DataQualityFlag):
86
86
  return self.plot_flag
87
- if isinstance(obj, ligo.segments.segmentlistdict):
87
+ if isinstance(obj, igwn_segments.segmentlistdict):
88
88
  return self.plot_segmentlistdict
89
- if isinstance(obj, ligo.segments.segmentlist):
89
+ if isinstance(obj, igwn_segments.segmentlist):
90
90
  return self.plot_segmentlist
91
91
  raise TypeError(
92
92
  f"no known {type(self).__name__}.plot_xxx method "
@@ -106,7 +106,7 @@ class SegmentAxes(Axes):
106
106
  - `~gwpy.segments.SegmentList`
107
107
  - `~gwpy.segments.SegmentListDict`
108
108
 
109
- or equivalent types upstream from :mod:`ligo.segments`
109
+ or equivalent types upstream from :mod:`igwn_segments`
110
110
 
111
111
  kwargs
112
112
  keyword arguments applicable to `~matplotib.axes.Axes.plot`
@@ -442,7 +442,7 @@ class SegmentFormatter(Formatter):
442
442
  for patch in self.axis.axes.patches:
443
443
  if not patch.get_label() or patch.get_label() == '_nolegend_':
444
444
  continue
445
- if t in ligo.segments.segment(*patch.get_bbox().intervaly):
445
+ if t in igwn_segments.segment(*patch.get_bbox().intervaly):
446
446
  return patch.get_label()
447
447
  return ''
448
448
 
@@ -24,16 +24,18 @@ import pytest
24
24
  import numpy
25
25
 
26
26
  from matplotlib import (
27
- __version__ as matplotlib_version,
28
27
  rcParams,
29
28
  )
30
29
  from matplotlib.collections import PolyCollection
31
30
  from matplotlib.lines import Line2D
32
31
 
32
+ from packaging.version import Version
33
+
33
34
  from ...time import to_gps
34
35
  from ...types import (Series, Array2D)
35
36
  from ...testing import utils
36
37
  from .. import Axes
38
+ from ..axes import matplotlib_version
37
39
  from .utils import AxesTestBase
38
40
 
39
41
  numpy.random.seed(0)
@@ -172,7 +174,7 @@ class TestAxes(AxesTestBase):
172
174
  array = Array2D(numpy.random.random((10, 10)), dx=.1, dy=.2)
173
175
  ax.grid(True, which="both", axis="both")
174
176
  mesh = ax.pcolormesh(array)
175
- if matplotlib_version >= "3.8.0":
177
+ if matplotlib_version >= Version("3.8.0"):
176
178
  utils.assert_array_equal(mesh.get_array(), array.T)
177
179
  else: # matplotlib < 3.8.0
178
180
  utils.assert_array_equal(mesh.get_array(), array.T.flatten())
gwpy/segments/__init__.py CHANGED
@@ -19,7 +19,7 @@
19
19
  """This module provides classes for generating and manipulating
20
20
  data segments of the form [gps_start, gps_end).
21
21
 
22
- The core of this module is adapted from |ligo-segments|_.
22
+ The core of this module is adapted from |igwn-segments|_.
23
23
  """
24
24
 
25
25
  from .segments import (Segment, SegmentList, SegmentListDict)
gwpy/segments/io/hdf5.py CHANGED
@@ -306,7 +306,7 @@ def write_hdf5_segmentlist(seglist, output, path=None, **kwargs):
306
306
 
307
307
  Parameters
308
308
  ----------
309
- seglist : :class:`~ligo.segments.segmentlist`
309
+ seglist : :class:`~igwn_segments.segmentlist`
310
310
  data to write
311
311
 
312
312
  output : `str`, `h5py.File`, `h5py.Group`
gwpy/segments/segments.py CHANGED
@@ -24,7 +24,7 @@ configuration.
24
24
 
25
25
  from astropy.io import registry as io_registry
26
26
 
27
- from ligo.segments import (segment, segmentlist, segmentlistdict)
27
+ from igwn_segments import (segment, segmentlist, segmentlistdict)
28
28
 
29
29
  from ..io.mp import read_multi as io_read_multi
30
30
  from ..utils.decorators import return_as
gwpy/testing/marks.py CHANGED
@@ -29,7 +29,7 @@ registered up front and visible via ``python -m pytest gwpy --markers``.
29
29
  """
30
30
 
31
31
  MARKS = {
32
- "cvmfs": "mark a test as requiring CVMFS",
32
+ # nothing here, used to support 'cvmfs' but that was removed
33
33
  }
34
34
 
35
35
 
gwpy/timeseries/core.py CHANGED
@@ -425,6 +425,9 @@ class TimeSeriesBase(Series):
425
425
  useful if the same remote data are to be accessed multiple times.
426
426
  Set `GWPY_CACHE=1` in the environment to auto-cache.
427
427
 
428
+ timeout : `float`, optional
429
+ the time to wait for a response from the GWOSC server.
430
+
428
431
  **kwargs
429
432
  any other keyword arguments are passed to the `TimeSeries.read`
430
433
  method that parses the file that was downloaded
@@ -38,7 +38,7 @@ import numpy
38
38
 
39
39
  from astropy.io.registry import (get_reader, get_writer)
40
40
 
41
- from ligo.segments import segment as LigoSegment
41
+ from igwn_segments import segment as LigoSegment
42
42
 
43
43
  from ....time import to_gps
44
44
  from ....io.gwf import identify_gwf
@@ -59,10 +59,16 @@ GWOSC_LOCATE_KWARGS = (
59
59
 
60
60
  # -- utilities ----------------------------------------------------------------
61
61
 
62
- def _download_file(url, cache=None, verbose=False):
62
+ def _download_file(url, cache=None, verbose=False, timeout=None, **kwargs):
63
63
  if cache is None:
64
64
  cache = bool_env('GWPY_CACHE', False)
65
- return get_readable_fileobj(url, cache=cache, show_progress=verbose)
65
+ return get_readable_fileobj(
66
+ url,
67
+ cache=cache,
68
+ show_progress=verbose,
69
+ remote_timeout=timeout,
70
+ **kwargs,
71
+ )
66
72
 
67
73
 
68
74
  def _fetch_gwosc_data_file(url, *args, **kwargs):
@@ -71,6 +77,7 @@ def _fetch_gwosc_data_file(url, *args, **kwargs):
71
77
  cls = kwargs.pop('cls', TimeSeries)
72
78
  cache = kwargs.pop('cache', None)
73
79
  verbose = kwargs.pop('verbose', False)
80
+ timeout = kwargs.pop('timeout', None) # astropy will set a default
74
81
 
75
82
  # match file format
76
83
  if url.endswith('.gz'):
@@ -84,7 +91,7 @@ def _fetch_gwosc_data_file(url, *args, **kwargs):
84
91
  elif ext == '.gwf':
85
92
  kwargs.setdefault('format', 'gwf')
86
93
 
87
- with _download_file(url, cache, verbose=verbose) as rem:
94
+ with _download_file(url, cache, verbose=verbose, timeout=timeout) as rem:
88
95
  # get channel for GWF if not given
89
96
  if ext == ".gwf" and (not args or args[0] is None):
90
97
  args = (_gwf_channel(rem, cls, kwargs.get("verbose")),)
@@ -567,6 +567,7 @@ class TestTimeSeries(_TestTimeSeriesBase):
567
567
  *GWOSC_GW150914_SEGMENT,
568
568
  format=format,
569
569
  verbose=True,
570
+ timeout=60,
570
571
  )
571
572
  utils.assert_quantity_sub_equal(ts, gw150914,
572
573
  exclude=['name', 'unit', 'channel'])
@@ -577,6 +578,7 @@ class TestTimeSeries(_TestTimeSeriesBase):
577
578
  *GWOSC_GW150914_SEGMENT,
578
579
  format=format,
579
580
  sample_rate=16384,
581
+ timeout=60,
580
582
  )
581
583
  assert ts.sample_rate == 16384 * units.Hz
582
584
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: gwpy
3
- Version: 3.0.10
3
+ Version: 3.0.12
4
4
  Summary: A python package for gravitational-wave astrophysics
5
5
  Author-email: Duncan Macleod <duncan.macleod@ligo.org>
6
6
  License: GPL-3.0-or-later
@@ -15,14 +15,13 @@ Classifier: Natural Language :: English
15
15
  Classifier: Operating System :: OS Independent
16
16
  Classifier: Programming Language :: Python
17
17
  Classifier: Programming Language :: Python :: 3
18
- Classifier: Programming Language :: Python :: 3.8
19
18
  Classifier: Programming Language :: Python :: 3.9
20
19
  Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Topic :: Scientific/Engineering :: Astronomy
24
23
  Classifier: Topic :: Scientific/Engineering :: Physics
25
- Requires-Python: >=3.8
24
+ Requires-Python: >=3.9
26
25
  Description-Content-Type: text/markdown
27
26
  License-File: LICENSE
28
27
  Requires-Dist: astropy>=4.3.0
@@ -31,38 +30,15 @@ Requires-Dist: dqsegdb2
31
30
  Requires-Dist: gwdatafind>=1.1.0
32
31
  Requires-Dist: gwosc>=0.5.3
33
32
  Requires-Dist: h5py>=3.0.0
34
- Requires-Dist: ligo-segments>=1.0.0
33
+ Requires-Dist: igwn-segments>=2.0.0
35
34
  Requires-Dist: ligotimegps>=1.2.1
36
35
  Requires-Dist: matplotlib>=3.3.0
37
- Requires-Dist: numpy>=1.19
36
+ Requires-Dist: numpy>=1.19.5
37
+ Requires-Dist: packaging>=24.1
38
38
  Requires-Dist: python-dateutil
39
39
  Requires-Dist: requests>=2.20.0
40
40
  Requires-Dist: scipy>=1.6.0
41
- Requires-Dist: tqdm>=4.10.0
42
- Provides-Extra: astro
43
- Requires-Dist: inspiral-range>=0.5.0; extra == "astro"
44
- Provides-Extra: conda
45
- Requires-Dist: python-framel!=8.46.0,>=8.40.1; extra == "conda"
46
- Requires-Dist: python-nds2-client; extra == "conda"
47
- Requires-Dist: python-ldas-tools-framecpp; sys_platform != "win32" and extra == "conda"
48
- Requires-Dist: lxml!=4.9.1; sys_platform == "win32" and extra == "conda"
49
- Provides-Extra: dev
50
- Requires-Dist: ciecplib; extra == "dev"
51
- Requires-Dist: inspiral-range>=0.5.0; extra == "dev"
52
- Requires-Dist: pymysql; extra == "dev"
53
- Requires-Dist: sqlalchemy; extra == "dev"
54
- Requires-Dist: uproot>=4.1.5; extra == "dev"
55
- Requires-Dist: lalsuite; sys_platform != "win32" and extra == "dev"
56
- Requires-Dist: lscsoft-glue; sys_platform != "win32" and extra == "dev"
57
- Requires-Dist: pycbc>=1.13.4; sys_platform != "win32" and extra == "dev"
58
- Requires-Dist: python-ligo-lw>=1.7.0; sys_platform != "win32" and extra == "dev"
59
- Requires-Dist: psycopg2; sys_platform == "linux" and extra == "dev"
60
- Provides-Extra: docs
61
- Requires-Dist: numpydoc>=0.8.0; extra == "docs"
62
- Requires-Dist: Sphinx>=4.4.0; extra == "docs"
63
- Requires-Dist: sphinx-automodapi; extra == "docs"
64
- Requires-Dist: sphinx-immaterial>=0.7.3; extra == "docs"
65
- Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
41
+ Requires-Dist: tqdm>=4.52.0
66
42
  Provides-Extra: test
67
43
  Requires-Dist: coverage[toml]>=5.0; extra == "test"
68
44
  Requires-Dist: pytest>=3.9.1; extra == "test"
@@ -72,6 +48,30 @@ Requires-Dist: pytest-requires; extra == "test"
72
48
  Requires-Dist: pytest-socket; extra == "test"
73
49
  Requires-Dist: pytest-xdist; extra == "test"
74
50
  Requires-Dist: requests-mock; extra == "test"
51
+ Provides-Extra: astro
52
+ Requires-Dist: inspiral-range>=0.5.0; extra == "astro"
53
+ Provides-Extra: docs
54
+ Requires-Dist: numpydoc>=0.8.0; extra == "docs"
55
+ Requires-Dist: Sphinx>=4.4.0; extra == "docs"
56
+ Requires-Dist: sphinx-automodapi; extra == "docs"
57
+ Requires-Dist: sphinx-immaterial>=0.7.3; extra == "docs"
58
+ Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
59
+ Provides-Extra: dev
60
+ Requires-Dist: ciecplib; extra == "dev"
61
+ Requires-Dist: inspiral-range>=0.5.0; extra == "dev"
62
+ Requires-Dist: lalsuite; sys_platform != "win32" and extra == "dev"
63
+ Requires-Dist: lscsoft-glue; sys_platform != "win32" and extra == "dev"
64
+ Requires-Dist: psycopg2; sys_platform == "linux" and extra == "dev"
65
+ Requires-Dist: pycbc>=1.13.4; sys_platform != "win32" and extra == "dev"
66
+ Requires-Dist: pymysql; extra == "dev"
67
+ Requires-Dist: python-ligo-lw>=1.7.0; sys_platform != "win32" and extra == "dev"
68
+ Requires-Dist: sqlalchemy; extra == "dev"
69
+ Requires-Dist: uproot>=4.1.5; extra == "dev"
70
+ Provides-Extra: conda
71
+ Requires-Dist: lxml!=4.9.1; sys_platform == "win32" and extra == "conda"
72
+ Requires-Dist: python-framel!=8.46.0,>=8.40.1; extra == "conda"
73
+ Requires-Dist: python-ldas-tools-framecpp; (sys_platform != "win32" and python_version < "3.12") and extra == "conda"
74
+ Requires-Dist: python-nds2-client; extra == "conda"
75
75
 
76
76
  GWpy is a collaboration-driven Python package providing tools for
77
77
  studying data from ground-based gravitational-wave detectors.
@@ -1,5 +1,5 @@
1
1
  gwpy/__init__.py,sha256=3chu5cxfVA08qkFYk3lyXBlFXO6lrgytIIdh_nL9YzU,1533
2
- gwpy/_version.py,sha256=8x3USMh-QXDOqs112oCeNZdt7w1M5P5hyLCG9bkT-c4,413
2
+ gwpy/_version.py,sha256=ooyEHZtQaJBMHgtSIHzjHXZytluD0oK2JQtr3tGaXCw,413
3
3
  gwpy/conftest.py,sha256=nMqidKFNcwTCvDb-vHzzCmzUyyL0TH9DwbmagfdE1II,1639
4
4
  gwpy/astro/__init__.py,sha256=DtaqsbVdlI4Qy6eRlXuLtraTCLXjpQYadk5pEFwXrM8,1909
5
5
  gwpy/astro/range.py,sha256=BcRrJkgxiceL1QsOy1uUtCMslEeic0MUxWFs76LgY0Y,24892
@@ -49,8 +49,8 @@ gwpy/frequencyseries/tests/test_hist.py,sha256=hAhFzX2k2irV6QhQUciF2L4sQYmG9qSiL
49
49
  gwpy/io/__init__.py,sha256=Y-QjvthCmjEKRHxix-0iZjx9-VKT30ynPT4bWbKdAA4,831
50
50
  gwpy/io/_framecpp.py,sha256=1CTZgxJ7YD8tZv_zP9Hucj9_TE0oMrtdhFWSncZ5jzo,4250
51
51
  gwpy/io/cache.py,sha256=6kX4akC7a9m3B8AvDmwVYgiVkBb2L6B3IiPFyoweAnw,15124
52
- gwpy/io/datafind.py,sha256=MEgH8n2YjIT21AY_jAIUJDtT994F87n2rEwTMMCwF0w,18485
53
- gwpy/io/ffldatafind.py,sha256=OFcMEPT8FqKFMV_tnwRIggqvLgUSgVYWcdP1FnRrwnk,8766
52
+ gwpy/io/datafind.py,sha256=BFTESNg-BYncNqt7Bs7uSlloDYhLF22_FE_egQQ53hg,18480
53
+ gwpy/io/ffldatafind.py,sha256=I-HC-E8g_cmXOjF6AY0koMM_d1CvqxS_X6VdKLZV__M,8766
54
54
  gwpy/io/gwf.py,sha256=6MxFq9-59nwOcHe7d13zF9BYpDfVCXaINK-KvntF7ZU,18966
55
55
  gwpy/io/hdf5.py,sha256=Pg8zIv1dy7I9Z0sBM6vtry97igHej5gFnBukjsTiiX0,5257
56
56
  gwpy/io/kerberos.py,sha256=4tFPQ5iOy6cOe9MCEJqVqJZZ287EKh8VF64BPPiOPH0,6928
@@ -61,7 +61,7 @@ gwpy/io/registry.py,sha256=UIV7tOAKyYoLrdvEwsef1N2eMCxY3diQn3mhF6vCgqM,3518
61
61
  gwpy/io/utils.py,sha256=xLn9EI1VrSX2NqhsTvLvBLg8vLKQXPD6L0MOL8Z9WDg,7341
62
62
  gwpy/io/tests/__init__.py,sha256=4QFcOfH6EHMs-fH0nYKYwgKlf2-c5bINDOjhULDWc20,743
63
63
  gwpy/io/tests/test_cache.py,sha256=-FB4qcbFDKkzdC4gyt-vFnqIyhvfPw0EiZ1RJgjAFEQ,8567
64
- gwpy/io/tests/test_datafind.py,sha256=LERgMx4kkEOlrFhugYqPv3Aahp5THC0-q36oTwGsU9c,10597
64
+ gwpy/io/tests/test_datafind.py,sha256=wJkBSoD_tYMa_Q_3t_b6REeaHezQ2vgGxi_b7oU3C4U,8843
65
65
  gwpy/io/tests/test_ffldatafind.py,sha256=IS6cILpWRdkxSribsRt15wvhGxhVEOjwjHEmF9lPV00,6409
66
66
  gwpy/io/tests/test_gwf.py,sha256=qCnxxjGKlKv73YcmUxGJJoLQPlTCTvbPu2ivj5V1lN8,4228
67
67
  gwpy/io/tests/test_kerberos.py,sha256=LsH2ux8B3biMT9XGHvmpbH84Twu3nqZtAPVoTifmVH0,6492
@@ -70,7 +70,7 @@ gwpy/io/tests/test_mp.py,sha256=_v5sM6oU9Qw1dIH-zCJyMQVDs4uoOohwjFY82aRx_6c,3293
70
70
  gwpy/io/tests/test_nds2.py,sha256=RKaP1XhnJGaC53mdFuQYqYM2xjrP_S-7SUPysbX6-hM,12185
71
71
  gwpy/io/tests/test_utils.py,sha256=TM_sk6sTV_Hh8A7jY-C4rL9sPu5_ylUB88Js2bOlcb4,3971
72
72
  gwpy/plot/__init__.py,sha256=wOFYB6xVJx7UfO4QFVCEdPNQ-UJBVTXYbDp4a5EU27c,1641
73
- gwpy/plot/axes.py,sha256=mpMtg-VTNpSRzbvRyca9EbHJtTdcFKHYX8pVIc6aPUw,23376
73
+ gwpy/plot/axes.py,sha256=J6D5v27gjbMIuWoNiR8T7Mj_VTEppRKMlkDgN7YAV-s,23483
74
74
  gwpy/plot/bode.py,sha256=EfC8wl0_xYriL12m-jZdeDHBJ0tt2GJ6rYNuHQlkRsQ,8733
75
75
  gwpy/plot/colorbar.py,sha256=4-0Lci1KhpEwdCo1L6jWbZ0ErjKxZ61Zt1uokrlM44M,7041
76
76
  gwpy/plot/colors.py,sha256=qmrM4u4Ir8OB2jkHUG3ZnriUlp1sdAB_IAb0H9mhC_A,3367
@@ -79,13 +79,13 @@ gwpy/plot/legend.py,sha256=mD07CTmv0rF171olt6ObsK9k4i-TxKacHQ4kBRzdb_0,1635
79
79
  gwpy/plot/log.py,sha256=Sn1BJRB5ml0oqE8UXBphb7MDhwu7ru-UtlvG4i5qTyE,5030
80
80
  gwpy/plot/plot.py,sha256=9aAdInsN5Aoa06VIxhVkCTbi53fSpdSEOrbRvErvsZ8,22080
81
81
  gwpy/plot/rc.py,sha256=cK8pOzcvuRsMv_16k9Hl2mkn_dk8FaRrIVhtNhBzyp8,4816
82
- gwpy/plot/segments.py,sha256=HhjQEv8G00Rp7iRun98CGIk91-c_vAvEsv-uch3CbyU,16943
82
+ gwpy/plot/segments.py,sha256=vRC1kj5gUXb6qCWmS-ijNS84To33BLrk2MW0hABlprg,16943
83
83
  gwpy/plot/tex.py,sha256=W1EPjdd9T6H2irDsbbbNNLL_CqBcYRTcAWx9OlsCcFg,4869
84
84
  gwpy/plot/text.py,sha256=SPVO-QQe6B6SaPiycS38EwZGmVbwQfxQfQ1cjbGeOiI,1989
85
85
  gwpy/plot/units.py,sha256=D0bWwYIAg-QuWpsNvze9UFuHoBX9p81B-Dlj5kbDxRQ,1825
86
86
  gwpy/plot/utils.py,sha256=uRz9Gqy_2Mxk-2Nvw9wy-kIoAKUDeSDALMRkSziQyZY,1670
87
87
  gwpy/plot/tests/__init__.py,sha256=k6hQsfBzktDEYb9gGfy9DKD5Cj2GCQmnFBnXIR9yynM,740
88
- gwpy/plot/tests/test_axes.py,sha256=URs8Nvg7WHqDWYjTTSz169hhCM-aE3P9nRa4n9qwolk,11736
88
+ gwpy/plot/tests/test_axes.py,sha256=09OVkNJBNpgm2qw24O8x1_XEC6uW_7g_8v6T2PrL9LA,11783
89
89
  gwpy/plot/tests/test_bode.py,sha256=Noa55V7WxiE7C__RdNb2xcbeapFeuKP9gt0cmnT9eeg,3351
90
90
  gwpy/plot/tests/test_colors.py,sha256=m29kKi0tptiY_dv3FnUzxPAlI2qHn1K3inG2382cDoU,1881
91
91
  gwpy/plot/tests/test_gps.py,sha256=l2FhNOpR1u6NxczaaDf1Wq_moOPFVFC1wQiyX-6jvJQ,5505
@@ -97,11 +97,11 @@ gwpy/plot/tests/test_tex.py,sha256=nrmwfpBMuoE9PoCx_lbpCjT-fTHWAlYmcgmJIcKuPro,2
97
97
  gwpy/plot/tests/test_text.py,sha256=9gITSsIKiERP4_iN2iB6K-mUL4PRXvL06jon2zUoSNw,1291
98
98
  gwpy/plot/tests/test_utils.py,sha256=_PgJNR3Ly6T26ixCwXMm1NmjAqPhPvHL2r2iza3VgfY,1615
99
99
  gwpy/plot/tests/utils.py,sha256=_G0yoG1qJ1iz2Iz541_dqSyWQz3rJLOwKbXeZDPL55c,1925
100
- gwpy/segments/__init__.py,sha256=9h0gedE_OjlNqWmwibTNLSsjqTokbXVKYMfMKSaKocQ,1194
100
+ gwpy/segments/__init__.py,sha256=UTMjSrYFv6PxIQU3KK5pnoFkF8aSaM5yqi97QqmGcFM,1194
101
101
  gwpy/segments/flag.py,sha256=VzlTMv1Cyy3iCV3zj1PV4RIEMSXivr6X_SR3Hz4dYT8,53042
102
- gwpy/segments/segments.py,sha256=bozaq1fYPO_a4MxwU35Iaaf_t3d59K1jtISvoMwItxg,9042
102
+ gwpy/segments/segments.py,sha256=d9AqBn-GrxzflNllE-EXzqppnRBP69F6d3iDYRNY1Xw,9042
103
103
  gwpy/segments/io/__init__.py,sha256=ObnJsqSk_Y8qD5-OVmYRcdtDbZcm5pdEu0kRoI9vHtA,1005
104
- gwpy/segments/io/hdf5.py,sha256=gH0xKxLBx4OQlUjP2Bvsyt02SKY8dVFG6D6poKWBQ4s,11048
104
+ gwpy/segments/io/hdf5.py,sha256=qHQlY4NxaJDHxRcu1K1siHfZYZNvwLI28RzSS746ttU,11048
105
105
  gwpy/segments/io/json.py,sha256=hpGZAuM73UeUK3e4DyIrNQmxujOA7wDGc5QY4vf8F2k,3036
106
106
  gwpy/segments/io/ligolw.py,sha256=nYaHjlge1D_Bz4m62dLZUKPBJEo_jnq5M6oD4tkq5qA,4907
107
107
  gwpy/segments/io/segwizard.py,sha256=JVBFcBBJlFi1E8WBLa7nkz-9vlKVu_bYlprVT50nbqE,5007
@@ -170,7 +170,7 @@ gwpy/table/tests/test_table.py,sha256=HthR885GqcBQSB8vD5Q6sOSPHojo8m5fa8HPeFx5m6
170
170
  gwpy/testing/__init__.py,sha256=_dtbhI4nOnnUPu8hLZUTUZxgPCq2KB2ATZiLEns9ybw,745
171
171
  gwpy/testing/errors.py,sha256=tITVQ2o3mP7VICKK2T0d9xfZeV0JwNMWaarARVSpCm0,2820
172
172
  gwpy/testing/fixtures.py,sha256=pu0sA3l3rcs0osVj97C0lmENYDa-1SF5B44uXey5cb0,3344
173
- gwpy/testing/marks.py,sha256=BIZ2Q4yfJSS9YQWCWSOwt66JKFnrhbx5XPXbvwfuFyo,1480
173
+ gwpy/testing/marks.py,sha256=dOZJCaq3ZMMWLB1Pq6Go2sn5eWC6br0t6vqioqhVDlI,1498
174
174
  gwpy/testing/mocks.py,sha256=3GoAT1z-1LJXNuoskCmpSi3GTqAa_quO7Tm5pyns0SA,4131
175
175
  gwpy/testing/utils.py,sha256=yb6HFq_bmqlXiYkM1f-dzKkMBqBtipFhdQwSpI3yDSU,12058
176
176
  gwpy/testing/data/H1-LDAS_STRAIN-968654552-10.xml.gz,sha256=sEScnAbXjkcGtlY3GN_x0ual25EUWRaAGK31hvLOpW4,58124
@@ -185,7 +185,7 @@ gwpy/time/tests/__init__.py,sha256=EF4G-IubXcMA_-mucDvcpjqM-ITyp0G_3cvO0VeYdxI,7
185
185
  gwpy/time/tests/test_main.py,sha256=3QV6kTWQ6AkGCYmqxfw-JfAoiR6VXzyrM__7XeyQvTI,1362
186
186
  gwpy/time/tests/test_time.py,sha256=Cj3Yv0N4MYi9C5fzuXPgR6rge6aKgfIbnhUwzeKDRDM,4402
187
187
  gwpy/timeseries/__init__.py,sha256=e-ncacmSPxUUmya8xlQ-Govk4ptr-0TVp26vMIPmxTU,1134
188
- gwpy/timeseries/core.py,sha256=DOGeO3kjk7twinS8aDDwgNKIZLYrGtnfCPOm05KKxi8,57804
188
+ gwpy/timeseries/core.py,sha256=lYc4b6U88K3ur_O4Ld5_S8Xsyhmph-gI_HADJpQTR_A,57908
189
189
  gwpy/timeseries/statevector.py,sha256=9yAlpBbR8eWDMK6PTpuGUAwAGO1tyE07SohfU2DJUJs,35891
190
190
  gwpy/timeseries/timeseries.py,sha256=lg28EEMASBR2IS_4gJfcU0j3uo7tEfFEVjK-Uv64ziw,87809
191
191
  gwpy/timeseries/io/__init__.py,sha256=qviFCaeTVeTZ7ZiIQKQyU1xxh76Ba60yE9vVtm9y1bY,938
@@ -193,10 +193,10 @@ gwpy/timeseries/io/ascii.py,sha256=M05FDTCa06KLJ1Sb0jDh3NxrmMboV73j38nyMacVPkQ,1
193
193
  gwpy/timeseries/io/cache.py,sha256=xN-lSjsBy7Heo_9X7FVRYneA4HaEMpLs4Q1Zc7lJSoA,2794
194
194
  gwpy/timeseries/io/core.py,sha256=1hp7f7UgcEEqw1T9Oa0DGMMg6uyKJih8h4A3rNkx0SQ,4692
195
195
  gwpy/timeseries/io/hdf5.py,sha256=eGiqWQIdD3Lu-74F6qiw9dKq6GSjBHoroanNsdzcy2E,4214
196
- gwpy/timeseries/io/losc.py,sha256=QwBdN-E2CU7L27QRg80RLM1U3TwJ_4abpudci3STt8M,9419
196
+ gwpy/timeseries/io/losc.py,sha256=_ZpfjfkVFyOsxLdqrhvGl-QQA_3AknXD_jAfffehveg,9613
197
197
  gwpy/timeseries/io/nds2.py,sha256=TlUQgKyHzhRQ9kzwEDxt5zgAWAo8viLkokM4P50n3Xk,7811
198
198
  gwpy/timeseries/io/wav.py,sha256=E_EjIa43nzpps18x-ekollMvgPbrKyqt1v_VAXicbPQ,3595
199
- gwpy/timeseries/io/gwf/__init__.py,sha256=C1HRu4OVns8pTPQG7hLTZFxqIS7PZnt1cLmKKf5m4OQ,13156
199
+ gwpy/timeseries/io/gwf/__init__.py,sha256=R1jtuqAw82Vp1LwEFg1hXaok1NEotldCSpHs9QuDZqc,13156
200
200
  gwpy/timeseries/io/gwf/framecpp.py,sha256=sFrsWr5uiE5p7wym-u3oMPsKih4OckZoXLdnTLKbfS0,17223
201
201
  gwpy/timeseries/io/gwf/framel.py,sha256=UQuydhR9reAgSmYSI0lqHJ7120gDyXHoImaQUjXz0mc,4776
202
202
  gwpy/timeseries/io/gwf/lalframe.py,sha256=zXaDxnSWW9d3xdkwm8hQLnQAN_hEmTuZ4ibsJYndBzw,7729
@@ -207,7 +207,7 @@ gwpy/timeseries/tests/test_io_gwf_framecpp.py,sha256=S0MgBEZ2_o6MDrBfAZbj4SWk3LD
207
207
  gwpy/timeseries/tests/test_io_gwf_lalframe.py,sha256=iD9m01menvAgUXoGJnX7Xv-O5t3mgX2C2N2nRN-gitY,5479
208
208
  gwpy/timeseries/tests/test_io_losc.py,sha256=E_bLM3bc4TO2-cMOEF3vDG8cr6TKgQwPY-EBN6DzyUg,1833
209
209
  gwpy/timeseries/tests/test_statevector.py,sha256=-wmDd1GLEXeR1vWa2jixndLyx0WL4eYJLU-BlcEA9JE,13768
210
- gwpy/timeseries/tests/test_timeseries.py,sha256=fa_6tnHEJTgqcDbLgLMsSa8dmUwxq27frWQLj0bURrk,57347
210
+ gwpy/timeseries/tests/test_timeseries.py,sha256=OkkOLkfc6aYMDhQOhS7Ge8Nj9LEcSSz_FmuzDzv-R-M,57395
211
211
  gwpy/types/__init__.py,sha256=JIpXRdi0av2V0BkynOwUhijxQShSAqE5gLrowJ6Nckg,1159
212
212
  gwpy/types/array.py,sha256=D4EwGC80hKFhrRuFD3xnHaqJR7jdT88v5nik-3o-RU0,15595
213
213
  gwpy/types/array2d.py,sha256=NtwW5T6PWHiAS6kFYUfF8fm3WE4qQdPbXN01iaBET0k,12367
@@ -245,9 +245,9 @@ gwpy/utils/tests/test_mp.py,sha256=kZXUTFqCPi4wvCkGgSSk8XrG9pHPGakPNuNUykgSp-k,2
245
245
  gwpy/utils/tests/test_shell.py,sha256=arHzI96Rmje5JPhbQ33vEN0ByRh8qwRVqfl4-jzLUv4,2334
246
246
  gwpy/utils/tests/test_sphinx_ex2rst.py,sha256=KcIBPWTsPp00iTdYT6bZ8g2F7bN66PaX5uLJlcWu0J0,2263
247
247
  gwpy/utils/tests/test_sphinx_zenodo.py,sha256=GL-3R7yFxF6ZQLuVhJI74djdgvE9sX4Q0atdHi3SyiU,5237
248
- gwpy-3.0.10.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
249
- gwpy-3.0.10.dist-info/METADATA,sha256=5HAN-1AH7-zngu1o2VZrBVOjK0sHGA5gKNPE71IoB5U,4866
250
- gwpy-3.0.10.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
251
- gwpy-3.0.10.dist-info/entry_points.txt,sha256=pcO_XRknobU7b1uuxFb3nTdGMk8FrHQsWBOflnj6Ev8,54
252
- gwpy-3.0.10.dist-info/top_level.txt,sha256=0XRdsSjFdBe_QF_Qst002-CCxuuO13ag2n-11nBpZ4E,5
253
- gwpy-3.0.10.dist-info/RECORD,,
248
+ gwpy-3.0.12.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
249
+ gwpy-3.0.12.dist-info/METADATA,sha256=wEde_w2N08kEt3OoVX7T_72gdht3rS2G3rODfl7-wj0,4879
250
+ gwpy-3.0.12.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
251
+ gwpy-3.0.12.dist-info/entry_points.txt,sha256=pcO_XRknobU7b1uuxFb3nTdGMk8FrHQsWBOflnj6Ev8,54
252
+ gwpy-3.0.12.dist-info/top_level.txt,sha256=0XRdsSjFdBe_QF_Qst002-CCxuuO13ag2n-11nBpZ4E,5
253
+ gwpy-3.0.12.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.0.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes