gwpy 3.0.7__tar.gz → 3.0.9__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.

Potentially problematic release.


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

Files changed (373) hide show
  1. {gwpy-3.0.7 → gwpy-3.0.9}/.codeclimate.yml +0 -1
  2. {gwpy-3.0.7 → gwpy-3.0.9}/.github/workflows/conda.yml +5 -5
  3. {gwpy-3.0.7 → gwpy-3.0.9}/.github/workflows/dependencies.yml +5 -5
  4. {gwpy-3.0.7 → gwpy-3.0.9}/.github/workflows/dist.yml +9 -7
  5. {gwpy-3.0.7 → gwpy-3.0.9}/.github/workflows/lint.yml +4 -4
  6. gwpy-3.0.9/.github/workflows/release.yml +54 -0
  7. {gwpy-3.0.7 → gwpy-3.0.9}/PKG-INFO +8 -7
  8. gwpy-3.0.9/docs/citing.rst.in +92 -0
  9. {gwpy-3.0.7 → gwpy-3.0.9}/docs/cli/examples.ini +12 -19
  10. {gwpy-3.0.7 → gwpy-3.0.9}/docs/conf.py +4 -18
  11. {gwpy-3.0.7 → gwpy-3.0.9}/docs/install.rst +1 -0
  12. {gwpy-3.0.7 → gwpy-3.0.9}/docs/overview.rst +1 -1
  13. {gwpy-3.0.7 → gwpy-3.0.9}/docs/references.rst +6 -3
  14. {gwpy-3.0.7 → gwpy-3.0.9}/docs/timeseries/datafind.rst +80 -77
  15. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/_version.py +2 -2
  16. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/astro/range.py +3 -3
  17. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/astro/tests/test_range.py +4 -5
  18. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/qtransform.py +1 -1
  19. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/tests/test_units.py +3 -0
  20. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/units.py +12 -3
  21. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/frequencyseries.py +13 -4
  22. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/cache.py +24 -1
  23. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/datafind.py +1 -0
  24. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/ffldatafind.py +27 -16
  25. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_ffldatafind.py +10 -3
  26. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/gps.py +7 -2
  27. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_gps.py +1 -0
  28. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_tex.py +3 -0
  29. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tex.py +8 -6
  30. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/flag.py +14 -3
  31. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/tests/test_flag.py +53 -0
  32. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/filter_design.py +4 -3
  33. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_lal.py +1 -1
  34. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_coherence.py +9 -9
  35. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_filter_design.py +3 -3
  36. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/tests/test_spectrogram.py +2 -2
  37. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/fixtures.py +2 -19
  38. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/utils.py +43 -19
  39. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/time/_tconvert.py +19 -33
  40. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/time/tests/test_time.py +4 -45
  41. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/core.py +4 -2
  42. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/cache.py +47 -29
  43. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/gwf/framecpp.py +11 -2
  44. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/gwf/lalframe.py +21 -0
  45. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/losc.py +8 -2
  46. gwpy-3.0.9/gwpy/timeseries/tests/test_io_cache.py +74 -0
  47. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/test_io_gwf_lalframe.py +17 -0
  48. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/test_timeseries.py +78 -36
  49. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/array.py +16 -3
  50. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/index.py +7 -5
  51. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/sliceutils.py +5 -1
  52. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/tests/test_array2d.py +4 -0
  53. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/tests/test_series.py +26 -0
  54. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/shell.py +2 -2
  55. gwpy-3.0.9/gwpy/utils/sphinx/zenodo.py +162 -0
  56. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_shell.py +2 -2
  57. gwpy-3.0.9/gwpy/utils/tests/test_sphinx_zenodo.py +175 -0
  58. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy.egg-info/PKG-INFO +8 -7
  59. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy.egg-info/SOURCES.txt +4 -2
  60. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy.egg-info/requires.txt +8 -8
  61. {gwpy-3.0.7 → gwpy-3.0.9}/pyproject.toml +7 -9
  62. {gwpy-3.0.7 → gwpy-3.0.9}/setup_utils.py +0 -1
  63. gwpy-3.0.7/docs/citing.rst.in +0 -89
  64. gwpy-3.0.7/gwpy/utils/sphinx/epydoc.py +0 -104
  65. gwpy-3.0.7/gwpy/utils/sphinx/zenodo.py +0 -105
  66. {gwpy-3.0.7 → gwpy-3.0.9}/.codecov.yml +0 -0
  67. {gwpy-3.0.7 → gwpy-3.0.9}/.flake8 +0 -0
  68. {gwpy-3.0.7 → gwpy-3.0.9}/.gitattributes +0 -0
  69. {gwpy-3.0.7 → gwpy-3.0.9}/.gitignore +0 -0
  70. {gwpy-3.0.7 → gwpy-3.0.9}/.pep8speaks.yml +0 -0
  71. {gwpy-3.0.7 → gwpy-3.0.9}/CODE_OF_CONDUCT.rst +0 -0
  72. {gwpy-3.0.7 → gwpy-3.0.9}/CONTRIBUTING.md +0 -0
  73. {gwpy-3.0.7 → gwpy-3.0.9}/LICENSE +0 -0
  74. {gwpy-3.0.7 → gwpy-3.0.9}/MANIFEST.in +0 -0
  75. {gwpy-3.0.7 → gwpy-3.0.9}/README.md +0 -0
  76. {gwpy-3.0.7 → gwpy-3.0.9}/docs/Makefile +0 -0
  77. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_static/css/gwpy-sphinx.css +0 -0
  78. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_static/favicon.png +0 -0
  79. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_static/gwpy_white_24.png +0 -0
  80. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_templates/autoclass/class.rst +0 -0
  81. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_templates/autosummary/base.rst +0 -0
  82. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_templates/autosummary/class.rst +0 -0
  83. {gwpy-3.0.7 → gwpy-3.0.9}/docs/_templates/autosummary/module.rst +0 -0
  84. {gwpy-3.0.7 → gwpy-3.0.9}/docs/astro/index.rst +0 -0
  85. {gwpy-3.0.7 → gwpy-3.0.9}/docs/cli/index.rst +0 -0
  86. {gwpy-3.0.7 → gwpy-3.0.9}/docs/detector/channel.rst +0 -0
  87. {gwpy-3.0.7 → gwpy-3.0.9}/docs/dev/release.rst +0 -0
  88. {gwpy-3.0.7 → gwpy-3.0.9}/docs/env.rst +0 -0
  89. {gwpy-3.0.7 → gwpy-3.0.9}/docs/examples/table/H1-LDAS_STRAIN-968654552-10.xml.gz +0 -0
  90. {gwpy-3.0.7 → gwpy-3.0.9}/docs/external/framecpp.rst +0 -0
  91. {gwpy-3.0.7 → gwpy-3.0.9}/docs/external/framel.rst +0 -0
  92. {gwpy-3.0.7 → gwpy-3.0.9}/docs/external/lalsuite.rst +0 -0
  93. {gwpy-3.0.7 → gwpy-3.0.9}/docs/external/nds2.rst +0 -0
  94. {gwpy-3.0.7 → gwpy-3.0.9}/docs/gwpy-docs-logo.png +0 -0
  95. {gwpy-3.0.7 → gwpy-3.0.9}/docs/index.rst +0 -0
  96. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/colorbars.rst +0 -0
  97. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/colors.rst +0 -0
  98. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/filter.rst +0 -0
  99. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/gps.rst +0 -0
  100. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/index.rst +0 -0
  101. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/legend.rst +0 -0
  102. {gwpy-3.0.7 → gwpy-3.0.9}/docs/plot/log.rst +0 -0
  103. {gwpy-3.0.7 → gwpy-3.0.9}/docs/segments/dqsegdb.rst +0 -0
  104. {gwpy-3.0.7 → gwpy-3.0.9}/docs/segments/index.rst +0 -0
  105. {gwpy-3.0.7 → gwpy-3.0.9}/docs/segments/io.rst +0 -0
  106. {gwpy-3.0.7 → gwpy-3.0.9}/docs/segments/thresholding.rst +0 -0
  107. {gwpy-3.0.7 → gwpy-3.0.9}/docs/signal/index.rst +0 -0
  108. {gwpy-3.0.7 → gwpy-3.0.9}/docs/spectrogram/index.rst +0 -0
  109. {gwpy-3.0.7 → gwpy-3.0.9}/docs/spectrum/filtering.rst +0 -0
  110. {gwpy-3.0.7 → gwpy-3.0.9}/docs/spectrum/index.rst +0 -0
  111. {gwpy-3.0.7 → gwpy-3.0.9}/docs/spectrum/io.rst +0 -0
  112. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/H1-LDAS_STRAIN-968654552-10.xml.gz +0 -0
  113. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/filter.rst +0 -0
  114. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/histogram.rst +0 -0
  115. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/index.rst +0 -0
  116. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/io.rst +0 -0
  117. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/plot.rst +0 -0
  118. {gwpy-3.0.7 → gwpy-3.0.9}/docs/table/rate.rst +0 -0
  119. {gwpy-3.0.7 → gwpy-3.0.9}/docs/time/index.rst +0 -0
  120. {gwpy-3.0.7 → gwpy-3.0.9}/docs/timeseries/index.rst +0 -0
  121. {gwpy-3.0.7 → gwpy-3.0.9}/docs/timeseries/io.rst +0 -0
  122. {gwpy-3.0.7 → gwpy-3.0.9}/docs/timeseries/opendata.rst +0 -0
  123. {gwpy-3.0.7 → gwpy-3.0.9}/docs/timeseries/plot.rst +0 -0
  124. {gwpy-3.0.7 → gwpy-3.0.9}/docs/timeseries/statevector.rst +0 -0
  125. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/coherence.py +0 -0
  126. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/hoff.py +0 -0
  127. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/index.rst +0 -0
  128. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/inject.py +0 -0
  129. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/percentiles.py +0 -0
  130. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/rayleigh.py +0 -0
  131. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/transfer_function.py +0 -0
  132. {gwpy-3.0.7 → gwpy-3.0.9}/examples/frequencyseries/variance.py +0 -0
  133. {gwpy-3.0.7 → gwpy-3.0.9}/examples/miscellaneous/index.rst +0 -0
  134. {gwpy-3.0.7 → gwpy-3.0.9}/examples/miscellaneous/open-data-spectrogram.py +0 -0
  135. {gwpy-3.0.7 → gwpy-3.0.9}/examples/miscellaneous/range-spectrogram.py +0 -0
  136. {gwpy-3.0.7 → gwpy-3.0.9}/examples/miscellaneous/range-timeseries.py +0 -0
  137. {gwpy-3.0.7 → gwpy-3.0.9}/examples/segments/index.rst +0 -0
  138. {gwpy-3.0.7 → gwpy-3.0.9}/examples/segments/open-data.py +0 -0
  139. {gwpy-3.0.7 → gwpy-3.0.9}/examples/signal/gw150914.py +0 -0
  140. {gwpy-3.0.7 → gwpy-3.0.9}/examples/signal/index.rst +0 -0
  141. {gwpy-3.0.7 → gwpy-3.0.9}/examples/signal/qscan.py +0 -0
  142. {gwpy-3.0.7 → gwpy-3.0.9}/examples/spectrogram/coherence.py +0 -0
  143. {gwpy-3.0.7 → gwpy-3.0.9}/examples/spectrogram/index.rst +0 -0
  144. {gwpy-3.0.7 → gwpy-3.0.9}/examples/spectrogram/plot.py +0 -0
  145. {gwpy-3.0.7 → gwpy-3.0.9}/examples/spectrogram/ratio.py +0 -0
  146. {gwpy-3.0.7 → gwpy-3.0.9}/examples/spectrogram/rayleigh.py +0 -0
  147. {gwpy-3.0.7 → gwpy-3.0.9}/examples/spectrogram/spectrogram2.py +0 -0
  148. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/H1-LDAS_STRAIN-968654552-10.xml.gz +0 -0
  149. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/histogram.py +0 -0
  150. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/index.rst +0 -0
  151. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/rate.py +0 -0
  152. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/rate_binned.py +0 -0
  153. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/scatter.py +0 -0
  154. {gwpy-3.0.7 → gwpy-3.0.9}/examples/table/tiles.py +0 -0
  155. {gwpy-3.0.7 → gwpy-3.0.9}/examples/test_examples.py +0 -0
  156. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/blrms.py +0 -0
  157. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/correlate.py +0 -0
  158. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/filter.py +0 -0
  159. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/index.rst +0 -0
  160. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/inject.py +0 -0
  161. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/public.py +0 -0
  162. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/pycbc-snr.py +0 -0
  163. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/qscan.py +0 -0
  164. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/statevector.py +0 -0
  165. {gwpy-3.0.7 → gwpy-3.0.9}/examples/timeseries/whiten.py +0 -0
  166. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/__init__.py +0 -0
  167. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/astro/__init__.py +0 -0
  168. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/astro/tests/__init__.py +0 -0
  169. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/__init__.py +0 -0
  170. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/cliproduct.py +0 -0
  171. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/coherence.py +0 -0
  172. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/coherencegram.py +0 -0
  173. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/gwpy_plot.py +0 -0
  174. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/spectrogram.py +0 -0
  175. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/spectrum.py +0 -0
  176. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/__init__.py +0 -0
  177. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/base.py +0 -0
  178. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_coherence.py +0 -0
  179. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_coherencegram.py +0 -0
  180. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_gwpy_plot.py +0 -0
  181. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_qtransform.py +0 -0
  182. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_spectrogram.py +0 -0
  183. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_spectrum.py +0 -0
  184. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_timeseries.py +0 -0
  185. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/tests/test_transferfunction.py +0 -0
  186. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/timeseries.py +0 -0
  187. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/cli/transferfunction.py +0 -0
  188. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/conftest.py +0 -0
  189. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/__init__.py +0 -0
  190. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/channel.py +0 -0
  191. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/io/__init__.py +0 -0
  192. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/io/cis.py +0 -0
  193. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/io/clf.py +0 -0
  194. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/io/omega.py +0 -0
  195. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/tests/__init__.py +0 -0
  196. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/detector/tests/test_channel.py +0 -0
  197. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/__init__.py +0 -0
  198. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/_fdcommon.py +0 -0
  199. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/hist.py +0 -0
  200. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/io/__init__.py +0 -0
  201. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/io/ascii.py +0 -0
  202. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/io/hdf5.py +0 -0
  203. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/io/ligolw.py +0 -0
  204. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/tests/__init__.py +0 -0
  205. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/tests/test_frequencyseries.py +0 -0
  206. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/frequencyseries/tests/test_hist.py +0 -0
  207. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/__init__.py +0 -0
  208. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/_framecpp.py +0 -0
  209. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/gwf.py +0 -0
  210. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/hdf5.py +0 -0
  211. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/kerberos.py +0 -0
  212. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/ligolw.py +0 -0
  213. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/mp.py +0 -0
  214. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/nds2.py +0 -0
  215. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/registry.py +0 -0
  216. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/__init__.py +0 -0
  217. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_cache.py +0 -0
  218. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_datafind.py +0 -0
  219. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_gwf.py +0 -0
  220. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_kerberos.py +0 -0
  221. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_ligolw.py +0 -0
  222. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_mp.py +0 -0
  223. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_nds2.py +0 -0
  224. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/tests/test_utils.py +0 -0
  225. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/io/utils.py +0 -0
  226. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/__init__.py +0 -0
  227. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/axes.py +0 -0
  228. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/bode.py +0 -0
  229. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/colorbar.py +0 -0
  230. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/colors.py +0 -0
  231. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/legend.py +0 -0
  232. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/log.py +0 -0
  233. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/plot.py +0 -0
  234. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/rc.py +0 -0
  235. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/segments.py +0 -0
  236. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/__init__.py +0 -0
  237. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_axes.py +0 -0
  238. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_bode.py +0 -0
  239. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_colors.py +0 -0
  240. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_log.py +0 -0
  241. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_plot.py +0 -0
  242. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_rc.py +0 -0
  243. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_segments.py +0 -0
  244. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_text.py +0 -0
  245. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/test_utils.py +0 -0
  246. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/tests/utils.py +0 -0
  247. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/text.py +0 -0
  248. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/units.py +0 -0
  249. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/plot/utils.py +0 -0
  250. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/__init__.py +0 -0
  251. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/io/__init__.py +0 -0
  252. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/io/hdf5.py +0 -0
  253. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/io/json.py +0 -0
  254. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/io/ligolw.py +0 -0
  255. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/io/segwizard.py +0 -0
  256. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/segments.py +0 -0
  257. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/tests/__init__.py +0 -0
  258. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/segments/tests/test_segments.py +0 -0
  259. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/__init__.py +0 -0
  260. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/fft.py +0 -0
  261. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/qtransform.py +0 -0
  262. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/__init__.py +0 -0
  263. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_median_mean.py +0 -0
  264. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_pycbc.py +0 -0
  265. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_registry.py +0 -0
  266. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_scipy.py +0 -0
  267. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_ui.py +0 -0
  268. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/spectral/_utils.py +0 -0
  269. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/__init__.py +0 -0
  270. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_qtransform.py +0 -0
  271. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_lal.py +0 -0
  272. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_median_mean.py +0 -0
  273. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_pycbc.py +0 -0
  274. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_registry.py +0 -0
  275. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_scipy.py +0 -0
  276. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_ui.py +0 -0
  277. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_spectral_utils.py +0 -0
  278. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/tests/test_window.py +0 -0
  279. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/signal/window.py +0 -0
  280. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/__init__.py +0 -0
  281. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/coherence.py +0 -0
  282. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/io/__init__.py +0 -0
  283. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/io/hdf5.py +0 -0
  284. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/spectrogram.py +0 -0
  285. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/spectrogram/tests/__init__.py +0 -0
  286. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/__init__.py +0 -0
  287. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/filter.py +0 -0
  288. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/filters.py +0 -0
  289. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/gravityspy.py +0 -0
  290. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/__init__.py +0 -0
  291. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/cwb.py +0 -0
  292. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/fetch.py +0 -0
  293. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/gravityspy.py +0 -0
  294. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/gstlal.py +0 -0
  295. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/gwf.py +0 -0
  296. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/hacr.py +0 -0
  297. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/ligolw.py +0 -0
  298. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/losc.py +0 -0
  299. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/omega.py +0 -0
  300. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/omicron.py +0 -0
  301. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/pycbc.py +0 -0
  302. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/root.py +0 -0
  303. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/snax.py +0 -0
  304. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/sql.py +0 -0
  305. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/io/utils.py +0 -0
  306. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/table.py +0 -0
  307. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/tests/__init__.py +0 -0
  308. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/tests/test_gravityspy.py +0 -0
  309. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/tests/test_io_gstlal.py +0 -0
  310. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/tests/test_io_ligolw.py +0 -0
  311. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/tests/test_io_pycbc.py +0 -0
  312. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/table/tests/test_table.py +0 -0
  313. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/__init__.py +0 -0
  314. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/data/H1-LDAS_STRAIN-968654552-10.xml.gz +0 -0
  315. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/data/HLV-HW100916-968654552-1.gwf +0 -0
  316. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/data/HLV-HW100916-968654552-1.hdf +0 -0
  317. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/data/X1-GWPY_TEST_SEGMENTS-0-10.txt +0 -0
  318. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/data/X1-GWPY_TEST_SEGMENTS-0-10.xml.gz +0 -0
  319. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/errors.py +0 -0
  320. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/marks.py +0 -0
  321. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/testing/mocks.py +0 -0
  322. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/time/__init__.py +0 -0
  323. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/time/__main__.py +0 -0
  324. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/time/tests/__init__.py +0 -0
  325. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/time/tests/test_main.py +0 -0
  326. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/__init__.py +0 -0
  327. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/__init__.py +0 -0
  328. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/ascii.py +0 -0
  329. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/core.py +0 -0
  330. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/gwf/__init__.py +0 -0
  331. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/gwf/framel.py +0 -0
  332. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/hdf5.py +0 -0
  333. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/nds2.py +0 -0
  334. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/io/wav.py +0 -0
  335. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/statevector.py +0 -0
  336. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/__init__.py +0 -0
  337. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/test_core.py +0 -0
  338. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/test_io_gwf_framecpp.py +0 -0
  339. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/test_io_losc.py +0 -0
  340. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/tests/test_statevector.py +0 -0
  341. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/timeseries/timeseries.py +0 -0
  342. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/__init__.py +0 -0
  343. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/array2d.py +0 -0
  344. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/io/__init__.py +0 -0
  345. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/io/ascii.py +0 -0
  346. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/io/hdf5.py +0 -0
  347. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/io/ligolw.py +0 -0
  348. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/series.py +0 -0
  349. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/tests/__init__.py +0 -0
  350. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/tests/test_array.py +0 -0
  351. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/types/tests/test_index.py +0 -0
  352. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/__init__.py +0 -0
  353. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/decorators.py +0 -0
  354. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/enum.py +0 -0
  355. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/env.py +0 -0
  356. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/lal.py +0 -0
  357. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/misc.py +0 -0
  358. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/mp.py +0 -0
  359. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/progress.py +0 -0
  360. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/sphinx/__init__.py +0 -0
  361. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/sphinx/ex2rst.py +0 -0
  362. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/__init__.py +0 -0
  363. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_decorators.py +0 -0
  364. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_enum.py +0 -0
  365. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_env.py +0 -0
  366. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_lal.py +0 -0
  367. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_misc.py +0 -0
  368. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_mp.py +0 -0
  369. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy/utils/tests/test_sphinx_ex2rst.py +0 -0
  370. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy.egg-info/dependency_links.txt +0 -0
  371. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy.egg-info/entry_points.txt +0 -0
  372. {gwpy-3.0.7 → gwpy-3.0.9}/gwpy.egg-info/top_level.txt +0 -0
  373. {gwpy-3.0.7 → gwpy-3.0.9}/setup.cfg +0 -0
