dttlib 0.7.7__tar.gz → 0.8.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.

Potentially problematic release.


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

Files changed (160) hide show
  1. {dttlib-0.7.7 → dttlib-0.8.0}/Cargo.lock +9 -8
  2. {dttlib-0.7.7 → dttlib-0.8.0}/Cargo.toml +2 -2
  3. {dttlib-0.7.7 → dttlib-0.8.0}/PKG-INFO +1 -1
  4. {dttlib-0.7.7 → dttlib-0.8.0}/dttlib.pyi +4 -2
  5. dttlib-0.8.0/pypi_build/py_versions.sh +2 -0
  6. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/graph/analysis.rs +14 -3
  7. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/dummy.rs +8 -8
  8. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/random.rs +8 -8
  9. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/channel.rs +17 -11
  10. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/channel_settings.rs +8 -7
  11. {dttlib-0.7.7 → dttlib-0.8.0}/src/run.rs +6 -2
  12. {dttlib-0.7.7 → dttlib-0.8.0}/src/user/mod.rs +1 -1
  13. dttlib-0.7.7/pypi_build/py_versions.sh +0 -2
  14. {dttlib-0.7.7 → dttlib-0.8.0}/.cargo/config.toml +0 -0
  15. {dttlib-0.7.7 → dttlib-0.8.0}/.devcontainer/Dockerfile +0 -0
  16. {dttlib-0.7.7 → dttlib-0.8.0}/.devcontainer/devcontainer.json +0 -0
  17. {dttlib-0.7.7 → dttlib-0.8.0}/.gitignore +0 -0
  18. {dttlib-0.7.7 → dttlib-0.8.0}/.gitlab-ci.yml +0 -0
  19. {dttlib-0.7.7 → dttlib-0.8.0}/.python-version +0 -0
  20. {dttlib-0.7.7 → dttlib-0.8.0}/CHANGES.md +0 -0
  21. {dttlib-0.7.7 → dttlib-0.8.0}/COPYING +0 -0
  22. {dttlib-0.7.7 → dttlib-0.8.0}/COPYING-GPL-3 +0 -0
  23. {dttlib-0.7.7 → dttlib-0.8.0}/PUBLISH.md +0 -0
  24. {dttlib-0.7.7 → dttlib-0.8.0}/README.md +0 -0
  25. {dttlib-0.7.7 → dttlib-0.8.0}/bacon.toml +0 -0
  26. {dttlib-0.7.7 → dttlib-0.8.0}/build.rs +0 -0
  27. {dttlib-0.7.7 → dttlib-0.8.0}/build_wheel.sh +0 -0
  28. {dttlib-0.7.7 → dttlib-0.8.0}/cycle.sh +0 -0
  29. {dttlib-0.7.7 → dttlib-0.8.0}/devel_bullseye.sh +0 -0
  30. {dttlib-0.7.7 → dttlib-0.8.0}/docs/cache_design.md +0 -0
  31. {dttlib-0.7.7 → dttlib-0.8.0}/dtt_macros/Cargo.toml +0 -0
  32. {dttlib-0.7.7 → dttlib-0.8.0}/dtt_macros/src/builder_lite.rs +0 -0
  33. {dttlib-0.7.7 → dttlib-0.8.0}/dtt_macros/src/lib.rs +0 -0
  34. {dttlib-0.7.7 → dttlib-0.8.0}/gen_stub +0 -0
  35. {dttlib-0.7.7 → dttlib-0.8.0}/include/nds2.h +0 -0
  36. {dttlib-0.7.7 → dttlib-0.8.0}/linked_libraries.json +0 -0
  37. {dttlib-0.7.7 → dttlib-0.8.0}/pipeline_macros/Cargo.toml +0 -0
  38. {dttlib-0.7.7 → dttlib-0.8.0}/pipeline_macros/src/box_async.rs +0 -0
  39. {dttlib-0.7.7 → dttlib-0.8.0}/pipeline_macros/src/derive.rs +0 -0
  40. {dttlib-0.7.7 → dttlib-0.8.0}/pipeline_macros/src/gen.rs +0 -0
  41. {dttlib-0.7.7 → dttlib-0.8.0}/pipeline_macros/src/lib.rs +0 -0
  42. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/Cargo.toml +0 -0
  43. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/README.md +0 -0
  44. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/accumulator.rs +0 -0
  45. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/complex.rs +0 -0
  46. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/lib.rs +0 -0
  47. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/pipe.rs +0 -0
  48. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/publisher.rs +0 -0
  49. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/python.rs +0 -0
  50. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/stateless/mod.rs +0 -0
  51. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/stateless/pure.rs +0 -0
  52. {dttlib-0.7.7 → dttlib-0.8.0}/pipelines/src/unsynced_pipe.rs +0 -0
  53. {dttlib-0.7.7 → dttlib-0.8.0}/publish_bullseye.sh +0 -0
  54. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/build.sh +0 -0
  55. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/build_docker.sh +0 -0
  56. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/build_docker_base.sh +0 -0
  57. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/build_docker_debian.sh +0 -0
  58. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild/Dockerfile +0 -0
  59. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild/install_python.sh +0 -0
  60. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild_base/Dockerfile +0 -0
  61. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild_base/build_clang.sh +0 -0
  62. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild_base_conda/Dockerfile +0 -0
  63. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild_base_conda/dttbuild.yaml +0 -0
  64. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build/dttbuild_debian/Dockerfile +0 -0
  65. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_build.sh +0 -0
  66. {dttlib-0.7.7 → dttlib-0.8.0}/pypi_upload.sh +0 -0
  67. {dttlib-0.7.7 → dttlib-0.8.0}/pyproject.toml +0 -0
  68. {dttlib-0.7.7 → dttlib-0.8.0}/run.py +0 -0
  69. {dttlib-0.7.7 → dttlib-0.8.0}/setup_conda.sh +0 -0
  70. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/arithmetic/average.rs +0 -0
  71. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/arithmetic/mod.rs +0 -0
  72. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/arithmetic/real.rs +0 -0
  73. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/arithmetic/sqrt.rs +0 -0
  74. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/convert.rs +0 -0
  75. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/decimate.rs +0 -0
  76. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/heterodyne.rs +0 -0
  77. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/mod.rs +0 -0
  78. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/partition.rs +0 -0
  79. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/subtract_start_average.rs +0 -0
  80. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/time_delay.rs +0 -0
  81. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/time_shift.rs +0 -0
  82. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/conditioning/trim.rs +0 -0
  83. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/custom/mod.rs +0 -0
  84. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/fourier_tools/asd.rs +0 -0
  85. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/fourier_tools/csd.rs +0 -0
  86. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/fourier_tools/fft.rs +0 -0
  87. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/fourier_tools/mod.rs +0 -0
  88. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/general/identity.rs +0 -0
  89. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/general/into.rs +0 -0
  90. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/general/maybe_into.rs +0 -0
  91. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/general/mod.rs +0 -0
  92. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/graph/graph_to_pipeline.rs +0 -0
  93. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/graph/mod.rs +0 -0
  94. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/graph/scheme.rs +0 -0
  95. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/graph/view_graph_to_pipeline.rs +0 -0
  96. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/mod.rs +0 -0
  97. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/analysis_id.rs +0 -0
  98. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/analysis_result.rs +0 -0
  99. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/edge_data_type.rs +0 -0
  100. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/freq_domain_value.rs +0 -0
  101. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/mod.rs +0 -0
  102. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/record.rs +0 -0
  103. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/result/time_domain_value.rs +0 -0
  104. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/scope/downsample.rs +0 -0
  105. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/scope/inline_fft.rs +0 -0
  106. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/scope/mod.rs +0 -0
  107. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/scope/splice.rs +0 -0
  108. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/types/frequency_domain_array.rs +0 -0
  109. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/types/linear.rs +0 -0
  110. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/types/math_traits.rs +0 -0
  111. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/types/mod.rs +0 -0
  112. {dttlib-0.7.7 → dttlib-0.8.0}/src/analysis/types/time_domain_array.rs +0 -0
  113. {dttlib-0.7.7 → dttlib-0.8.0}/src/bin/stub_gen.rs +0 -0
  114. {dttlib-0.7.7 → dttlib-0.8.0}/src/c_math.rs +0 -0
  115. {dttlib-0.7.7 → dttlib-0.8.0}/src/constraints/mod.rs +0 -0
  116. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/buffer.rs +0 -0
  117. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/channel_query.rs +0 -0
  118. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/data_distributor.rs +0 -0
  119. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/data_source_pipeline.rs +0 -0
  120. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/mod.rs +0 -0
  121. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/nds2_direct.rs +0 -0
  122. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/nds_cache/gap_handler.rs +0 -0
  123. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/nds_cache/mod.rs +0 -0
  124. {dttlib-0.7.7 → dttlib-0.8.0}/src/data_source/no_data.rs +0 -0
  125. {dttlib-0.7.7 → dttlib-0.8.0}/src/errors.rs +0 -0
  126. {dttlib-0.7.7 → dttlib-0.8.0}/src/gds_sigp/asd.rs +0 -0
  127. {dttlib-0.7.7 → dttlib-0.8.0}/src/gds_sigp/decimate.rs +0 -0
  128. {dttlib-0.7.7 → dttlib-0.8.0}/src/gds_sigp/fft.rs +0 -0
  129. {dttlib-0.7.7 → dttlib-0.8.0}/src/gds_sigp/heterodyne.rs +0 -0
  130. {dttlib-0.7.7 → dttlib-0.8.0}/src/gds_sigp/mod.rs +0 -0
  131. {dttlib-0.7.7 → dttlib-0.8.0}/src/lib.rs +0 -0
  132. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/channel_id.rs +0 -0
  133. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/channel_type.rs +0 -0
  134. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/decimation_parameters/mod.rs +0 -0
  135. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/mod.rs +0 -0
  136. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/nds_data_type.rs +0 -0
  137. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/channel_params/unit.rs +0 -0
  138. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/constraints/mod.rs +0 -0
  139. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/custom_pipeline.rs +0 -0
  140. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/excitation_params.rs +0 -0
  141. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/mod.rs +0 -0
  142. {dttlib-0.7.7 → dttlib-0.8.0}/src/params/test_params.rs +0 -0
  143. {dttlib-0.7.7 → dttlib-0.8.0}/src/python/dtt_types.rs +0 -0
  144. {dttlib-0.7.7 → dttlib-0.8.0}/src/python/dttlib.rs +0 -0
  145. {dttlib-0.7.7 → dttlib-0.8.0}/src/python/mod.rs +0 -0
  146. {dttlib-0.7.7 → dttlib-0.8.0}/src/run_context.rs +0 -0
  147. {dttlib-0.7.7 → dttlib-0.8.0}/src/scope_view/mod.rs +0 -0
  148. {dttlib-0.7.7 → dttlib-0.8.0}/src/scope_view/pipeline_graph.rs +0 -0
  149. {dttlib-0.7.7 → dttlib-0.8.0}/src/scope_view/view_set.rs +0 -0
  150. {dttlib-0.7.7 → dttlib-0.8.0}/src/timeline/constraints.rs +0 -0
  151. {dttlib-0.7.7 → dttlib-0.8.0}/src/timeline/ffttools.rs +0 -0
  152. {dttlib-0.7.7 → dttlib-0.8.0}/src/timeline/general.rs +0 -0
  153. {dttlib-0.7.7 → dttlib-0.8.0}/src/timeline/init.rs +0 -0
  154. {dttlib-0.7.7 → dttlib-0.8.0}/src/timeline/mod.rs +0 -0
  155. {dttlib-0.7.7 → dttlib-0.8.0}/src/tokio_setup.rs +0 -0
  156. {dttlib-0.7.7 → dttlib-0.8.0}/test_dtt.py +0 -0
  157. {dttlib-0.7.7 → dttlib-0.8.0}/test_dttlib.py +0 -0
  158. {dttlib-0.7.7 → dttlib-0.8.0}/user_messages/Cargo.toml +0 -0
  159. {dttlib-0.7.7 → dttlib-0.8.0}/user_messages/src/lib.rs +0 -0
  160. {dttlib-0.7.7 → dttlib-0.8.0}/wrapper.h +0 -0
