dttlib 0.7.4__tar.gz → 0.7.5__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 (175) hide show
  1. {dttlib-0.7.4 → dttlib-0.7.5}/Cargo.lock +7 -7
  2. {dttlib-0.7.4 → dttlib-0.7.5}/Cargo.toml +2 -2
  3. {dttlib-0.7.4 → dttlib-0.7.5}/PKG-INFO +1 -1
  4. {dttlib-0.7.4 → dttlib-0.7.5}/build.rs +6 -5
  5. dttlib-0.7.5/cycle.sh +16 -0
  6. {dttlib-0.7.4 → dttlib-0.7.5}/dtt_macros/src/builder_lite.rs +16 -16
  7. {dttlib-0.7.4 → dttlib-0.7.5}/dtt_macros/src/lib.rs +3 -3
  8. {dttlib-0.7.4 → dttlib-0.7.5}/pipeline_macros/src/box_async.rs +6 -7
  9. {dttlib-0.7.4 → dttlib-0.7.5}/pipeline_macros/src/derive.rs +9 -8
  10. {dttlib-0.7.4 → dttlib-0.7.5}/pipeline_macros/src/lib.rs +3 -3
  11. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/accumulator.rs +22 -21
  12. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/complex.rs +1 -2
  13. dttlib-0.7.5/pipelines/src/lib.rs +472 -0
  14. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/pipe.rs +161 -102
  15. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/publisher.rs +43 -41
  16. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/python.rs +57 -46
  17. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/stateless/mod.rs +172 -71
  18. dttlib-0.7.5/pipelines/src/stateless/pure.rs +89 -0
  19. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/unsynced_pipe.rs +196 -103
  20. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/arithmetic/average.rs +26 -23
  21. dttlib-0.7.5/src/analysis/arithmetic/mod.rs +5 -0
  22. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/arithmetic/real.rs +16 -11
  23. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/arithmetic/sqrt.rs +11 -8
  24. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/convert.rs +48 -50
  25. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/decimate.rs +152 -99
  26. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/heterodyne.rs +27 -17
  27. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/mod.rs +120 -93
  28. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/partition.rs +53 -41
  29. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/subtract_start_average.rs +49 -34
  30. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/time_delay.rs +64 -46
  31. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/time_shift.rs +17 -10
  32. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/conditioning/trim.rs +40 -36
  33. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/custom/mod.rs +0 -2
  34. dttlib-0.7.5/src/analysis/fourier_tools/asd.rs +55 -0
  35. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/fourier_tools/csd.rs +42 -21
  36. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/fourier_tools/fft.rs +44 -37
  37. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/fourier_tools/mod.rs +4 -4
  38. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/general/identity.rs +3 -3
  39. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/general/into.rs +4 -4
  40. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/general/maybe_into.rs +17 -8
  41. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/general/mod.rs +1 -1
  42. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/graph/analysis.rs +303 -200
  43. dttlib-0.7.5/src/analysis/graph/graph_to_pipeline.rs +687 -0
  44. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/graph/mod.rs +1 -2
  45. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/graph/scheme.rs +45 -30
  46. dttlib-0.7.5/src/analysis/graph/view_graph_to_pipeline.rs +568 -0
  47. dttlib-0.7.5/src/analysis/mod.rs +9 -0
  48. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/analysis_id.rs +45 -52
  49. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/analysis_result.rs +83 -90
  50. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/edge_data_type.rs +74 -29
  51. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/freq_domain_value.rs +30 -44
  52. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/mod.rs +10 -12
  53. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/record.rs +36 -41
  54. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/result/time_domain_value.rs +32 -49
  55. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/scope/downsample.rs +102 -80
  56. dttlib-0.7.5/src/analysis/scope/inline_fft.rs +224 -0
  57. dttlib-0.7.5/src/analysis/scope/mod.rs +4 -0
  58. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/scope/splice.rs +35 -31
  59. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/types/frequency_domain_array.rs +84 -77
  60. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/types/linear.rs +10 -6
  61. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/types/math_traits.rs +4 -4
  62. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/types/mod.rs +20 -19
  63. {dttlib-0.7.4 → dttlib-0.7.5}/src/analysis/types/time_domain_array.rs +174 -167
  64. {dttlib-0.7.4 → dttlib-0.7.5}/src/bin/stub_gen.rs +1 -1
  65. {dttlib-0.7.4 → dttlib-0.7.5}/src/c_math.rs +8 -8
  66. {dttlib-0.7.4 → dttlib-0.7.5}/src/constraints/mod.rs +17 -10
  67. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/buffer.rs +4 -5
  68. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/channel_query.rs +28 -26
  69. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/data_distributor.rs +35 -24
  70. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/data_source_pipeline.rs +20 -21
  71. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/dummy.rs +107 -39
  72. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/mod.rs +63 -50
  73. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/nds2_direct.rs +102 -61
  74. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/nds_cache/gap_handler.rs +54 -33
  75. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/nds_cache/mod.rs +210 -160
  76. {dttlib-0.7.4 → dttlib-0.7.5}/src/data_source/no_data.rs +31 -16
  77. dttlib-0.7.5/src/data_source/random.rs +223 -0
  78. {dttlib-0.7.4 → dttlib-0.7.5}/src/errors.rs +4 -7
  79. {dttlib-0.7.4 → dttlib-0.7.5}/src/gds_sigp/asd.rs +17 -5
  80. {dttlib-0.7.4 → dttlib-0.7.5}/src/gds_sigp/decimate.rs +95 -66
  81. {dttlib-0.7.4 → dttlib-0.7.5}/src/gds_sigp/fft.rs +55 -45
  82. dttlib-0.7.5/src/gds_sigp/heterodyne.rs +18 -0
  83. {dttlib-0.7.4 → dttlib-0.7.5}/src/lib.rs +20 -34
  84. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/channel_params/channel.rs +34 -48
  85. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/channel_params/channel_id.rs +42 -34
  86. dttlib-0.7.5/src/params/channel_params/channel_settings.rs +352 -0
  87. dttlib-0.7.5/src/params/channel_params/channel_type.rs +84 -0
  88. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/channel_params/decimation_parameters/mod.rs +48 -37
  89. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/channel_params/mod.rs +15 -15
  90. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/channel_params/nds_data_type.rs +40 -46
  91. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/channel_params/unit.rs +44 -46
  92. dttlib-0.7.5/src/params/constraints/mod.rs +55 -0
  93. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/custom_pipeline.rs +38 -22
  94. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/excitation_params.rs +3 -5
  95. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/mod.rs +2 -3
  96. {dttlib-0.7.4 → dttlib-0.7.5}/src/params/test_params.rs +25 -37
  97. {dttlib-0.7.4 → dttlib-0.7.5}/src/python/dtt_types.rs +8 -13
  98. {dttlib-0.7.4 → dttlib-0.7.5}/src/python/dttlib.rs +21 -18
  99. {dttlib-0.7.4 → dttlib-0.7.5}/src/python/mod.rs +2 -3
  100. {dttlib-0.7.4 → dttlib-0.7.5}/src/run.rs +66 -58
  101. {dttlib-0.7.4 → dttlib-0.7.5}/src/run_context.rs +10 -17
  102. {dttlib-0.7.4 → dttlib-0.7.5}/src/scope_view/mod.rs +133 -102
  103. {dttlib-0.7.4 → dttlib-0.7.5}/src/scope_view/pipeline_graph.rs +48 -31
  104. {dttlib-0.7.4 → dttlib-0.7.5}/src/scope_view/view_set.rs +32 -32
  105. dttlib-0.7.5/src/timeline/constraints.rs +64 -0
  106. {dttlib-0.7.4 → dttlib-0.7.5}/src/timeline/ffttools.rs +138 -83
  107. {dttlib-0.7.4 → dttlib-0.7.5}/src/timeline/general.rs +46 -27
  108. {dttlib-0.7.4 → dttlib-0.7.5}/src/timeline/init.rs +70 -66
  109. {dttlib-0.7.4 → dttlib-0.7.5}/src/timeline/mod.rs +88 -71
  110. {dttlib-0.7.4 → dttlib-0.7.5}/src/tokio_setup.rs +4 -8
  111. dttlib-0.7.5/src/user/mod.rs +932 -0
  112. {dttlib-0.7.4 → dttlib-0.7.5}/user_messages/src/lib.rs +72 -78
  113. dttlib-0.7.4/pipelines/src/lib.rs +0 -435
  114. dttlib-0.7.4/pipelines/src/stateless/pure.rs +0 -81
  115. dttlib-0.7.4/src/analysis/arithmetic/mod.rs +0 -5
  116. dttlib-0.7.4/src/analysis/fourier_tools/asd.rs +0 -53
  117. dttlib-0.7.4/src/analysis/graph/graph_to_pipeline.rs +0 -495
  118. dttlib-0.7.4/src/analysis/graph/view_graph_to_pipeline.rs +0 -442
  119. dttlib-0.7.4/src/analysis/mod.rs +0 -9
  120. dttlib-0.7.4/src/analysis/scope/inline_fft.rs +0 -192
  121. dttlib-0.7.4/src/analysis/scope/mod.rs +0 -5
  122. dttlib-0.7.4/src/data_source/random.rs +0 -153
  123. dttlib-0.7.4/src/gds_sigp/heterodyne.rs +0 -16
  124. dttlib-0.7.4/src/params/channel_params/channel_settings.rs +0 -270
  125. dttlib-0.7.4/src/params/channel_params/channel_type.rs +0 -91
  126. dttlib-0.7.4/src/params/constraints/mod.rs +0 -70
  127. dttlib-0.7.4/src/timeline/constraints.rs +0 -70
  128. dttlib-0.7.4/src/user/mod.rs +0 -885
  129. {dttlib-0.7.4 → dttlib-0.7.5}/.cargo/config.toml +0 -0
  130. {dttlib-0.7.4 → dttlib-0.7.5}/.devcontainer/Dockerfile +0 -0
  131. {dttlib-0.7.4 → dttlib-0.7.5}/.devcontainer/devcontainer.json +0 -0
  132. {dttlib-0.7.4 → dttlib-0.7.5}/.gitignore +0 -0
  133. {dttlib-0.7.4 → dttlib-0.7.5}/.gitlab-ci.yml +0 -0
  134. {dttlib-0.7.4 → dttlib-0.7.5}/.python-version +0 -0
  135. {dttlib-0.7.4 → dttlib-0.7.5}/CHANGES.md +0 -0
  136. {dttlib-0.7.4 → dttlib-0.7.5}/COPYING +0 -0
  137. {dttlib-0.7.4 → dttlib-0.7.5}/COPYING-GPL-3 +0 -0
  138. {dttlib-0.7.4 → dttlib-0.7.5}/PUBLISH.md +0 -0
  139. {dttlib-0.7.4 → dttlib-0.7.5}/README.md +0 -0
  140. {dttlib-0.7.4 → dttlib-0.7.5}/bacon.toml +0 -0
  141. {dttlib-0.7.4 → dttlib-0.7.5}/build_wheel.sh +0 -0
  142. {dttlib-0.7.4 → dttlib-0.7.5}/devel_bullseye.sh +0 -0
  143. {dttlib-0.7.4 → dttlib-0.7.5}/docs/cache_design.md +0 -0
  144. {dttlib-0.7.4 → dttlib-0.7.5}/dtt_macros/Cargo.toml +0 -0
  145. {dttlib-0.7.4 → dttlib-0.7.5}/dttlib.pyi +0 -0
  146. {dttlib-0.7.4 → dttlib-0.7.5}/gen_stub +0 -0
  147. {dttlib-0.7.4 → dttlib-0.7.5}/include/nds2.h +0 -0
  148. {dttlib-0.7.4 → dttlib-0.7.5}/linked_libraries.json +0 -0
  149. {dttlib-0.7.4 → dttlib-0.7.5}/pipeline_macros/Cargo.toml +0 -0
  150. {dttlib-0.7.4 → dttlib-0.7.5}/pipeline_macros/src/gen.rs +0 -0
  151. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/Cargo.toml +0 -0
  152. {dttlib-0.7.4 → dttlib-0.7.5}/pipelines/src/README.md +0 -0
  153. {dttlib-0.7.4 → dttlib-0.7.5}/publish_bullseye.sh +0 -0
  154. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/build.sh +0 -0
  155. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/build_docker.sh +0 -0
  156. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/build_docker_base.sh +0 -0
  157. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/build_docker_debian.sh +0 -0
  158. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild/Dockerfile +0 -0
  159. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild/install_python.sh +0 -0
  160. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild_base/Dockerfile +0 -0
  161. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild_base/build_clang.sh +0 -0
  162. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild_base_conda/Dockerfile +0 -0
  163. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild_base_conda/dttbuild.yaml +0 -0
  164. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/dttbuild_debian/Dockerfile +0 -0
  165. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build/py_versions.sh +0 -0
  166. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_build.sh +0 -0
  167. {dttlib-0.7.4 → dttlib-0.7.5}/pypi_upload.sh +0 -0
  168. {dttlib-0.7.4 → dttlib-0.7.5}/pyproject.toml +0 -0
  169. {dttlib-0.7.4 → dttlib-0.7.5}/run.py +0 -0
  170. {dttlib-0.7.4 → dttlib-0.7.5}/setup_conda.sh +0 -0
  171. {dttlib-0.7.4 → dttlib-0.7.5}/src/gds_sigp/mod.rs +1 -1
  172. {dttlib-0.7.4 → dttlib-0.7.5}/test_dtt.py +0 -0
  173. {dttlib-0.7.4 → dttlib-0.7.5}/test_dttlib.py +0 -0
  174. {dttlib-0.7.4 → dttlib-0.7.5}/user_messages/Cargo.toml +0 -0
  175. {dttlib-0.7.4 → dttlib-0.7.5}/wrapper.h +0 -0
@@ -1408,7 +1408,7 @@ checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
1408
1408
 
1409
1409
  [[package]]
1410
1410
  name = "dtt_macros"
1411
- version = "0.7.4"
1411
+ version = "0.7.5"
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.4"
1420
+ version = "0.7.5"
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_13#f7092f72774243e17121648e93ffde1411aebaf0"
2972
+ source = "git+https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git?tag=dev_14#86f9f808047a3dc2a807a841e749236065cf5943"
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.4"
3011
+ version = "0.7.5"
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.4"
3575
+ version = "0.7.5"
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.4"
3584
+ version = "0.7.5"
3585
3585
  dependencies = [
3586
3586
  "futures",
3587
3587
  "num-complex",
@@ -4860,7 +4860,7 @@ dependencies = [
4860
4860
 
4861
4861
  [[package]]
4862
4862
  name = "user_messages"
4863
- version = "0.7.4"
4863
+ version = "0.7.5"
4864
4864
  dependencies = [
4865
4865
  "log",
4866
4866
  "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.4"
10
+ version = "0.7.5"
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_c", optional = true }
85
- nds-cache-rs = { git = "https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git", tag = "dev_13"}
85
+ nds-cache-rs = { git = "https://git.ligo.org/cds/software/cr_tools/nds-cache-rs.git", tag = "dev_14"}
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.4
3
+ Version: 0.7.5
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.
@@ -2,7 +2,6 @@ use std::env;
2
2
  use std::path::PathBuf;
3
3
 
4
4
  fn main() {
5
-
6
5
  //pyo3_build_config::add_extension_module_link_args();
7
6
 
8
7
  // for debug only
@@ -41,11 +40,13 @@ fn main() {
41
40
  // println!("cargo:rustc-link-lib={}", &python_config.lib_name.as_ref().unwrap());
42
41
  // }
43
42
 
44
- let bindings = bindgen::Builder::default()
45
- .header("wrapper.h")
43
+ let bindings = bindgen::Builder::default()
44
+ .header("wrapper.h")
46
45
  .generate()
47
46
  .expect("Unable to generate bindings");
48
47
 
49
48
  let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
50
- bindings.write_to_file(out_path.join("bindings.rs")).expect("Couldn't write bindings");
51
- }
49
+ bindings
50
+ .write_to_file(out_path.join("bindings.rs"))
51
+ .expect("Couldn't write bindings");
52
+ }
dttlib-0.7.5/cycle.sh ADDED
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+ set -x
3
+
4
+ cmd="timeout $@"
5
+ echo $cmd
6
+ while true
7
+ do
8
+ $cmd
9
+ if [[ $? -ne 124 ]]
10
+ then
11
+ break
12
+ fi
13
+ sleep 0.1
14
+ echo "***********************************************"
15
+ done
16
+
@@ -1,8 +1,8 @@
1
1
  //! create builder functions for every field in a struct
2
2
  //! except those with #[no_builder] attribute
3
- //!
3
+ //!
4
4
  //! # Examples
5
- //!
5
+ //!
6
6
  //! ```
7
7
  //! #[builder_lite]
8
8
  //! struct MyStruct {
@@ -14,9 +14,9 @@
14
14
  //! field_d: DontModify
15
15
  //! }
16
16
  //! ```
17
- //!
17
+ //!
18
18
  //! expands to
19
- //!
19
+ //!
20
20
  //! ```
21
21
  //! struct MyStruct {
22
22
  //! field_a: i32,
@@ -24,7 +24,7 @@
24
24
  //! field_c: NeedsCustomFunc,
25
25
  //! field_d: DontModify
26
26
  //! }
27
- //!
27
+ //!
28
28
  //! impl MyStruct {
29
29
  //! pub fn with_field_a(mut self, field_a: i32) -> Self {
30
30
  //! self.field_a = field_a;
@@ -40,10 +40,9 @@
40
40
 
41
41
  use proc_macro::TokenStream;
42
42
  use proc_macro2::Ident;
43
- use quote::{quote, quote_spanned, ToTokens};
44
- use syn::{ItemStruct, parse_macro_input};
43
+ use quote::{ToTokens, quote, quote_spanned};
45
44
  use syn::spanned::Spanned;
46
-
45
+ use syn::{ItemStruct, parse_macro_input};
47
46
 
48
47
  // return index into field attributes
49
48
  fn find_attribute(attrs: &Vec<syn::Attribute>, attr_name: &str) -> Vec<usize> {
@@ -57,8 +56,7 @@ fn find_attribute(attrs: &Vec<syn::Attribute>, attr_name: &str) -> Vec<usize> {
57
56
  indices
58
57
  }
59
58
 
60
-
61
- pub (crate) fn impl_builder_lite(item: TokenStream) -> TokenStream {
59
+ pub(crate) fn impl_builder_lite(item: TokenStream) -> TokenStream {
62
60
  let mut strct = parse_macro_input!(item as ItemStruct);
63
61
 
64
62
  let strct_name = &strct.ident.to_token_stream();
@@ -78,7 +76,8 @@ pub (crate) fn impl_builder_lite(item: TokenStream) -> TokenStream {
78
76
 
79
77
  let field_name = &field.ident.clone().into_token_stream();
80
78
  let field_type = &field.ty.clone().into_token_stream();
81
- let func_name = Ident::new(format!("with_{}", field_name).as_str(), field.span()).to_token_stream();
79
+ let func_name =
80
+ Ident::new(format!("with_{}", field_name).as_str(), field.span()).to_token_stream();
82
81
 
83
82
  builder_funcs.extend(quote_spanned! {
84
83
  field.ident.span()=>
@@ -94,10 +93,11 @@ pub (crate) fn impl_builder_lite(item: TokenStream) -> TokenStream {
94
93
  let struct_body = strct.clone().into_token_stream();
95
94
 
96
95
  quote! {
97
- #struct_body
96
+ #struct_body
98
97
 
99
- impl #strct_name {
100
- #builder_funcs
98
+ impl #strct_name {
99
+ #builder_funcs
100
+ }
101
101
  }
102
- }.into()
103
- }
102
+ .into()
103
+ }
@@ -1,8 +1,8 @@
1
1
  mod builder_lite;
2
2
 
3
3
  extern crate proc_macro;
4
- use proc_macro::TokenStream;
5
4
  use crate::builder_lite::impl_builder_lite;
5
+ use proc_macro::TokenStream;
6
6
 
7
7
  /// Does nothing
8
8
  /// This macro is needed so that `#[staticmethod]` method attribute used by pyo3 still builds
@@ -53,9 +53,9 @@ pub fn builder_lite(_attr: TokenStream, input: TokenStream) -> TokenStream {
53
53
 
54
54
  /// Helper attribute for build_lite.
55
55
  /// Fields marked with no_builder don't get a builder function.
56
- ///
56
+ ///
57
57
  /// Useful for private fields or fields that need a custom builder.
58
58
  #[proc_macro_attribute]
59
59
  pub fn no_builder(_attr: TokenStream, input: TokenStream) -> TokenStream {
60
60
  input
61
- }
61
+ }
@@ -1,19 +1,18 @@
1
1
  use proc_macro::TokenStream;
2
2
  use quote::{quote, quote_spanned};
3
- use syn::{ItemFn, parse_macro_input, parse_quote, ReturnType,};
4
3
  use syn::spanned::Spanned;
4
+ use syn::{ItemFn, ReturnType, parse_macro_input, parse_quote};
5
5
 
6
6
  //convert synchronous generators with arbitrary return values into async generators
7
7
  // with the correct return value
8
8
  // Function
9
- pub (crate) fn impl_box_async(item: TokenStream) -> TokenStream {
9
+ pub(crate) fn impl_box_async(item: TokenStream) -> TokenStream {
10
10
  let fun: ItemFn = parse_macro_input!(item as ItemFn);
11
11
 
12
12
  // try to get the underlying PipeData type
13
13
  let ret_type = if let ReturnType::Type(_, bt) = &fun.sig.output {
14
14
  *bt.clone()
15
- }
16
- else {
15
+ } else {
17
16
  return quote_spanned!(
18
17
  fun.sig.output.span() =>
19
18
  compile_error!("A generator function must have an output that is Into<PipeResult<PipeData>>.")
@@ -25,13 +24,13 @@ pub (crate) fn impl_box_async(item: TokenStream) -> TokenStream {
25
24
  -> futures::future::BoxFuture<'_, #ret_type >
26
25
  );
27
26
 
28
-
29
27
  let mut new_sig = fun.sig.clone();
30
28
  new_sig.output = new_out;
31
- let body = & fun.block;
29
+ let body = &fun.block;
32
30
  quote!(
33
31
  #new_sig {
34
32
  async move { #body }.boxed()
35
33
  }
36
- ).into()
34
+ )
35
+ .into()
37
36
  }
@@ -1,13 +1,13 @@
1
1
  use proc_macro::TokenStream;
2
2
  use proc_macro2::Span;
3
- use syn::{GenericParam, Generics, ItemStruct, parse_macro_input};
4
- use syn::Ident;
5
3
  use quote::quote;
4
+ use syn::Ident;
6
5
  use syn::punctuated::Punctuated;
7
6
  use syn::token::{Comma, Gt, Lt};
7
+ use syn::{GenericParam, Generics, ItemStruct, parse_macro_input};
8
8
 
9
9
  /// create an empty implementation for a flag or super trait
10
- pub (crate) fn empty_derive(item: TokenStream, tr: &str) -> TokenStream {
10
+ pub(crate) fn empty_derive(item: TokenStream, tr: &str) -> TokenStream {
11
11
  let st: ItemStruct = parse_macro_input!(item);
12
12
 
13
13
  let trait_ident = Ident::new(tr, Span::call_site());
@@ -31,9 +31,9 @@ pub (crate) fn empty_derive(item: TokenStream, tr: &str) -> TokenStream {
31
31
  let mut new_t = t.clone();
32
32
  new_t.bounds.clear();
33
33
  GenericParam::Type(new_t)
34
- },
35
- _ => generic.clone(),
36
- };
34
+ }
35
+ _ => generic.clone(),
36
+ };
37
37
  angle_args.push(new_gp);
38
38
  }
39
39
 
@@ -46,5 +46,6 @@ pub (crate) fn empty_derive(item: TokenStream, tr: &str) -> TokenStream {
46
46
 
47
47
  quote!(
48
48
  impl #st_gen #trait_ident for #st_id #new_gen {}
49
- ).into()
50
- }
49
+ )
50
+ .into()
51
+ }
@@ -1,10 +1,10 @@
1
- mod derive;
2
1
  mod box_async;
2
+ mod derive;
3
3
 
4
4
  extern crate proc_macro;
5
- use proc_macro::TokenStream;
6
5
  use crate::box_async::impl_box_async;
7
6
  use crate::derive::empty_derive;
7
+ use proc_macro::TokenStream;
8
8
 
9
9
  #[proc_macro_derive(StateData)]
10
10
  pub fn state_data(input: TokenStream) -> TokenStream {
@@ -21,4 +21,4 @@ pub fn config_data(input: TokenStream) -> TokenStream {
21
21
  pub fn box_async(_attr: TokenStream, input: TokenStream) -> TokenStream {
22
22
  impl_box_async(input)
23
23
  //input
24
- }
24
+ }
@@ -6,16 +6,16 @@
6
6
  //!
7
7
  //! This pipeline will only calculate one value at function call at a time.
8
8
 
9
- use std::sync::Arc;
10
- use futures::future::BoxFuture;
9
+ use crate::pipe::Pipe1;
10
+ use crate::{PipeData, PipeResult, PipelineOutput, PipelineSubscriber};
11
11
  use futures::FutureExt;
12
+ use futures::future::BoxFuture;
13
+ use std::sync::Arc;
12
14
  use tokio::runtime::Handle;
13
- use crate::{PipeData, PipelineOutput, PipelineSubscriber, PipeResult};
14
- use crate::pipe::Pipe1;
15
15
  use user_messages::UserMsgProvider;
16
16
 
17
-
18
- type AccumGenFn<I, T, U> = fn (Box<dyn UserMsgProvider>, Arc<I>, Option<Arc<T>>, n: f64) -> (Arc<T>, f64, PipeResult<U>);
17
+ type AccumGenFn<I, T, U> =
18
+ fn(Box<dyn UserMsgProvider>, Arc<I>, Option<Arc<T>>, n: f64) -> (Arc<T>, f64, PipeResult<U>);
19
19
 
20
20
  /// # Accumulator
21
21
  /// a 1-input accumulator produces its new value for each segment as a pipeline output
@@ -27,36 +27,37 @@ pub struct Accumulator<I: PipeData, T: PipeData, U: PipeData> {
27
27
  n: f64,
28
28
  }
29
29
 
30
- fn accum_generate<I: PipeData, T:PipeData, U: PipeData>(rc: Box<dyn UserMsgProvider>, state: &'_ mut Accumulator<I,T, U>,
31
- input: PipelineOutput<I>) -> BoxFuture<'_, PipeResult<U>> {
32
-
30
+ fn accum_generate<I: PipeData, T: PipeData, U: PipeData>(
31
+ rc: Box<dyn UserMsgProvider>,
32
+ state: &'_ mut Accumulator<I, T, U>,
33
+ input: PipelineOutput<I>,
34
+ ) -> BoxFuture<'_, PipeResult<U>> {
33
35
  async move {
34
36
  let g = state.generate_ptr;
35
37
  let inp = input.clone();
36
38
  let accum_val = state.value.clone();
37
39
  let n = state.n;
38
- let jh = Handle::current().spawn_blocking(
39
- move || {
40
- g(rc, inp.value, accum_val, n)
41
- }
42
- );
40
+ let jh = Handle::current().spawn_blocking(move || g(rc, inp.value, accum_val, n));
43
41
  let (value, new_n, output) = jh.await.unwrap();
44
42
  state.n = new_n;
45
43
  state.value = Some(value.clone());
46
44
  output
47
- }.boxed()
45
+ }
46
+ .boxed()
48
47
  }
49
48
 
50
-
51
49
  impl<I: PipeData, T: PipeData, U: PipeData> Accumulator<I, T, U> {
52
- pub async fn start(rc: Box<dyn UserMsgProvider>, name: String, input: &PipelineSubscriber<I>,
53
- generate: AccumGenFn<I, T, U>) -> PipelineSubscriber<U> {
50
+ pub async fn start(
51
+ rc: Box<dyn UserMsgProvider>,
52
+ name: String,
53
+ input: &PipelineSubscriber<I>,
54
+ generate: AccumGenFn<I, T, U>,
55
+ ) -> PipelineSubscriber<U> {
54
56
  let p = Accumulator {
55
- n: 1.0, // start at 1. The generator is responsible for incrementing if needed.
57
+ n: 1.0, // start at 1. The generator is responsible for incrementing if needed.
56
58
  generate_ptr: generate,
57
59
  value: None,
58
60
  };
59
- Pipe1::create(rc, name, accum_generate::<I,T,U>, p, None, None, input).await
61
+ Pipe1::create(rc, name, accum_generate::<I, T, U>, p, None, None, input).await
60
62
  }
61
63
  }
62
-
@@ -1,7 +1,6 @@
1
1
  //! complex numbers defined here, because they must be made PipeData
2
2
 
3
-
4
- use num_complex::{Complex64, Complex32};
3
+ use num_complex::{Complex32, Complex64};
5
4
 
6
5
  /// # Complex type aliases
7
6
  /// c128 is 128 bits long, represented by two 64-bit floats