@@ -37,4 +37,3 @@ exclude_paths:
37
37
  - "examples/*"
38
38
  - "gwpy/_version.py"
39
39
  - "**/tests/"
40
- - "gwpy/utils/sphinx/epydoc.py"
@@ -51,12 +51,12 @@ jobs:
51
51
 
52
52
  steps:
53
53
  - name: Get source code
54
- uses: actions/checkout@v2
54
+ uses: actions/checkout@v4
55
55
  with:
56
56
  fetch-depth: 0
57
57
 
58
58
  - name: Cache conda packages
59
- uses: actions/cache@v2
59
+ uses: actions/cache@v3
60
60
  env:
61
61
  # increment to reset cache
62
62
  CACHE_NUMBER: 0
@@ -67,7 +67,7 @@ jobs:
67
67
 
68
68
  - name: Cache apt (Linux)
69
69
  if: matrix.os == 'Ubuntu'
70
- uses: actions/cache@v2
70
+ uses: actions/cache@v3
71
71
  env:
72
72
  # increment to reset cache
73
73
  CACHE_NUMBER: 0
@@ -148,7 +148,7 @@ jobs:
148
148
  sudo cvmfs_config probe
149
149
 
150
150
  - name: Install GWpy
151
- run: python -m pip install .[dev] --no-build-isolation -vv
151
+ run: python -m pip install .[dev,test] --no-build-isolation -vv
152
152
 
153
153
  - name: Package list
154
154
  run: conda list --name test
@@ -167,7 +167,7 @@ jobs:
167
167
 
168
168
  - name: Upload test results
169
169
  if: always()
170
- uses: actions/upload-artifact@v2
170
+ uses: actions/upload-artifact@v3
171
171
  with:
172
172
  name: pytest-conda-${{ matrix.os }}-${{ matrix.python-version }}
173
173
  path: pytest.xml
@@ -45,7 +45,7 @@ jobs:
45
45
  extras: "test"
46
46
  pip-opts: "--upgrade-strategy=only-if-needed"
47
47
  - name: "Experimental"
48
- python-version: "3.9"
48
+ python-version: "3.11"
49
49
  experimental: true
50
50
  extras: "test,dev"
51
51
  pip-opts: "--upgrade --upgrade-strategy=eager --pre"
@@ -54,12 +54,12 @@ jobs:
54
54
 
55
55
  steps:
56
56
  - name: Get source code
57
- uses: actions/checkout@v2
57
+ uses: actions/checkout@v4
58
58
  with:
59
59
  fetch-depth: 0
60
60
 
61
61
  - name: Set up Python ${{ matrix.python-version }}
62
- uses: actions/setup-python@v2
62
+ uses: actions/setup-python@v4
63
63
  with:
64
64
  python-version: ${{ matrix.python-version }}
65
65
 
@@ -97,14 +97,14 @@ jobs:
97
97
  run: python -m coverage report --show-missing
98
98
 
99
99
  - name: Publish coverage to Codecov
100
- uses: codecov/codecov-action@v1.2.1
100
+ uses: codecov/codecov-action@v3
101
101
  with:
102
102
  files: coverage.xml
103
103
  flags: ${{ runner.os }},python${{ matrix.python-version }}
104
104
 
105
105
  - name: Upload test results
106
106
  if: always()
107
- uses: actions/upload-artifact@v2
107
+ uses: actions/upload-artifact@v3
108
108
  with:
109
109
  name: pytest-experimental-${{ matrix.os }}-${{ matrix.python-version }}
110
110
  path: pytest.xml
@@ -37,12 +37,12 @@ jobs:
37
37
 
38
38
  steps:
39
39
  - name: Get source code
40
- uses: actions/checkout@v2
40
+ uses: actions/checkout@v4
41
41
  with:
42
42
  fetch-depth: 0
43
43
 
44
44
  - name: Set up Python ${{ matrix.python-version }}
45
- uses: actions/setup-python@v2
45
+ uses: actions/setup-python@v4
46
46
  with:
47
47
  python-version: '3.x'