@@ -1408,7 +1408,7 @@ checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
1408
1408
 
1409
1409
  [[package]]
1410
1410
  name = "dtt_macros"
1411
- version = "0.7.7"
1411
+ version = "0.8.0"
1412
1412
  dependencies = [
1413
1413
  "proc-macro2",
1414
1414
  "quote",
@@ -1417,7 +1417,7 @@ dependencies = [
1417
1417
 
1418
1418
  [[package]]
1419
1419
  name = "dttlib"
1420
- version = "0.7.7"
1420
+ version = "0.8.0"
1421
1421
  dependencies = [
1422
1422
  "bindgen",
1423
1423
  "dtt_macros",
@@ -2969,7 +2969,7 @@ dependencies = [
2969
2969
  [[package]]
2970
2970
  name = "nds-cache-rs"
2971
2971
  version = "0.1.0"
2972
- source = "git+https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git?tag=dev_15#9c24c21a129d5eb3f803ca1431578e682d3d4d00"
2972
+ source = "git+https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git?tag=dev_18#7fc14bd2ad2cf4c027cb212ab171752c9cc5b46c"
2973
2973
  dependencies = [
2974
2974
  "arrakis",
2975
2975
  "bitcode",
@@ -3008,7 +3008,7 @@ dependencies = [
3008
3008
 
3009
3009
  [[package]]
3010
3010
  name = "nds_test"
3011
- version = "0.7.7"
3011
+ version = "0.8.0"
3012
3012
  dependencies = [
3013
3013
  "dttlib",
3014
3014
  "eframe",
@@ -3572,7 +3572,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
3572
3572
 
3573
3573
  [[package]]
3574
3574
  name = "pipeline_macros"
3575
- version = "0.7.7"
3575
+ version = "0.8.0"
3576
3576
  dependencies = [
3577
3577
  "proc-macro2",
3578
3578
  "quote",
@@ -3581,7 +3581,7 @@ dependencies = [
3581
3581
 
3582
3582
  [[package]]
3583
3583
  name = "pipelines"
3584
- version = "0.7.7"
3584
+ version = "0.8.0"
3585
3585
  dependencies = [
3586
3586
  "futures",
3587
3587
  "num-complex",
@@ -4770,11 +4770,12 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
4770
4770
  [[package]]
4771
4771
  name = "ts-tree-rs"
4772
4772
  version = "0.1.0"
4773
- source = "git+https://git.ligo.org/cds/software/cr_tools/ts-tree-rs.git?tag=dev_0#820b9e90eb407bea60044531c2745a7cc0654872"
4773
+ source = "git+https://git.ligo.org/cds/software/cr_tools/ts-tree-rs.git?tag=dev_1#5d55d4d1fa6bbb8299fc68c98e64ce43f7539c61"
4774
4774
  dependencies = [
4775
4775
  "intrusive-collections",
4776
4776
  "itertools 0.13.0",
4777
4777
  "ligo_hires_gps_time",
4778
+ "log",
4778
4779
  "serde",
4779
4780
  ]
4780
4781
 
@@ -4860,7 +4861,7 @@ dependencies = [
4860
4861
 
4861
4862
  [[package]]
4862
4863
  name = "user_messages"
4863
- version = "0.7.7"
4864
+ version = "0.8.0"
4864
4865
  dependencies = [
4865
4866
  "log",
4866
4867
  "pretty_env_logger",
@@ -7,7 +7,7 @@ authors = ["Erik von Reis <erik.vonreis@ligo.org>"]
7
7
  edition = "2024"
8
8
  homepage = "https://git.ligo.org/cds/software/cr-tools/dtt_rust"
9
9
  repository = "https://git.ligo.org/cds/software/cr-tools/dtt_rust"
10
- version = "0.7.7"
10
+ version = "0.8.0"
11
11
 
12
12
  [package]
13
13
  name = "dttlib"
@@ -82,7 +82,7 @@ num-rational = {version = "0.4"}
82
82
 
83
83
  # ligo
84
84
  nds2_client_rs = { git="https://git.ligo.org/erik.vonreis/nds_client_rs.git", tag = "dev_0", optional = true }
85
- nds-cache-rs = { git = "https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git", tag = "dev_15"}
85
+ nds-cache-rs = { git = "https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git", tag = "dev_18"}
86
86
  ligo_hires_gps_time = {workspace = true}
87
87
 
88
88
  # workspace
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dttlib
3
- Version: 0.7.7
3
+ Version: 0.8.0
4
4
  License-File: COPYING
5
5
  License-File: COPYING-GPL-3
6
6
  Summary: Advanced LIGO core library for online and offline frequency-domain diagnostics tool.
@@ -49,7 +49,7 @@ class Channel:
49
49
  @property
50
50
  def channel_type(self) -> ChannelType: ...
51
51
  @property
52
- def rate_hz(self) -> builtins.float: ...
52
+ def period(self) -> PipDuration: ...
53
53
  @property
54
54
  def dcu_id(self) -> typing.Optional[builtins.int]: ...
55
55
  @property
@@ -76,8 +76,10 @@ class Channel:
76
76
  def online(self) -> builtins.bool: ...
77
77
  @property
78
78
  def testpoint(self) -> builtins.bool: ...
79
+ @property
80
+ def rate_hz(self) -> builtins.float: ...
79
81
  def __new__(
80
- cls, name: builtins.str, data_type: NDSDataType, rate_hz: builtins.float
82
+ cls, name: builtins.str, data_type: NDSDataType, period: PipDuration
81
83
  ) -> Channel: ...
82
84
 
83
85
  class ChannelId:
@@ -0,0 +1,2 @@
1
+
2
+ export PYVERS="3.9 3.10 3.11 3.12 3.13"
@@ -21,6 +21,7 @@ use crate::params::channel_params::ChannelSettings;
21
21
  use crate::params::channel_params::channel::Channel;
22
22
  use crate::params::channel_params::nds_data_type::NDSDataType::Float32;
23
23
  use crate::run_context::RunContext;
24
+ use ligo_hires_gps_time::PipDuration;
24
25
  use petgraph::algo::{connected_components, toposort};
25
26
  use petgraph::data::DataMap;
26
27
  use petgraph::graph::NodeIndex;
@@ -795,9 +796,19 @@ pub(crate) fn test_schemes<'a>(
795
796
  check_duplicate_names("per-channel scheme", per_channel_scheme)?;
796
797
  check_duplicate_names("cross-channel scheme", cross_channel_scheme)?;
797
798
 
798
- let a_chan = Channel::new("a_channel".to_string(), Float32, 0.0).into();
799
-
800
- let b_chan = Channel::new("b_channel".to_string(), Float32, 0.0).into();
799
+ let a_chan = Channel::new(
800
+ "a_channel".to_string(),
801
+ Float32,
802
+ PipDuration::from_seconds(1.0),
803
+ )
804
+ .into();
805
+
806
+ let b_chan = Channel::new(
807
+ "b_channel".to_string(),
808
+ Float32,
809
+ PipDuration::from_seconds(1.0),
810
+ )
811
+ .into();
801
812
 
802
813
  let channels = vec![a_chan, b_chan];
803
814
 
@@ -128,7 +128,7 @@ impl Dummy {
128
128
  }
129
129
 
130
130
  fn gen_data_for_channel(channel: &Channel, start: PipInstant, span: PipDuration) -> Buffer {
131
- let count = (span / PipDuration::freq_hz_to_period(channel.rate_hz)) as usize;
131
+ let count = (span / channel.period) as usize;
132
132
 
133
133
  match channel.data_type {
134
134
  NDSDataType::Int16 => {
@@ -137,7 +137,7 @@ impl Dummy {
137
137
  nds_cache_rs::buffer::Buffer::Int16(TimeSeries::new(
138
138
  channel.clone().into(),
139
139
  start,
140
- PipDuration::freq_hz_to_period(channel.rate_hz),
140
+ channel.period,
141
141
  v,
142
142
  ))
143
143
  .into()
@@ -148,7 +148,7 @@ impl Dummy {
148
148
  nds_cache_rs::buffer::Buffer::Int32(TimeSeries::new(
149
149
  channel.clone().into(),
150
150
  start,
151
- PipDuration::freq_hz_to_period(channel.rate_hz),
151
+ channel.period,
152
152
  v,
153
153
  ))
154
154
  .into()
@@ -159,7 +159,7 @@ impl Dummy {
159
159
  nds_cache_rs::buffer::Buffer::Int64(TimeSeries::new(
160
160
  channel.clone().into(),
161
161
  start,
162
- PipDuration::freq_hz_to_period(channel.rate_hz),
162
+ channel.period,
163
163
  v,
164
164
  ))
165
165
  .into()
@@ -170,7 +170,7 @@ impl Dummy {
170
170
  nds_cache_rs::buffer::Buffer::Float32(TimeSeries::new(
171
171
  channel.clone().into(),
172
172
  start,
173
- PipDuration::freq_hz_to_period(channel.rate_hz),
173
+ channel.period,
174
174
  v,
175
175
  ))
176
176
  .into()
@@ -181,7 +181,7 @@ impl Dummy {
181
181
  nds_cache_rs::buffer::Buffer::Float64(TimeSeries::new(
182
182
  channel.clone().into(),
183
183
  start,
184
- PipDuration::freq_hz_to_period(channel.rate_hz),
184
+ channel.period,
185
185
  v,
186
186
  ))
187
187
  .into()
@@ -192,7 +192,7 @@ impl Dummy {
192
192
  nds_cache_rs::buffer::Buffer::Complex32(TimeSeries::new(
193
193
  channel.clone().into(),
194
194
  start,
195
- PipDuration::freq_hz_to_period(channel.rate_hz),
195
+ channel.period,
196
196
  v,
197
197
  ))
198
198
  .into()
@@ -203,7 +203,7 @@ impl Dummy {
203
203
  nds_cache_rs::buffer::Buffer::UInt32(TimeSeries::new(
204
204
  channel.clone().into(),
205
205
  start,
206
- PipDuration::freq_hz_to_period(channel.rate_hz),
206
+ channel.period,
207
207
  v,
208
208
  ))
209
209
  .into()
@@ -135,7 +135,7 @@ impl RandomSource {
135
135
  }
136
136
 
137
137
  fn gen_data_for_channel(channel: &Channel, start: PipInstant, span: PipDuration) -> Buffer {
138
- let count = (span / PipDuration::freq_hz_to_period(channel.rate_hz)) as usize;
138
+ let count = (span / channel.period) as usize;
139
139
 
140
140
  let mut rng = rand::rng();
141
141
 
@@ -145,7 +145,7 @@ impl RandomSource {
145
145
  nds_cache_rs::buffer::Buffer::Int16(TimeSeries::new(
146
146
  channel.clone().into(),
147
147
  start,
148
- PipDuration::freq_hz_to_period(channel.rate_hz),
148
+ channel.period,
149
149
  v,
150
150
  ))
151
151
  .into()
@@ -155,7 +155,7 @@ impl RandomSource {
155
155
  nds_cache_rs::buffer::Buffer::Int32(TimeSeries::new(
156
156
  channel.clone().into(),
157
157
  start,
158
- PipDuration::freq_hz_to_period(channel.rate_hz),
158
+ channel.period,
159
159
  v,
160
160
  ))
161
161
  .into()
@@ -165,7 +165,7 @@ impl RandomSource {
165
165
  nds_cache_rs::buffer::Buffer::Int64(TimeSeries::new(
166
166
  channel.clone().into(),
167
167
  start,
168
- PipDuration::freq_hz_to_period(channel.rate_hz),
168
+ channel.period,
169
169
  v,
170
170
  ))
171
171
  .into()
@@ -175,7 +175,7 @@ impl RandomSource {
175
175
  nds_cache_rs::buffer::Buffer::Float32(TimeSeries::new(
176
176
  channel.clone().into(),
177
177
  start,
178
- PipDuration::freq_hz_to_period(channel.rate_hz),
178
+ channel.period,
179
179
  v,
180
180
  ))
181
181
  .into()
@@ -185,7 +185,7 @@ impl RandomSource {
185
185
  nds_cache_rs::buffer::Buffer::Float64(TimeSeries::new(
186
186
  channel.clone().into(),
187
187
  start,
188
- PipDuration::freq_hz_to_period(channel.rate_hz),
188
+ channel.period,
189
189
  v,
190
190
  ))
191
191
  .into()
@@ -197,7 +197,7 @@ impl RandomSource {
197
197
  nds_cache_rs::buffer::Buffer::Complex32(TimeSeries::new(
198
198
  channel.clone().into(),
199
199
  start,
200
- PipDuration::freq_hz_to_period(channel.rate_hz),
200
+ channel.period,
201
201
  v,
202
202
  ))
203
203
  .into()
@@ -207,7 +207,7 @@ impl RandomSource {
207
207
  nds_cache_rs::buffer::Buffer::UInt32(TimeSeries::new(
208
208
  channel.clone().into(),
209
209
  start,
210
- PipDuration::freq_hz_to_period(channel.rate_hz),
210
+ channel.period,
211
211
  v,
212
212
  ))
213
213
  .into()
@@ -22,7 +22,7 @@ pub struct Channel {
22
22
  pub name: String,
23
23
  pub data_type: NDSDataType,
24
24
  pub channel_type: ChannelType,
25
- pub rate_hz: f64,
25
+ pub period: PipDuration,
26
26
  pub dcu_id: Option<i64>,
27
27
  pub channel_number: Option<i64>,
28
28
  pub calibration: Option<i64>,
@@ -58,7 +58,7 @@ impl Hash for Channel {
58
58
 
59
59
  // rate
60
60
  // get period in pips_per_sec
61
- let period_pips = PipDuration::freq_hz_to_period(self.rate_hz);
61
+ let period_pips = self.period;
62
62
  period_pips.hash(state);
63
63
 
64
64
  // type
@@ -73,8 +73,8 @@ impl Hash for Channel {
73
73
  impl PartialEq<Self> for Channel {
74
74
  /// always update hash and PartialEq::eq to use the same data subset
75
75
  fn eq(&self, other: &Self) -> bool {
76
- let self_period_pips = PipDuration::freq_hz_to_period(self.rate_hz);
77
- let other_period_pips = PipDuration::freq_hz_to_period(other.rate_hz);
76
+ let self_period_pips = self.period;
77
+ let other_period_pips = self.period;
78
78
 
79
79
  (self.name == other.name)
80
80
  && (self_period_pips == other_period_pips)
@@ -89,11 +89,12 @@ impl Eq for Channel {}
89
89
  #[cfg(feature = "nds")]
90
90
  impl From<Channel> for nds2_client_rs::Channel {
91
91
  fn from(value: Channel) -> Self {
92
+ let sample_rate = value.rate_hz();
92
93
  Self {
93
94
  name: value.name,
94
95
  channel_type: value.channel_type.into(),
95
96
  data_type: value.data_type.into(),
96
- sample_rate: value.rate_hz,
97
+ sample_rate,
97
98
  gain: value.gain.unwrap_or(1.0) as f32,
98
99
  slope: value.slope.unwrap_or(1.0) as f32,
99
100
  offset: value.offset.unwrap_or(0.0) as f32,
@@ -108,7 +109,7 @@ impl From<Channel> for nds_cache_rs::buffer::Channel {
108
109
  value.name,
109
110
  nds_cache_rs::buffer::ChannelType::Raw,
110
111
  value.data_type.into(),
111
- value.rate_hz,
112
+ value.period,
112
113
  value.gain.unwrap_or(1.0) as f32,
113
114
  value.slope.unwrap_or(1.0) as f32,
114
115
  value.offset.unwrap_or(0.0) as f32,
@@ -145,7 +146,7 @@ impl TryFrom<nds_cache_rs::buffer::Channel> for Channel {
145
146
  name,
146
147
  data_type: value.data_type().into(),
147
148
  channel_type: value.channel_type().into(),
148
- rate_hz: value.sample_rate().into(),
149
+ period: value.period(),
149
150
  gain: Some(value.gain() as f64),
150
151
  offset: Some(value.offset() as f64),
151
152
  slope: Some(value.slope() as f64),
@@ -185,9 +186,9 @@ impl PartialOrd for Channel {
185
186
  Some(Ordering::Less)
186
187
  } else if self.name > other.name {
187
188
  Some(Ordering::Greater)
188
- } else if self.rate_hz < other.rate_hz {
189
+ } else if self.period > other.period {
189
190
  Some(Ordering::Less)
190
- } else if self.rate_hz > other.rate_hz {
191
+ } else if self.period < other.period {
191
192
  Some(Ordering::Greater)
192
193
  } else if self.data_type == other.data_type {
193
194
  Some(Ordering::Equal)
@@ -201,11 +202,11 @@ impl PartialOrd for Channel {
201
202
  #[cfg_attr(any(feature = "python", feature = "python-pipe"), pymethods)]
202
203
  impl Channel {
203
204
  #[new]
204
- pub fn new(name: String, data_type: NDSDataType, rate_hz: f64) -> Self {
205
+ pub fn new(name: String, data_type: NDSDataType, period: PipDuration) -> Self {
205
206
  Channel {
206
207
  name,
207
208
  data_type,
208
- rate_hz,
209
+ period,
209
210
  ..Default::default()
210
211
  }
211
212
  }
@@ -220,4 +221,9 @@ impl Channel {
220
221
  pub fn testpoint(&self) -> bool {
221
222
  self.channel_type == ChannelType::TestPoint
222
223
  }
224
+
225
+ #[getter]
226
+ pub fn rate_hz(&self) -> f64 {
227
+ self.period.period_to_freq_hz()
228
+ }
223
229
  }
@@ -17,6 +17,7 @@ use crate::run_context::RunContext;
17
17
  use crate::timeline::Timeline;
18
18
  #[cfg(not(any(feature = "python", feature = "python-pipe")))]
19
19
  use dtt_macros::{getter, new};
20
+ use ligo_hires_gps_time::PipDuration;
20
21
  use pipelines::complex::{c64, c128};
21
22
  use pipelines::{PipeDataPrimitive, PipelineSubscriber};
22
23
  #[cfg(any(feature = "python", feature = "python-pipe"))]
@@ -77,8 +78,8 @@ impl Hash for ChannelSettings {
77
78
  #[cfg_attr(any(feature = "python", feature = "python-pipe"), pymethods)]
78
79
  impl ChannelSettings {
79
80
  #[new]
80
- pub fn new(channel_name: String, data_type: NDSDataType, rate_hz: f64) -> Self {
81
- let channel = Channel::new(channel_name, data_type, rate_hz);
81
+ pub fn new(channel_name: String, data_type: NDSDataType, period: PipDuration) -> Self {
82
+ let channel = Channel::new(channel_name, data_type, period);
82
83
  Self {
83
84
  channel,
84
85
  ..Self::default()
@@ -97,7 +98,7 @@ impl ChannelSettings {
97
98
 
98
99
  #[getter]
99
100
  pub fn rate_hz(&self) -> f64 {
100
- self.channel.rate_hz
101
+ self.channel.rate_hz()
101
102
  }
102
103
  }
103
104
 
@@ -119,7 +120,7 @@ impl ChannelSettings {
119
120
  if is_complex {
120
121
  self.raw_decimation_params = DecimationParameters::new(
121
122
  DecimationFilter::FirLS3,
122
- self.channel.rate_hz,
123
+ self.channel.rate_hz(),
123
124
  heterodyned_sample_rate_hz,
124
125
  )?;
125
126
 
@@ -131,7 +132,7 @@ impl ChannelSettings {
131
132
  // decimation down to the raw sample rate first, but don't time shift.
132
133
  self.raw_decimation_params = DecimationParameters::new(
133
134
  DecimationFilter::FirLS3,
134
- self.channel.rate_hz,
135
+ self.channel.rate_hz(),
135
136
  sample_max_hz,
136
137
  )?;
137
138
 
@@ -146,7 +147,7 @@ impl ChannelSettings {
146
147
  // not heterodyned
147
148
  self.raw_decimation_params = DecimationParameters::new(
148
149
  DecimationFilter::FirLS1,
149
- self.channel.rate_hz,
150
+ self.channel.rate_hz(),
150
151
  sample_max_hz,
151
152
  )?;
152
153
  self.heterodyned_decimation_params = DecimationParameters::default();
@@ -158,7 +159,7 @@ impl ChannelSettings {
158
159
 
159
160
  self.decimation_delays = DecimationDelays::new(
160
161
  remove_delay,
161
- self.channel.rate_hz,
162
+ self.channel.rate_hz(),
162
163
  total_decs,
163
164
  self.raw_decimation_params.filter,
164
165
  );
@@ -165,7 +165,7 @@ mod tests {
165
165
  use crate::tokio_setup::tokio_init;
166
166
  use crate::user::{DTT, UserOutputReceiver};
167
167
  use lazy_static::lazy_static;
168
- use ligo_hires_gps_time::PipInstant;
168
+ use ligo_hires_gps_time::{PipDuration, PipInstant};
169
169
  use tokio::time::Duration;
170
170
 
171
171
  fn test_parameters(num_chans: usize, averages: u64) -> TestParams {
@@ -175,7 +175,11 @@ mod tests {
175
175
 
176
176
  ChannelParams {
177
177
  active: true,
178
- channel: Channel::new(channel_name, NDSDataType::Float64, 2048.0),
178
+ channel: Channel::new(
179
+ channel_name,
180
+ NDSDataType::Float64,
181
+ PipDuration::freq_hz_to_period(2048.0),
182
+ ),
179
183
  }
180
184
  })
181
185
  .collect();
@@ -704,7 +704,7 @@ mod tests {
704
704
  name: "X1:NOT-A_CHANNEL".to_string(),
705
705
  channel_type: ChannelType::Unknown,
706
706
  data_type: NDSDataType::Float64,
707
- rate_hz: 16384.0,
707
+ period: PipDuration::freq_hz_to_period(16384.0),
708
708
  dcu_id: None,
709
709
  channel_number: None,
710
710
  calibration: None,
@@ -1,2 +0,0 @@
1
-
2
- export PYVERS="3.9 3.10 3.11 3.12"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes