PycWB 0.23.2__tar.gz → 0.25.0__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.
Files changed (405) hide show
  1. {pycwb-0.23.2 → pycwb-0.25.0}/PKG-INFO +2 -1
  2. {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/PKG-INFO +2 -1
  3. {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/SOURCES.txt +8 -2
  4. {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/requires.txt +1 -0
  5. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/conf.py +1 -1
  6. pycwb-0.25.0/docs/source/schema.rst +15 -0
  7. {pycwb-0.23.2 → pycwb-0.25.0}/envs/environment.yml +2 -1
  8. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/_version.py +2 -2
  9. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/batch_setup.py +19 -1
  10. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/constants/user_parameters_schema.py +40 -0
  11. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/catalog/catalog.py +7 -7
  12. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/whitening.py +1 -0
  13. pycwb-0.25.0/pycwb/modules/gracedb/__init__.py +1 -0
  14. pycwb-0.25.0/pycwb/modules/gracedb/gracedb.py +40 -0
  15. pycwb-0.25.0/pycwb/modules/gracedb/module.yaml +4 -0
  16. pycwb-0.25.0/pycwb/modules/gracedb/test_gracedb.py +27 -0
  17. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/dq_segment.py +41 -16
  18. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/frame.py +47 -2
  19. pycwb-0.25.0/pycwb/modules/job_segment/job_segment.py +347 -0
  20. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/module.yaml +1 -1
  21. pycwb-0.25.0/pycwb/modules/job_segment/test_job_segment.py +30 -0
  22. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihood/likelihood.py +67 -56
  23. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/read_data.py +45 -9
  24. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/sparse_series/sparse_table.py +7 -3
  25. pycwb-0.25.0/pycwb/modules/superlag/module.yaml +4 -0
  26. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/workflow_utils/job_setup.py +1 -0
  27. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/xtalk_data.py +8 -8
  28. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/data_quality_file.py +10 -21
  29. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/job.py +37 -1
  30. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network_cluster.py +3 -0
  31. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/sparse_series.py +9 -3
  32. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/wdm_xtalk.py +6 -1
  33. pycwb-0.25.0/pycwb/utils/generate_params_table.py +53 -0
  34. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/yaml_helper.py +1 -1
  35. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/batch.py +13 -9
  36. pycwb-0.25.0/pycwb/workflow/subflow/__init__.py +3 -0
  37. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/subflow/prepare_job_runs.py +42 -2
  38. pycwb-0.25.0/pycwb/workflow/subflow/process_job_segment.py +170 -0
  39. {pycwb-0.23.2 → pycwb-0.25.0}/setup.py +1 -0
  40. pycwb-0.23.2/docs/source/schema.rst +0 -12
  41. pycwb-0.23.2/pycwb/modules/job_segment/job_segment.py +0 -199
  42. pycwb-0.23.2/pycwb/workflow/subflow/__init__.py +0 -2
  43. pycwb-0.23.2/pycwb/workflow/subflow/process_job_segment.py +0 -115
  44. pycwb-0.23.2/pycwb/workflow/subflow/supercluster_and_likelihood.py +0 -86
  45. {pycwb-0.23.2 → pycwb-0.25.0}/.gitignore +0 -0
  46. {pycwb-0.23.2 → pycwb-0.25.0}/.gitlab-ci.yml +0 -0
  47. {pycwb-0.23.2 → pycwb-0.25.0}/.readthedocs.yaml +0 -0
  48. {pycwb-0.23.2 → pycwb-0.25.0}/LICENSE +0 -0
  49. {pycwb-0.23.2 → pycwb-0.25.0}/MANIFEST.in +0 -0
  50. {pycwb-0.23.2 → pycwb-0.25.0}/Makefile +0 -0
  51. {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/dependency_links.txt +0 -0
  52. {pycwb-0.23.2 → pycwb-0.25.0}/PycWB.egg-info/top_level.txt +0 -0
  53. {pycwb-0.23.2 → pycwb-0.25.0}/README.md +0 -0
  54. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/README.md +0 -0
  55. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/README.md +0 -0
  56. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/generate_data_for_likelihood.py +0 -0
  57. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/performance_test_dpf.py +0 -0
  58. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/performance_test_opt_sky.py +0 -0
  59. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/likelihood/user_parameters_injection.yaml +0 -0
  60. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/README.md +0 -0
  61. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/generate_data.py +0 -0
  62. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/generate_data_2.py +0 -0
  63. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/performance_supercluster.py +0 -0
  64. {pycwb-0.23.2 → pycwb-0.25.0}/benchmark/supercluster/user_parameters_injection.yaml +0 -0
  65. {pycwb-0.23.2 → pycwb-0.25.0}/bin/pycwb +0 -0
  66. {pycwb-0.23.2 → pycwb-0.25.0}/bin/pycwb_search +0 -0
  67. {pycwb-0.23.2 → pycwb-0.25.0}/bin/pycwb_show +0 -0
  68. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Biorthogonal.cc +0 -0
  69. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Biorthogonal.hh +0 -0
  70. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/CMakeLists.txt +0 -0
  71. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Daubechies.cc +0 -0
  72. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Daubechies.hh +0 -0
  73. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/FourierCoefficients.icc +0 -0
  74. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Haar.cc +0 -0
  75. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Haar.hh +0 -0
  76. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/LineFilter.cc +0 -0
  77. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/LineFilter.hh +0 -0
  78. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Makefile +0 -0
  79. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Meyer.cc +0 -0
  80. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Meyer.hh +0 -0
  81. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Symlet.cc +0 -0
  82. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Symlet.hh +0 -0
  83. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArray.cc +0 -0
  84. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArray.hh +0 -0
  85. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArraySSE.cc +0 -0
  86. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmArraySSE.hh +0 -0
  87. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmObjArray.cc +0 -0
  88. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/SymmObjArray.hh +0 -0
  89. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDM.cc +0 -0
  90. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDM.hh +0 -0
  91. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDMOverlap.cc +0 -0
  92. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WDMOverlap.hh +0 -0
  93. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WaveDWT.cc +0 -0
  94. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/WaveDWT.hh +0 -0
  95. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Wavelet.cc +0 -0
  96. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/Wavelet.hh +0 -0
  97. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/alm.hh +0 -0
  98. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/build.sh +0 -0
  99. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cluster.cc +0 -0
  100. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cluster.hh +0 -0
  101. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cmake/FindHealpix.cmake +0 -0
  102. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cmake/FindeBBH.cmake +0 -0
  103. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/cmake/install_function.cmake +0 -0
  104. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/constants.hh +0 -0
  105. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/detector.cc +0 -0
  106. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/detector.hh +0 -0
  107. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/injection.cc +0 -0
  108. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/injection.hh +0 -0
  109. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/lossy.cc +0 -0
  110. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/lossy.hh +0 -0
  111. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/monster.cc +0 -0
  112. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/monster.hh +0 -0
  113. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netcluster.cc +0 -0
  114. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netcluster.hh +0 -0
  115. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netevent.cc +0 -0
  116. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netevent.hh +0 -0
  117. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netpixel.cc +0 -0
  118. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/netpixel.hh +0 -0
  119. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/network.cc +0 -0
  120. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/network.hh +0 -0
  121. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/pycwb.hh +0 -0
  122. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/rdfr.cc +0 -0
  123. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/rdfr.hh +0 -0
  124. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readframe.cc +0 -0
  125. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readframe.hh +0 -0
  126. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readfrfile.cc +0 -0
  127. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/readfrfile.hh +0 -0
  128. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/regression.cc +0 -0
  129. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/regression.hh +0 -0
  130. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/skycoord.hh +0 -0
  131. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/skymap.cc +0 -0
  132. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/skymap.hh +0 -0
  133. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/sseries.cc +0 -0
  134. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/sseries.hh +0 -0
  135. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/time.cc +0 -0
  136. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/time.hh +0 -0
  137. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wat.hh +0 -0
  138. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watasm.S +0 -0
  139. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watasm_elf64.o +0 -0
  140. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watavx.hh +0 -0
  141. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watbranch.in +0 -0
  142. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watfun.hh +0 -0
  143. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wathash.in +0 -0
  144. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watplot.cc +0 -0
  145. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watplot.hh +0 -0
  146. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watsse.hh +0 -0
  147. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wattag.in +0 -0
  148. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/waturl.in +0 -0
  149. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/watversion.hh.in +0 -0
  150. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavearray.cc +0 -0
  151. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavearray.hh +0 -0
  152. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecomplex.cc +0 -0
  153. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecomplex.hh +0 -0
  154. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecor.cc +0 -0
  155. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavecor.hh +0 -0
  156. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavefft.cc +0 -0
  157. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavefft.hh +0 -0
  158. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavelet_LinkDef.h +0 -0
  159. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavelinefilter.cc +0 -0
  160. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wavelinefilter.hh +0 -0
  161. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/waverdc.cc +0 -0
  162. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/waverdc.hh +0 -0
  163. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wseries.cc +0 -0
  164. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wseries.hh +0 -0
  165. {pycwb-0.23.2 → pycwb-0.25.0}/cwb-core/wslice.hh +0 -0
  166. {pycwb-0.23.2 → pycwb-0.25.0}/docs/0.installation_guide.md +0 -0
  167. {pycwb-0.23.2 → pycwb-0.25.0}/docs/1.initialisation_guide.md +0 -0
  168. {pycwb-0.23.2 → pycwb-0.25.0}/docs/2.test_interactive_multistages_2G_analysis.md +0 -0
  169. {pycwb-0.23.2 → pycwb-0.25.0}/docs/3.run_pycwb_with_yaml_config.md +0 -0
  170. {pycwb-0.23.2 → pycwb-0.25.0}/docs/4.py_cwb_inet_2G.md +0 -0
  171. {pycwb-0.23.2 → pycwb-0.25.0}/docs/5.cwb2G_analyse.md +0 -0
  172. {pycwb-0.23.2 → pycwb-0.25.0}/docs/6.wat_codes_notes.md +0 -0
  173. {pycwb-0.23.2 → pycwb-0.25.0}/docs/Makefile +0 -0
  174. {pycwb-0.23.2 → pycwb-0.25.0}/docs/diagram.py +0 -0
  175. {pycwb-0.23.2 → pycwb-0.25.0}/docs/make.bat +0 -0
  176. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/_static/.keep +0 -0
  177. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/_templates/.keep +0 -0
  178. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/credit.rst +0 -0
  179. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/index.rst +0 -0
  180. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/install.rst +0 -0
  181. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/mod_cwb.rst +0 -0
  182. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/package.rst +0 -0
  183. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_batch_inj.rst +0 -0
  184. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_customized_wf_gen.rst +0 -0
  185. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_injection.rst +0 -0
  186. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_multi_injection.rst +0 -0
  187. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorial_search.rst +0 -0
  188. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/tutorials.rst +0 -0
  189. {pycwb-0.23.2 → pycwb-0.25.0}/docs/source/workflow.png +0 -0
  190. {pycwb-0.23.2 → pycwb-0.25.0}/envs/Dockerfile +0 -0
  191. {pycwb-0.23.2 → pycwb-0.25.0}/envs/mamba/Dockerfile +0 -0
  192. {pycwb-0.23.2 → pycwb-0.25.0}/examples/autoencoder/pycwb_injection.ipynb +0 -0
  193. {pycwb-0.23.2 → pycwb-0.25.0}/examples/autoencoder/user_parameters_injection.yaml +0 -0
  194. {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/generate_parameters.py +0 -0
  195. {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/__init__.py +0 -0
  196. {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/parameters.py +0 -0
  197. {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycbc_inject/hyperbolicTD/waveform.py +0 -0
  198. {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/pycwb_injection.py +0 -0
  199. {pycwb-0.23.2 → pycwb-0.25.0}/examples/batch_injection/user_parameters_injection.yaml +0 -0
  200. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat0.txt +0 -0
  201. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat1.txt +0 -0
  202. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat2.txt +0 -0
  203. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/H1_cat4.txt +0 -0
  204. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat0.txt +0 -0
  205. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat1.txt +0 -0
  206. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat2.txt +0 -0
  207. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/DQ/L1_cat4.txt +0 -0
  208. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/input/OPBM.period +0 -0
  209. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/input/OPBM_H1.frames +0 -0
  210. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/input/OPBM_L1.frames +0 -0
  211. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/pycwb_mdc.py +0 -0
  212. {pycwb-0.23.2 → pycwb-0.25.0}/examples/benchmark/user_parameters_mdc.yaml +0 -0
  213. {pycwb-0.23.2 → pycwb-0.25.0}/examples/colab/pycWB_GW150914.ipynb +0 -0
  214. {pycwb-0.23.2 → pycwb-0.25.0}/examples/injection/pycwb_injection.ipynb +0 -0
  215. {pycwb-0.23.2 → pycwb-0.25.0}/examples/injection/user_parameters_injection.yaml +0 -0
  216. {pycwb-0.23.2 → pycwb-0.25.0}/examples/injection/wdmXTalk/OverlapCatalog16-1024.bin +0 -0
  217. {pycwb-0.23.2 → pycwb-0.25.0}/examples/lvk_sep_2023/demo.ipynb +0 -0
  218. {pycwb-0.23.2 → pycwb-0.25.0}/examples/lvk_sep_2023/user_parameters.yaml +0 -0
  219. {pycwb-0.23.2 → pycwb-0.25.0}/examples/multiple_injection/pycwb_injection.py +0 -0
  220. {pycwb-0.23.2 → pycwb-0.25.0}/examples/multiple_injection/user_parameters_injection.yaml +0 -0
  221. {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/generate_parameters.py +0 -0
  222. {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/user_parameters_injection.yaml +0 -0
  223. {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/waveform_model/__init__.py +0 -0
  224. {pycwb-0.23.2 → pycwb-0.25.0}/examples/pyseobnr_injection/waveform_model/waveform.py +0 -0
  225. {pycwb-0.23.2 → pycwb-0.25.0}/examples/waveform_reconstruction/reconstruct_waveform_from_cluster.ipynb +0 -0
  226. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/coherence.cc +0 -0
  227. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/coherence.hh +0 -0
  228. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/likelihood.cc +0 -0
  229. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/cwb_core/likelihood.hh +0 -0
  230. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/dag/dag.py +0 -0
  231. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/dag/dask-prefect.py +0 -0
  232. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/dag/prefect_test.py +0 -0
  233. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger/__init__.py +0 -0
  234. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger/server.py +0 -0
  235. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger/visualizition.py +0 -0
  236. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/.eslintrc.cjs +0 -0
  237. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/.gitignore +0 -0
  238. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/.prettierrc.json +0 -0
  239. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/README.md +0 -0
  240. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/index.html +0 -0
  241. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/package-lock.json +0 -0
  242. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/package.json +0 -0
  243. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/public/favicon.ico +0 -0
  244. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/App.vue +0 -0
  245. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/base.css +0 -0
  246. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/cwb_icon_modern_blue_alfa.png +0 -0
  247. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/main.css +0 -0
  248. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/assets/style.css +0 -0
  249. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/HelloWorld.vue +0 -0
  250. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/TheWelcome.vue +0 -0
  251. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/WelcomeItem.vue +0 -0
  252. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/__tests__/HelloWorld.spec.js +0 -0
  253. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconCommunity.vue +0 -0
  254. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconDocumentation.vue +0 -0
  255. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconEcosystem.vue +0 -0
  256. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconSupport.vue +0 -0
  257. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/components/icons/IconTooling.vue +0 -0
  258. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/main.js +0 -0
  259. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/router/index.js +0 -0
  260. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/stores/counter.js +0 -0
  261. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/drawflow.vue +0 -0
  262. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/node1.vue +0 -0
  263. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/node2.vue +0 -0
  264. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/node3.vue +0 -0
  265. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/src/views/nodes/nodeHeader.vue +0 -0
  266. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/messenger-web-interface/vite.config.js +0 -0
  267. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/performance/numba_test.py +0 -0
  268. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/performance/taichi_test.py +0 -0
  269. {pycwb-0.23.2 → pycwb-0.25.0}/prototypes/search.yaml +0 -0
  270. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/__init__.py +0 -0
  271. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/__init__.py +0 -0
  272. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/batch_runner.py +0 -0
  273. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/flow.py +0 -0
  274. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/merge_catalog.py +0 -0
  275. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/run.py +0 -0
  276. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/server.py +0 -0
  277. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/cli/xtalk.py +0 -0
  278. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/config/__init__.py +0 -0
  279. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/config/config.py +0 -0
  280. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/constants/__init__.py +0 -0
  281. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/constants/project_constants.py +0 -0
  282. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/__init__.py +0 -0
  283. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/__init__.py +0 -0
  284. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/autoencoder.py +0 -0
  285. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/cwb_autoencoder.py +0 -0
  286. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/autoencoder/module.yaml +0 -0
  287. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/catalog/__init__.py +0 -0
  288. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/catalog/module.yaml +0 -0
  289. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/__init__.py +0 -0
  290. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/coherence.py +0 -0
  291. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/coherence_lite.py +0 -0
  292. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/coherence/module.yaml +0 -0
  293. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/condor/__init__.py +0 -0
  294. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/condor/condor.py +0 -0
  295. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/condor/module.yaml +0 -0
  296. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/__init__.py +0 -0
  297. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/cluster.py +0 -0
  298. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/module.yaml +0 -0
  299. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/pixel.py +0 -0
  300. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/series.py +0 -0
  301. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/cwb_conversions/sparse_series.py +0 -0
  302. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/__init__.py +0 -0
  303. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/data_conditioning.py +0 -0
  304. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/module.yaml +0 -0
  305. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/data_conditioning/regression.py +0 -0
  306. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/energy_threshold/__init__.py +0 -0
  307. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/energy_threshold/threshold.py +0 -0
  308. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/__init__.py +0 -0
  309. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/plots.py +0 -0
  310. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/job_segment/super_lag.py +0 -0
  311. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihood/__init__.py +0 -0
  312. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihood/module.yaml +0 -0
  313. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/__init__.py +0 -0
  314. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/dpf.py +0 -0
  315. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/dpf_cython.pyx +0 -0
  316. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/likelihood.py +0 -0
  317. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/sky_stat.py +0 -0
  318. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/likelihoodWP/utils.py +0 -0
  319. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/logger/__init__.py +0 -0
  320. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/logger/logger.py +0 -0
  321. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/logger/module.yaml +0 -0
  322. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/multi_resolution_wdm/__init__.py +0 -0
  323. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/multi_resolution_wdm/module.yaml +0 -0
  324. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/multi_resolution_wdm/wdm.py +0 -0
  325. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/__init__.py +0 -0
  326. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/cluster_statistics.py +0 -0
  327. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/event.py +0 -0
  328. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/module.yaml +0 -0
  329. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/spectrogram.py +0 -0
  330. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot/waveform.py +0 -0
  331. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_data_quality/__init__.py +0 -0
  332. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_data_quality/module.yaml +0 -0
  333. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_data_quality/plot.py +0 -0
  334. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_map/__init__.py +0 -0
  335. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_map/module.yaml +0 -0
  336. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/plot_map/world_map.py +0 -0
  337. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/__init__.py +0 -0
  338. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/data_check.py +0 -0
  339. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/data_find.py +0 -0
  340. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/mdc.py +0 -0
  341. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/read_data/module.yaml +0 -0
  342. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/reconstruction/__init__.py +0 -0
  343. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/reconstruction/getMRAwaveform.py +0 -0
  344. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/reconstruction/module.yaml +0 -0
  345. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/sparse_series/__init__.py +0 -0
  346. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/sparse_series/module.yaml +0 -0
  347. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/__init__.py +0 -0
  348. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/eff.py +0 -0
  349. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/eff_plot.py +0 -0
  350. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/merge.py +0 -0
  351. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/statistics/sigmoid_fit.py +0 -0
  352. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/__init__.py +0 -0
  353. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/module.yaml +0 -0
  354. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/sub_net_cut.py +0 -0
  355. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/super_cluster.py +0 -0
  356. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/supercluster.py +0 -0
  357. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/super_cluster/utils.py +0 -0
  358. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/supercluster_naive/__init__.py +0 -0
  359. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/supercluster_naive/supercluster2.py +0 -0
  360. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/superlag/__init__.py +0 -0
  361. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/superlag/superlag.py +0 -0
  362. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/web_viewer/__init__.py +0 -0
  363. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/web_viewer/create.py +0 -0
  364. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/web_viewer/module.yaml +0 -0
  365. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/workflow_utils/__init__.py +0 -0
  366. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/__init__.py +0 -0
  367. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/monster.py +0 -0
  368. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/modules/xtalk/monster_old.py +0 -0
  369. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/__init__.py +0 -0
  370. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/pycwb_flow.py +0 -0
  371. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/tasks/__init__.py +0 -0
  372. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/prefect_flow/tasks/builtin.py +0 -0
  373. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/__init__.py +0 -0
  374. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/detector.py +0 -0
  375. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network.py +0 -0
  376. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network_event.py +0 -0
  377. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/network_pixel.py +0 -0
  378. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/time_frequency_series.py +0 -0
  379. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/types/wdm.py +0 -0
  380. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/__init__.py +0 -0
  381. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/async_write.py +0 -0
  382. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/check_ROOT.py +0 -0
  383. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/conversions/__init__.py +0 -0
  384. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/conversions/timeseries.py +0 -0
  385. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/dataclass_object_io.py +0 -0
  386. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/dep_check.py +0 -0
  387. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/image.py +0 -0
  388. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/module.py +0 -0
  389. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/network.py +0 -0
  390. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/parser.py +0 -0
  391. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/utils/skymap_coord.py +0 -0
  392. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/__init__.py +0 -0
  393. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/autoencoder/__init__.py +0 -0
  394. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/autoencoder/cwb_autoencoder.h5 +0 -0
  395. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/example.yaml +0 -0
  396. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/lib/__init__.py +0 -0
  397. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/web_viewer/event_dump.html +0 -0
  398. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/web_viewer/styles.css +0 -0
  399. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/vendor/web_viewer/viewer.html +0 -0
  400. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/__init__.py +0 -0
  401. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/merge.py +0 -0
  402. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/run.py +0 -0
  403. {pycwb-0.23.2 → pycwb-0.25.0}/pycwb/workflow/subflow/postprocess_and_plots.py +0 -0
  404. {pycwb-0.23.2 → pycwb-0.25.0}/pyproject.toml +0 -0
  405. {pycwb-0.23.2 → pycwb-0.25.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.23.2
3
+ Version: 0.25.0
4
4
  Summary: A Python package for coherent gravitational wave burst analysis
5
5
  Home-page: https://git.ligo.org/yumeng.xu/pycwb
6
6
  Author-email: The PycWB team <yumeng.xu@ligo.org>
@@ -31,6 +31,7 @@ Requires-Dist: prefect-dask
31
31
  Requires-Dist: dask
32
32
  Requires-Dist: dask_jobqueue
33
33
  Requires-Dist: htcondor
34
+ Requires-Dist: psutil
34
35
 
35
36
  # PycWB
36
37
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PycWB
3
- Version: 0.23.2
3
+ Version: 0.25.0
4
4
  Summary: A Python package for coherent gravitational wave burst analysis
5
5
  Home-page: https://git.ligo.org/yumeng.xu/pycwb
6
6
  Author-email: The PycWB team <yumeng.xu@ligo.org>
@@ -31,6 +31,7 @@ Requires-Dist: prefect-dask
31
31
  Requires-Dist: dask
32
32
  Requires-Dist: dask_jobqueue
33
33
  Requires-Dist: htcondor
34
+ Requires-Dist: psutil
34
35
 
35
36
  # PycWB
36
37
 
@@ -274,6 +274,10 @@ pycwb/modules/data_conditioning/regression.py
274
274
  pycwb/modules/data_conditioning/whitening.py
275
275
  pycwb/modules/energy_threshold/__init__.py
276
276
  pycwb/modules/energy_threshold/threshold.py
277
+ pycwb/modules/gracedb/__init__.py
278
+ pycwb/modules/gracedb/gracedb.py
279
+ pycwb/modules/gracedb/module.yaml
280
+ pycwb/modules/gracedb/test_gracedb.py
277
281
  pycwb/modules/job_segment/__init__.py
278
282
  pycwb/modules/job_segment/dq_segment.py
279
283
  pycwb/modules/job_segment/frame.py
@@ -281,6 +285,7 @@ pycwb/modules/job_segment/job_segment.py
281
285
  pycwb/modules/job_segment/module.yaml
282
286
  pycwb/modules/job_segment/plots.py
283
287
  pycwb/modules/job_segment/super_lag.py
288
+ pycwb/modules/job_segment/test_job_segment.py
284
289
  pycwb/modules/likelihood/__init__.py
285
290
  pycwb/modules/likelihood/likelihood.py
286
291
  pycwb/modules/likelihood/module.yaml
@@ -334,6 +339,7 @@ pycwb/modules/super_cluster/utils.py
334
339
  pycwb/modules/supercluster_naive/__init__.py
335
340
  pycwb/modules/supercluster_naive/supercluster2.py
336
341
  pycwb/modules/superlag/__init__.py
342
+ pycwb/modules/superlag/module.yaml
337
343
  pycwb/modules/superlag/superlag.py
338
344
  pycwb/modules/web_viewer/__init__.py
339
345
  pycwb/modules/web_viewer/create.py
@@ -365,6 +371,7 @@ pycwb/utils/async_write.py
365
371
  pycwb/utils/check_ROOT.py
366
372
  pycwb/utils/dataclass_object_io.py
367
373
  pycwb/utils/dep_check.py
374
+ pycwb/utils/generate_params_table.py
368
375
  pycwb/utils/image.py
369
376
  pycwb/utils/module.py
370
377
  pycwb/utils/network.py
@@ -388,5 +395,4 @@ pycwb/workflow/run.py
388
395
  pycwb/workflow/subflow/__init__.py
389
396
  pycwb/workflow/subflow/postprocess_and_plots.py
390
397
  pycwb/workflow/subflow/prepare_job_runs.py
391
- pycwb/workflow/subflow/process_job_segment.py
392
- pycwb/workflow/subflow/supercluster_and_likelihood.py
398
+ pycwb/workflow/subflow/process_job_segment.py
@@ -21,3 +21,4 @@ prefect-dask
21
21
  dask
22
22
  dask_jobqueue
23
23
  htcondor
24
+ psutil
@@ -27,7 +27,7 @@ exclude_patterns = ["pycwb/vendor/*", ".DS_Store"]
27
27
  # -- Options for HTML output -------------------------------------------------
28
28
  # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
29
29
 
30
- html_theme = 'sphinx_rtd_theme'
30
+ html_theme = "furo"
31
31
  html_static_path = ['_static']
32
32
 
33
33
  # -- external links ----------------------------------------------------------
@@ -0,0 +1,15 @@
1
+ .. _schema:
2
+
3
+ User Parameters
4
+ ----------------
5
+
6
+ The default schema for user parameters is:
7
+
8
+ .. exec::
9
+ import json
10
+ from pycwb.constants import user_parameters_schema
11
+ from pycwb.utils.generate_params_table import generate_rst_table, parse_description, parse_type_or_enum
12
+
13
+ print(generate_rst_table(user_parameters_schema["properties"]))
14
+ # json_obj = json.dumps(user_parameters_schema, sort_keys=True, indent=4)
15
+ # print('.. code-block:: JavaScript\n\n %s\n\n' % json_obj)
@@ -12,4 +12,5 @@ dependencies:
12
12
  - python=3.10
13
13
  - root=6.26.10
14
14
  - setuptools_scm
15
- - sphinx_rtd_theme
15
+ - sphinx_rtd_theme
16
+ - furo
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.23.2'
16
- __version_tuple__ = version_tuple = (0, 23, 2)
15
+ __version__ = version = '0.25.0'
16
+ __version_tuple__ = version_tuple = (0, 25, 0)
@@ -73,9 +73,25 @@ def init_parser(parser):
73
73
  '-j',
74
74
  metavar='job_per_worker',
75
75
  type=int,
76
- default=5,
76
+ default=1,
77
77
  help='the number of jobs per worker')
78
78
 
79
+ # memory
80
+ parser.add_argument('--memory',
81
+ '-m',
82
+ metavar='memory',
83
+ type=str,
84
+ default='6GB',
85
+ help='the memory for each job')
86
+
87
+ # disk
88
+ parser.add_argument('--disk',
89
+ '-k',
90
+ metavar='disk',
91
+ type=str,
92
+ default='4GB',
93
+ help='the disk space for each job')
94
+
79
95
  # compress json
80
96
  parser.add_argument('--compress_json',
81
97
  action='store_true',
@@ -124,6 +140,8 @@ def command(args):
124
140
  conda_env=args.conda_env,
125
141
  additional_init=args.additional_init,
126
142
  n_proc=args.n_proc,
143
+ memory=args.memory,
144
+ disk=args.disk,
127
145
  accounting_group=args.accounting_group,
128
146
  job_per_worker=args.job_per_worker,
129
147
  submit=args.submit,
@@ -99,6 +99,46 @@ schema = {
99
99
  "default": {},
100
100
  "cwb": False
101
101
  },
102
+ "gps_start": {
103
+ "type": "number",
104
+ "description": "start gps time, used together with gps_end for generating job segments",
105
+ "cwb": False
106
+ },
107
+ "gps_end": {
108
+ "type": "number",
109
+ "description": "end gps time, used together with gps_start for generating job segments",
110
+ "cwb": False
111
+ },
112
+ "gps_center": {
113
+ "type": "number",
114
+ "description": "center gps time, used together with time_left and time_right for generating job segments",
115
+ "cwb": False
116
+ },
117
+ "time_left": {
118
+ "type": "number",
119
+ "description": "left time offset from gps_center, used together with gps_center and time_right for generating job segments",
120
+ "cwb": False
121
+ },
122
+ "time_right": {
123
+ "type": "number",
124
+ "description": "right time offset from gps_center, used together with gps_center and time_left for generating job segments",
125
+ "cwb": False
126
+ },
127
+ "superevent": {
128
+ "type": "string",
129
+ "description": "superevent name, used together with time_left and time_right for generating job segments",
130
+ "cwb": False
131
+ },
132
+ "gwdatafind": {
133
+ "type": "object",
134
+ "description": "If the gwdatafind is set, the framefiles can be pulled from the LIGO data server, "
135
+ "the support keys are: site, frametype, host. Example: ",
136
+ " site: ['L','H']"
137
+ " frametype: ['L1_HOFT_C00','H1_HOFT_C00']"
138
+ " host: 'datafind.ldas.cit:80'"
139
+ "default": {},
140
+ "cwb": False
141
+ },
102
142
  "WDM_beta_order": {
103
143
  "type": "integer",
104
144
  "description": "WDM default parameters: beta function order for Meyer",
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  import logging
3
3
  from filelock import SoftFileLock
4
- import json
4
+ import orjson
5
5
  import pycwb
6
6
  from pycwb.config import Config
7
7
  from pycwb.types.job import WaveSegment
@@ -32,13 +32,13 @@ def create_catalog(filename: str, config: Config, jobs: list[WaveSegment]) -> No
32
32
  output = {
33
33
  "config": config.__dict__,
34
34
  "version": pycwb.__version__,
35
- "jobs": [job.to_dict() for job in jobs],
35
+ "jobs": jobs,
36
36
  "events": []
37
37
  }
38
38
 
39
39
  with SoftFileLock(filename + ".lock", timeout=10):
40
- with open(filename, 'w') as f:
41
- json.dump(output, f, default=vars)
40
+ with open(filename, 'wb') as f:
41
+ f.write(orjson.dumps(output, option=orjson.OPT_SERIALIZE_NUMPY))
42
42
 
43
43
 
44
44
  def add_events_to_catalog(filename: str, events: list[Event]) -> None:
@@ -64,13 +64,13 @@ def add_events_to_catalog(filename: str, events: list[Event]) -> None:
64
64
  if os.path.exists(filename):
65
65
  with SoftFileLock(filename + ".lock", timeout=10):
66
66
  # read the json file
67
- with open(filename, 'r+') as f:
68
- catalog = json.load(f)
67
+ with open(filename, 'rb+') as f:
68
+ catalog = orjson.loads(f.read())
69
69
  # append events
70
70
  catalog["events"].extend(events)
71
71
  # write the json file
72
72
  f.seek(0)
73
- json.dump(catalog, f)
73
+ f.write(orjson.dumps(catalog, option=orjson.OPT_SERIALIZE_NUMPY))
74
74
  else:
75
75
  logger.warning("Catalog file does not exist. Event will not be saved to catalog.")
76
76
 
@@ -24,6 +24,7 @@ def whitening(config, h):
24
24
  layers_white = 2 ** config.l_white if config.l_white > 0 else 2 ** config.l_high
25
25
  wdm_white = WDM(layers_white, layers_white, config.WDM_beta_order, config.WDM_precision)
26
26
 
27
+ # TODO: check the length of data and white parameters to prevent freezing
27
28
  # check if whitening WDM filter lenght is less than cwb scratch
28
29
  wdmFlen = wdm_white.m_H / config.rateANA
29
30
  if wdmFlen > config.segEdge + 0.001:
@@ -0,0 +1 @@
1
+ from .gracedb import *
@@ -0,0 +1,40 @@
1
+ from ligo.gracedb.rest import GraceDb
2
+ from ligo.gracedb.exceptions import HTTPError
3
+
4
+
5
+ def get_superevent(event_name):
6
+ """
7
+ Get the super event for a given event name.
8
+
9
+ :param event_name: The name of the event.
10
+ :type event_name: str
11
+ :return: The super event.
12
+ :rtype: dict
13
+ """
14
+ client = GraceDb()
15
+ try:
16
+ response = client.superevent(event_name).json()
17
+ except HTTPError as e:
18
+ if e.response.status_code == 404:
19
+ print('No super event found for event {}'.format(event_name))
20
+ return None
21
+ else:
22
+ raise
23
+
24
+ return response
25
+
26
+
27
+ def get_superevent_t0(event_name):
28
+ """
29
+ Get the GPS time of the super event for a given event name.
30
+
31
+ :param event_name: The name of the event.
32
+ :type event_name: str
33
+ :return: The GPS time of the super event.
34
+ :rtype: float
35
+ """
36
+ super_event = get_superevent(event_name)
37
+ if super_event is None:
38
+ return None
39
+
40
+ return super_event['t_0']
@@ -0,0 +1,4 @@
1
+ name: gracedb
2
+ author: pycWB
3
+ description: A interface for the LIGO/Virgo GraceDB database
4
+ dependencies: ["ligo-proxy-utils", "ligo-gracedb"]
@@ -0,0 +1,27 @@
1
+ import unittest
2
+ from .gracedb import get_superevent_t0, get_superevent
3
+
4
+ class TestGraceDB(unittest.TestCase):
5
+
6
+ def test_get_superevent_t0(self):
7
+ event_name = 'S241011k'
8
+ t0 = get_superevent_t0(event_name)
9
+ self.assertAlmostEqual(t0, 1412725132.96, places=1)
10
+
11
+ def test_get_superevent_t0_no_event(self):
12
+ event_name = 'S000000a'
13
+ t0 = get_superevent_t0(event_name)
14
+ self.assertIsNone(t0)
15
+
16
+ def test_get_superevent(self):
17
+ event_name = 'S241011k'
18
+ super_event = get_superevent(event_name)
19
+ self.assertEqual(super_event['superevent_id'], event_name)
20
+
21
+ def test_get_superevent_no_event(self):
22
+ event_name = 'S000000a'
23
+ super_event = get_superevent(event_name)
24
+ self.assertIsNone(super_event)
25
+
26
+ if __name__ == '__main__':
27
+ unittest.main()
@@ -6,7 +6,7 @@ from pycwb.types.job import WaveSegment
6
6
  logger = logging.getLogger(__name__)
7
7
 
8
8
 
9
- def read_seg_list(dq_file_list, dq_cat):
9
+ def read_seg_list(dq_file_list=None, dq_cat='CWB_CAT1', periods=None):
10
10
  """Load the files contains segment list from the data quality files below the data quality category (dq_file.load_file)).
11
11
  Then merge the segment list (merge_seg_list) and return the merged segment list.
12
12
 
@@ -14,14 +14,22 @@ def read_seg_list(dq_file_list, dq_cat):
14
14
  :type dq_file_list: list[DQFile]
15
15
  :param dq_cat: The data quality category.
16
16
  :type dq_cat: str
17
+ :param periods: Given start and stop periods.
18
+ :type periods: tuple[list[int], list[int]]
17
19
  :return: A list of segments.
18
20
  :rtype: list[WaveSegment]
19
21
  """
20
22
  seg_list = []
21
- for dq_file in dq_file_list:
22
- if dq_file.dq_cat <= dq_cat:
23
- logger.info(f"Loading data quality file {dq_file.file}")
24
- seg_list.append(dq_file.get_periods())
23
+ if dq_file_list is None or len(dq_file_list) == 0:
24
+ seg_list.append(([0], [np.inf]))
25
+ else:
26
+ for dq_file in dq_file_list:
27
+ if dq_file.dq_cat <= dq_cat:
28
+ logger.info(f"Loading data quality file {dq_file.file}")
29
+ seg_list.append(dq_file.get_periods())
30
+
31
+ if periods is not None:
32
+ seg_list.append(periods)
25
33
 
26
34
  if len(seg_list) == 0:
27
35
  logger.error("No CWB_CAT=%s files in the list", dq_cat)
@@ -93,7 +101,7 @@ def get_seg_list(ifo, dq_list, seg_len, seg_mls, seg_edge):
93
101
  return []
94
102
 
95
103
 
96
- def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
104
+ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge, sample_rate, shift=None, index_start=0):
97
105
  """
98
106
  Build the job segment list.
99
107
 
@@ -108,6 +116,8 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
108
116
  output segA : xxx---------xxx \n
109
117
  output segB : xxx----------xxx \n
110
118
 
119
+ :param ifos: list of interferometers
120
+ :type ifos: list[str]
111
121
  :param dq_list: number of detectors
112
122
  :type dq_list: list[DQFile]
113
123
  :param seg_len: Segment length [sec]
@@ -116,6 +126,12 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
116
126
  :type seg_mls: int
117
127
  :param seg_edge: wavelet boundary offset [sec]
118
128
  :type seg_edge: int
129
+ :param sample_rate: sample rate [Hz]
130
+ :type sample_rate: int
131
+ :param shift: list of shifts for each interferometer, used for superlags
132
+ :type shift: list[float]
133
+ :param index_start: index of the first segment
134
+ :type index_start: int
119
135
  :return: Return the job segment list
120
136
  :rtype: list[WaveSegment]
121
137
  """
@@ -126,7 +142,7 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
126
142
  lostlivetime = 0
127
143
  job_list = []
128
144
 
129
- seg_index = 0
145
+ seg_index = index_start
130
146
 
131
147
  for i in range(len(dq_list[0])):
132
148
  start = math.ceil(dq_list[0][i]) + seg_edge
@@ -141,7 +157,8 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
141
157
  lostlivetime += length
142
158
  continue
143
159
  seg_index += 1
144
- job_list.append(WaveSegment(seg_index, ifos, start, stop))
160
+ job_list.append(WaveSegment(seg_index, ifos, start, stop,
161
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
145
162
  continue
146
163
  if n == 1:
147
164
  if length > seg_len:
@@ -149,32 +166,40 @@ def get_job_list(ifos, dq_list, seg_len, seg_mls, seg_edge):
149
166
  half = int(remainder / 2)
150
167
  if half >= seg_mls:
151
168
  seg_index += 1
152
- job_list.append(WaveSegment(seg_index, ifos, start, start + half))
169
+ job_list.append(WaveSegment(seg_index, ifos, start, start + half,
170
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
153
171
 
154
172
  seg_index += 1
155
- job_list.append(WaveSegment(seg_index, ifos, start + half, stop))
173
+ job_list.append(WaveSegment(seg_index, ifos, start + half, stop,
174
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
156
175
  else:
157
176
  seg_index += 1
158
- job_list.append(WaveSegment(seg_index, ifos, start, start + seg_len))
177
+ job_list.append(WaveSegment(seg_index, ifos, start, start + seg_len,
178
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
159
179
  else:
160
180
  seg_index += 1
161
- job_list.append(WaveSegment(i, ifos, start, stop))
181
+ job_list.append(WaveSegment(i, ifos, start, stop,
182
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
162
183
  continue
163
184
 
164
185
  for j in range(n - 1):
165
186
  seg_index += 1
166
- job_list.append(WaveSegment(seg_index, ifos, seg_len * j + start, seg_len * j + start + seg_len))
187
+ job_list.append(WaveSegment(seg_index, ifos, seg_len * j + start, seg_len * j + start + seg_len,
188
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
167
189
 
168
190
  remainder = stop - job_list[-1].end_time
169
191
  half = int(remainder / 2)
170
192
  if half >= seg_mls:
171
193
  seg_index += 1
172
- job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + half))
194
+ job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + half,
195
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
173
196
  seg_index += 1
174
- job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, stop))
197
+ job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, stop,
198
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
175
199
  else:
176
200
  seg_index += 1
177
- job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + seg_len))
201
+ job_list.append(WaveSegment(seg_index, ifos, job_list[-1].end_time, job_list[-1].end_time + seg_len,
202
+ seg_edge=seg_edge, sample_rate=sample_rate, shift=shift))
178
203
 
179
204
  logger.info('lost livetime after building of the standard job list = %d sec' % lostlivetime)
180
205
 
@@ -65,9 +65,9 @@ def select_frame_list(frame_list, start, stop, seg_edge):
65
65
  :param frame_list: list of frame metadata
66
66
  :type frame_list: list[FrameFile]
67
67
  :param start: start time of the segment
68
- :type start: int
68
+ :type start: int or float
69
69
  :param stop: stop time of the segment
70
- :type stop: int
70
+ :type stop: int or float
71
71
  :param seg_edge: buffer of the segment
72
72
  :type seg_edge: int or float
73
73
  :return: list of frame
@@ -81,3 +81,48 @@ def select_frame_list(frame_list, start, stop, seg_edge):
81
81
  return frame_list
82
82
 
83
83
 
84
+ def get_frame_files_from_gwdatafind(ifo, site, frametype, start, stop, seg_edge, host=None):
85
+ """
86
+ Use gwdatafind to get the frame files for the job segments
87
+
88
+ :param ifo: name of the interferometer
89
+ :type ifo: str
90
+ :param site: site name of the interferometer
91
+ :type site: str
92
+ :param frametype: frame type
93
+ :type frametype: str
94
+ :param start: start time of the segment
95
+ :type start: int or float
96
+ :param stop: stop time of the segment
97
+ :type stop: int or float
98
+ :param seg_edge: buffer of the segment
99
+ :type seg_edge: int or float
100
+ :param host: host name of the frame server
101
+ :type host: str
102
+
103
+ :return: list of frame files
104
+ :rtype: list[FrameFile]
105
+ """
106
+ from gwdatafind import find_urls
107
+
108
+ seg_start = start - seg_edge
109
+ seg_stop = stop + seg_edge
110
+
111
+ frame_list = []
112
+
113
+ url = find_urls(site, frametype, seg_start, seg_stop, host=host)
114
+ frame_paths = [fp.replace("file://localhost", "") for fp in url]
115
+
116
+ for frame_path in frame_paths:
117
+ # get the file name without the extension with pathlib
118
+ frame_name = Path(frame_path).stem
119
+ # get the gps time and duration with int type
120
+ gps_start, duration = [int(i) for i in frame_name.split("-")[-2:]]
121
+ # append the frame file to the list
122
+ frame_list.append(FrameFile(ifo, frame_path, gps_start, duration))
123
+
124
+ # TODO: check if the framefiles match with the seg_start and seg_stop
125
+
126
+ return frame_list
127
+
128
+