48
48
 
@@ -52,12 +52,12 @@ jobs:
52
52
  - name: Create distributions
53
53
  run: python -m build . --sdist --wheel --outdir .
54
54
 
55
- - uses: actions/upload-artifact@v2
55
+ - uses: actions/upload-artifact@v3
56
56
  with:
57
57
  name: tarball
58
58
  path: gwpy-*.tar.*
59
59
 
60
- - uses: actions/upload-artifact@v2
60
+ - uses: actions/upload-artifact@v3
61
61
  with:
62
62
  name: wheel
63
63
  path: gwpy*.whl
@@ -84,6 +84,7 @@ jobs:
84
84
  - "3.9"
85
85
  - "3.10"
86
86
  - "3.11"
87
+ - "3.12"
87
88
  runs-on: ${{ matrix.os }}-latest
88
89
 
89
90
  defaults:
@@ -92,12 +93,12 @@ jobs:
92
93
 
93
94
  steps:
94
95
  - name: Download ${{ matrix.artifact }}
95
- uses: actions/download-artifact@v2
96
+ uses: actions/download-artifact@v3
96
97
  with:
97
98
  name: ${{ matrix.artifact }}
98
99
 
99
100
  - name: Set up Python ${{ matrix.python-version }}
100
- uses: actions/setup-python@v2
101
+ uses: actions/setup-python@v4
101
102
  with:
102
103
  python-version: ${{ matrix.python-version }}
103
104
 
@@ -118,6 +119,7 @@ jobs:
118
119
  --cov gwpy \
119
120
  --cov-report=xml \
120
121
  --disable-socket \
122
+ --allow-hosts=127.0.0.1 \
121
123
  --junitxml=pytest.xml \
122
124
  --pyargs gwpy \
123
125
  ;
@@ -133,7 +135,7 @@ jobs:
133
135
 
134
136
  - name: Upload test results
135
137
  if: always()
136
- uses: actions/upload-artifact@v2
138
+ uses: actions/upload-artifact@v3
137
139
  with:
138
140
  name: pytest-${{ matrix.artifact }}-${{ matrix.os }}-${{ matrix.python-version }}
139
141
  path: pytest.xml
@@ -27,9 +27,9 @@ jobs:
27
27
  name: Flake8
28
28
  runs-on: ubuntu-latest
29
29
  steps:
30
- - uses: actions/checkout@v2
30
+ - uses: actions/checkout@v4
31
31
  - name: Set up Python
32
- uses: actions/setup-python@v2
32
+ uses: actions/setup-python@v4
33
33
  with:
34
34
  python-version: '3.x'
35
35
  - name: Install dependencies
@@ -43,9 +43,9 @@ jobs:
43
43
  name: rstcheck
44
44
  runs-on: ubuntu-latest
45
45
  steps:
46
- - uses: actions/checkout@v2
46
+ - uses: actions/checkout@v4
47
47
  - name: Set up Python
48
- uses: actions/setup-python@v2
48
+ uses: actions/setup-python@v4
49
49
  with:
50
50
  python-version: '3.x'
51
51
  - name: Install dependencies
@@ -0,0 +1,54 @@
1
+ # ---------------------------
2
+ #
3
+ # Prepare distributions of this project
4
+ # and publish them to PyPI
5
+ #
6
+ # ---------------------------
7
+
8
+ name: Release
9
+
10
+ on:
11
+ push:
12
+ tags:
13
+ - 'v*.*'
14
+
15
+ jobs:
16
+ dist:
17
+ name: Build
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Get source code
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Set up Python 3
24
+ uses: actions/setup-python@v4
25
+ with:
26
+ python-version: '3.x'
27
+
28
+ - name: Install build requirements
29
+ run: python -m pip install build
30
+
31
+ - name: Create distributions
32
+ run: python -m build . --sdist --wheel --outdir dist/
33
+
34
+ - uses: actions/upload-artifact@v3
35
+ with:
36
+ name: dist
37
+ path: dist/
38
+
39
+ pypi:
40
+ name: Upload release to pypi
41
+ runs-on: ubuntu-latest
42
+ environment:
43
+ name: pypi
44
+ url: https://pypi.org/p/gwpy
45
+ permissions:
46
+ id-token: write
47
+ steps:
48
+ - name: Download tarball
49
+ uses: actions/download-artifact@v3
50
+ with:
51
+ name: dist
52
+
53
+ - name: Publish package distributions to PyPI
54
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gwpy
3
- Version: 3.0.7
3
+ Version: 3.0.9
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
@@ -19,12 +19,14 @@ Classifier: Programming Language :: Python :: 3.8
19
19
  Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
22
23
  Classifier: Topic :: Scientific/Engineering :: Astronomy
23
24
  Classifier: Topic :: Scientific/Engineering :: Physics
24
25
  Requires-Python: >=3.8
25
26
  Description-Content-Type: text/markdown
26
27
  License-File: LICENSE
27
28
  Requires-Dist: astropy>=4.3.0
29
+ Requires-Dist: dateparser>=1.1.4
28
30
  Requires-Dist: dqsegdb2
29
31
  Requires-Dist: gwdatafind>=1.1.0
30
32
  Requires-Dist: gwosc>=0.5.3
@@ -35,19 +37,19 @@ Requires-Dist: matplotlib>=3.3.0
35
37
  Requires-Dist: numpy>=1.19
36
38
  Requires-Dist: python-dateutil
37
39
  Requires-Dist: requests
38
- Requires-Dist: scipy>=1.5.0
40
+ Requires-Dist: scipy>=1.6.0
39
41
  Requires-Dist: tqdm>=4.10.0
40
42
  Provides-Extra: test
41
43
  Requires-Dist: coverage[toml]>=5.0; extra == "test"
42
44
  Requires-Dist: pytest>=3.9.1; extra == "test"
43
- Requires-Dist: pytest-freezegun; extra == "test"
45
+ Requires-Dist: pytest-freezer; extra == "test"
44
46
  Requires-Dist: pytest-cov>=2.4.0; extra == "test"
45
47
  Requires-Dist: pytest-requires; extra == "test"
46
48
  Requires-Dist: pytest-socket; extra == "test"
47
49
  Requires-Dist: pytest-xdist; extra == "test"
48
50
  Requires-Dist: requests-mock; extra == "test"
49
51
  Provides-Extra: astro
50
- Requires-Dist: inspiral-range; extra == "astro"
52
+ Requires-Dist: inspiral-range>=0.5.0; extra == "astro"
51
53
  Provides-Extra: docs
52
54
  Requires-Dist: numpydoc>=0.8.0; extra == "docs"
53
55
  Requires-Dist: Sphinx>=4.4.0; extra == "docs"
@@ -57,10 +59,8 @@ Requires-Dist: sphinx-panels>=0.6.0; extra == "docs"
57
59
  Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
58
60
  Provides-Extra: dev
59
61
  Requires-Dist: ciecplib; extra == "dev"
60
- Requires-Dist: dateparser>=1.1.2; extra == "dev"
61
62
  Requires-Dist: lalsuite; sys_platform != "win32" and extra == "dev"
62
63
  Requires-Dist: lscsoft-glue; sys_platform != "win32" and extra == "dev"
63
- Requires-Dist: maya; python_version < "3.11" and extra == "dev"
64
64
  Requires-Dist: psycopg2; extra == "dev"
65
65
  Requires-Dist: pycbc>=1.13.4; sys_platform != "win32" and extra == "dev"
66
66
  Requires-Dist: pymysql; extra == "dev"
@@ -69,7 +69,8 @@ Requires-Dist: python-ligo-lw>=1.7.0; sys_platform != "win32" and extra == "dev"
69
69
  Requires-Dist: sqlalchemy; extra == "dev"
70
70
  Requires-Dist: uproot>=4.1.5; extra == "dev"
71
71
  Provides-Extra: conda
72
- Requires-Dist: python-framel>=8.40.1; extra == "conda"
72
+ Requires-Dist: lxml!=4.9.1; sys_platform == "win32" and extra == "conda"
73
+ Requires-Dist: python-framel!=8.46.0,>=8.40.1; extra == "conda"
73
74
  Requires-Dist: python-ldas-tools-framecpp; sys_platform != "win32" and extra == "conda"
74
75
  Requires-Dist: python-nds2-client; extra == "conda"
75
76
 
@@ -0,0 +1,92 @@
1
+ ###########
2
+ Citing GWpy
3
+ ###########
4
+
5
+ If you have used GWpy as part of a project that leads to a scientific
6
+ publication, please acknowledge this by citing the
7
+ `GWpy paper <https://www.sciencedirect.com/science/article/pii/S2352711021000029>`_: D. M. Macleod *et al*, SoftwareX, **13**, 100657 (2021). The citation in various formats is given below:
8
+
9
+ .. md-tab-set::
10
+ :name: gwpy_citation_examples
11
+
12
+ .. md-tab-item:: BibTeX
13
+
14
+ .. code-block:: bibtex
15
+
16
+ @article{gwpy,
17
+ title = "{GWpy: A Python package for gravitational-wave astrophysics}",
18
+ author = {{Macleod}, D.~M. and {Areeda}, J.~S. and {Coughlin}, S.~B. and {Massinger}, T.~J. and {Urban}, A.~L.},
19
+ journal = {SoftwareX},
20
+ volume = 13,
21
+ pages = 100657,
22
+ year = 2021,
23
+ issn = {2352-7110},
24
+ doi = {10.1016/j.softx.2021.100657},
25
+ url = {https://www.sciencedirect.com/science/article/pii/S2352711021000029},
26
+ }
27
+
28
+ .. md-tab-item:: RIS
29
+
30
+ .. code-block::
31
+
32
+ TY - JOUR
33
+ T1 - GWpy: A Python package for gravitational-wave astrophysics
34
+ AU - Macleod, Duncan M.
35
+ AU - Areeda, Joseph S.
36
+ AU - Coughlin, Scott B.
37
+ AU - Massinger, Thomas J.
38
+ AU - Urban, Alexander L.
39
+ JO - SoftwareX
40
+ VL - 13
41
+ SP - 100657
42
+ PY - 2021
43
+ DA - 2021/01/01/
44
+ SN - 2352-7110
45
+ DO - 10.1016/j.softx.2021.100657
46
+ UR - https://www.sciencedirect.com/science/article/pii/S2352711021000029
47
+ ER -
48
+
49
+ .. md-tab-item:: EndNode
50
+
51
+ .. code-block::
52
+
53
+ %0 Journal Article
54
+ %T GWpy: A Python package for gravitational-wave astrophysics
55
+ %A Macleod, Duncan M.
56
+ %A Areeda, Joseph S.
57
+ %A Coughlin, Scott B.
58
+ %A Massinger, Thomas J.
59
+ %A Urban, Alexander L.
60
+ %J SoftwareX
61
+ %V 13
62
+ %P 100657
63
+ %D 2021
64
+ %R 10.1016/j.softx.2021.100657
65
+ %@ 2352-7110
66
+
67
+ .. md-tab-item:: RefWorks
68
+
69
+ .. code-block::
70
+
71
+ RT Journal
72
+ T1 GWpy: A Python package for gravitational-wave astrophysics
73
+ A1 Macleod, Duncan M.
74
+ A1 Areeda, Joseph S.
75
+ A1 Coughlin, Scott B.
76
+ A1 Massinger, Thomas J.
77
+ A1 Urban, Alexander L.
78
+ JF SoftwareX
79
+ VO 13
80
+ SP 100657
81
+ YR 2021
82
+ DO DOI: 10.1016/j.softx.2021.100657
83
+ SN 2352-7110
84
+
85
+ Also cite the DOI for the version of GWpy that you have used.
86
+ Each of the DOIs below resolves a Zenodo record for that version.
87
+ See the *Export* section on each page for formatted citations in a number
88
+ of common styles.
89
+
90
+ The list below includes only the 10 most recent releases of GWpy.
91
+ For older versions, please
92
+ `click here <https://zenodo.org//search?page=2&size=10&q=conceptrecid:"597016"&sort=-version&all_versions=True>`__.
@@ -33,18 +33,16 @@
33
33
  [timeseries-simple]
34
34
  command =
35
35
  timeseries
36
- --gwosc
37
- --ifo H1
36
+ --chan H1:GDS-CALIB_STRAIN
38
37
  --start 1126259457
39
- --suptitle 'LIGO-Hanford strain around GW150914'
38
+ --title 'LIGO-Hanford strain around GW150914'
40
39
  title = Simple timeseries
41
40
  description = This example shows the strain timeseries for the LIGO-Hanford detector around GW150914.
42
41
 
43
42
  [timeseries-filter]
44
43
  command =
45
44
  timeseries
46
- --gwosc
47
- --ifo H1
45
+ --chan H1:GDS-CALIB_STRAIN
48
46
  --start 1126259458
49
47
  --duration 8
50
48
  --xmin 1126259462.1
@@ -56,7 +54,7 @@ command =
56
54
  --notch 60 120
57
55
  --ylabel 'Strain amplitude'
58
56
  --geometry 1200x400
59
- --suptitle 'LIGO-Hanford strain (filtered) around GW150914'
57
+ --title 'LIGO-Hanford strain (filtered) around GW150914'
60
58
  title = Filtered timeseries
61
59
  description =
62
60
  This example shows the strain timeseries for the LIGO-Hanford detector
@@ -83,8 +81,7 @@ description =
83
81
  [spectrum-simple]
84
82
  command =
85
83
  spectrum
86
- --gwosc
87
- --ifo L1
84
+ --chan L1:GDS-CALIB_STRAIN
88
85
  --start 1264316100
89
86
  --duration 32
90
87
  title = Simple spectrum
@@ -93,11 +90,11 @@ description =
93
90
  data from the LIGO-Livingston detector around the time of GW200129_065458
94
91
  (see |GWTC-3l|_ for full details).
95
92
 
93
+
96
94
  [spectrum-times]
97
95
  command =
98
96
  spectrum
99
- --gwosc
100
- --ifo H1 L1
97
+ --chan H1:GDS-CALIB_STRAIN L1:GDS-CALIB_STRAIN
101
98
  --start 1126259446
102
99
  --start 1187008866
103
100
  --duration 32
@@ -111,13 +108,12 @@ description =
111
108
  ; GW200129_065458
112
109
  command =
113
110
  spectrum
114
- --gwosc
115
- --ifo H1 L1 V1
111
+ --chan H1:DCS-CALIB_STRAIN_CLEAN_SUB60HZ_C01 L1:DCS-CALIB_STRAIN_CLEAN_SUB60HZ_C01 V1:Hrec_hoft_16384Hz
116
112
  --start 1264316100
117
113
  --duration 32
118
114
  --xmin 10
119
115
  --xmax 4000
120
- --suptitle "GW detector sensitivity around GW200129_065458"
116
+ --title "GW detector sensitivity around GW200129_065458"
121
117
  title = Spectrum with three interferometers
122
118
  description =
123
119
  This example shows the spectrum (power spectral density) of strain
@@ -127,8 +123,7 @@ description =
127
123
  [spectrum-hr]
128
124
  command =
129
125
  spectrum
130
- --gwosc
131
- --ifo L1
126
+ --chan L1:GDS-CALIB_STRAIN
132
127
  --start 1264315518
133
128
  --duration 1024
134
129
  --secpfft 64
@@ -145,8 +140,7 @@ description =
145
140
  [spectrogram]
146
141
  command =
147
142
  spectrogram
148
- --gwosc
149
- --ifo H1
143
+ --chan H1:GDS-CALIB_STRAIN
150
144
  --start 1264316116
151
145
  --duration 32
152
146
  --epoch 1264316116.4
@@ -159,8 +153,7 @@ description =
159
153
  [spectrogram-norm]
160
154
  command =
161
155
  spectrogram
162
- --gwosc
163
- --ifo L1
156
+ --chan L1:GDS-CALIB_STRAIN
164
157
  --start 1264315518
165
158
  --duration 1024
166
159
  --norm
@@ -100,12 +100,10 @@ extensions = [
100
100
  'sphinx.ext.linkcode',
101
101
  'sphinx.ext.ifconfig',
102
102
  'sphinx_automodapi.automodapi',
103
- 'sphinx_panels',
104
103
  'sphinxcontrib.programoutput',
105
104
  'numpydoc',
106
105
  'matplotlib.sphinxext.plot_directive',
107
106
  #'sphinxcontrib.doxylink', # noqa: E265
108
- 'gwpy.utils.sphinx.epydoc',
109
107
  ]
110
108
 
111
109
  # content management
@@ -215,16 +213,9 @@ docscrape_sphinx.IMPORT_MATPLOTLIB_RE = r'\b({})\b'.format('|'.join(parts))
215
213
  # configure inheritance diagram
216
214
  inheritance_graph_attrs = dict(rankdir='TB')
217
215
 
218
- # -- epydoc
216
+ # -- doxylink
219
217
 
220
- # epydoc extension config for GLUE
221
- epydoc_mapping = {
222
- 'http://software.ligo.org/docs/glue/': [r'glue(\.|$)'],
223
- }
224
-
225
- # -- epydoc
226
-
227
- LALSUITE_DOCS = 'http://software.ligo.org/docs/lalsuite'
218
+ LALSUITE_DOCS = 'https://lscsoft.docs.ligo.org/lalsuite'
228
219
 
229
220
  doxylink = {
230
221
  'lal': ('lal.tag', '%s/lal/' % LALSUITE_DOCS),
@@ -236,6 +227,7 @@ doxylink = {
236
227
  # Intersphinx
237
228
  intersphinx_mapping = {
238
229
  'astropy': ('https://docs.astropy.org/en/stable/', None),
230
+ 'dateparser': ('https://dateparser.readthedocs.io/en/stable/', None),
239
231
  'dateutil': ('https://dateutil.readthedocs.io/en/stable/', None),
240
232
  'dqsegdb2': ('https://dqsegdb2.readthedocs.io/en/stable/', None),
241
233
  # 'glue': ('https://docs.ligo.org/lscsoft/glue/', None),
@@ -245,6 +237,7 @@ intersphinx_mapping = {
245
237
  'ligo.skymap': ('https://lscsoft.docs.ligo.org/ligo.skymap/', None),
246
238
  'ligo-segments': ('https://lscsoft.docs.ligo.org/ligo-segments/', None),
247
239
  'ligolw': ('https://docs.ligo.org/kipp.cannon/python-ligo-lw/', None),
240
+ 'lscsoft-glue': ('https://lscsoft.docs.ligo.org/glue/', None),
248
241
  'matplotlib': ('https://matplotlib.org/', None),
249
242
  'numpy': ('https://numpy.org/doc/stable/', None),
250
243
  'pycbc': ('https://pycbc.org/pycbc/latest/html/', None),
@@ -253,13 +246,6 @@ intersphinx_mapping = {
253
246
  'scipy': ('https://docs.scipy.org/doc/scipy/reference/', None),
254
247
  }
255
248
 
256
- # -- sphinx-panels
257
-
258
- panels_css_variables = {
259
- "tabs-color-label-active": "#ff6e40;",
260
- "tabs-size-label": ".8rem",
261
- }
262
-
263
249
 
264
250
  # -- linkcode
265
251
 
@@ -47,6 +47,7 @@ GWpy has the following strict requirements:
47
47
  Name Constraints
48
48
  ================== ===========================
49
49
  |astropy|_ ``>=4.0``
50
+ |dateparser|_ ``>=1.1.4``
50
51
  |dqsegdb2|_
51
52
  |gwdatafind|_ ``>=1.1.0``
52
53
  |gwosc-mod|_ ``>=0.5.3``
@@ -10,7 +10,7 @@ This package is meant for users who don't care how the code works necessarily, b
10
10
  As a result this package is meant to be as easy-to-use as possible, coupled with extensive documentation of all functions and standard examples of how to use them sensibly.
11
11
 
12
12
  The core Python infrastructure is influenced by, and extends the functionaity of, the `Astropy <http://astropy.org>`__ package, a superb set of tools for astrophysical analysis, primarily for FITS images.
13
- Additionally, much of the methodology has been derived from, and augmented by, the `LIGO Algorithm Library Suite (LALSuite) <https://www.lsc-group.phys.uwm.edu/daswg/projects/lalsuite.html>`_, a large collection of primarily ``C99`` routines for analysis and manipulation of data from gravitational-wave detectors.
13
+ Additionally, much of the methodology has been derived from, and augmented by, the `LVK Algorithm Library Suite (LALSuite) <https://doi.org/10.7935/GT1W-FZ16>`_, a large collection of primarily ``C99`` routines for analysis and manipulation of data from gravitational-wave detectors.
14
14
  These packages use the `SWIG <http://www.swig.org>` program to produce Python wrappings for all ``C`` modules, allowing the GWpy package to leverage both the completeness, and the speed, of these libraries.
15
15
 
16
16
  In the end, this package has begged, borrowed, and stolen a lot of code from other sources, but should end up packaging them together in a way that makes the whole set easier to use.
@@ -6,6 +6,9 @@
6
6
  .. |CVMFS| replace:: CVMFS
7
7
  .. _CVMFS: https://cvmfs.readthedocs.io/
8
8
 
9
+ .. |dateparser| replace:: `dateparser`
10
+ .. _dateparser: https://dateparser.readthedocs.io
11
+
9
12
  .. |dateutil| replace:: `dateutil`
10
13
  .. _dateutil: https://dateutil.readthedocs.io
11
14
 
@@ -57,13 +60,13 @@
57
60
  .. _LDAStools.frameCPP: https://computing.docs.ligo.org/ldastools/LDAS_Tools/ldas-tools-framecpp/
58
61
 
59
62
  .. |lal| replace:: `lal`
60
- .. _lal: http://software.ligo.org/docs/lalsuite/lal/
63
+ .. _lal: https://lscsoft.docs.ligo.org/lalsuite/lal/
61
64
 
62
65
  .. |lal.LIGOTimeGPS| replace:: `lal.LIGOTimeGPS`
63
- .. _lal.LIGOTimeGPS: http://software.ligo.org/docs/lalsuite/lal/struct_l_i_g_o_time_g_p_s.html
66
+ .. _lal.LIGOTimeGPS: https://lscsoft.docs.ligo.org/lalsuite/lal/struct_l_i_g_o_time_g_p_s.html
64
67
 
65
68
  .. |lalframe| replace:: `lalframe`
66
- .. _lalframe: http://software.ligo.org/docs/lalsuite/lalframe/
69
+ .. _lalframe: https://lscsoft.docs.ligo.org/lalsuite/lalframe/
67
70
 
68
71
  .. |MySQLdb| replace:: `MySQLdb`
69
72
  .. _MySQLdb: http://mysql-python.sourceforge.net/