sigima 0.0.1.dev0__py3-none-any.whl → 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. sigima/__init__.py +142 -2
  2. sigima/client/__init__.py +105 -0
  3. sigima/client/base.py +780 -0
  4. sigima/client/remote.py +469 -0
  5. sigima/client/stub.py +814 -0
  6. sigima/client/utils.py +90 -0
  7. sigima/config.py +444 -0
  8. sigima/data/logo/Sigima.svg +135 -0
  9. sigima/data/tests/annotations.json +798 -0
  10. sigima/data/tests/curve_fitting/exponential_fit.txt +511 -0
  11. sigima/data/tests/curve_fitting/gaussian_fit.txt +100 -0
  12. sigima/data/tests/curve_fitting/piecewiseexponential_fit.txt +1022 -0
  13. sigima/data/tests/curve_fitting/polynomial_fit.txt +100 -0
  14. sigima/data/tests/curve_fitting/twohalfgaussian_fit.txt +1000 -0
  15. sigima/data/tests/curve_formats/bandwidth.txt +201 -0
  16. sigima/data/tests/curve_formats/boxcar.npy +0 -0
  17. sigima/data/tests/curve_formats/datetime.txt +1001 -0
  18. sigima/data/tests/curve_formats/dynamic_parameters.txt +4000 -0
  19. sigima/data/tests/curve_formats/fw1e2.txt +301 -0
  20. sigima/data/tests/curve_formats/fwhm.txt +319 -0
  21. sigima/data/tests/curve_formats/multiple_curves.csv +29 -0
  22. sigima/data/tests/curve_formats/noised_saw.mat +0 -0
  23. sigima/data/tests/curve_formats/oscilloscope.csv +111 -0
  24. sigima/data/tests/curve_formats/other/other2/recursive2.txt +5 -0
  25. sigima/data/tests/curve_formats/other/recursive1.txt +5 -0
  26. sigima/data/tests/curve_formats/paracetamol.npy +0 -0
  27. sigima/data/tests/curve_formats/paracetamol.txt +1010 -0
  28. sigima/data/tests/curve_formats/paracetamol_dx_dy.csv +1000 -0
  29. sigima/data/tests/curve_formats/paracetamol_dy.csv +1001 -0
  30. sigima/data/tests/curve_formats/pulse1.npy +0 -0
  31. sigima/data/tests/curve_formats/pulse2.npy +0 -0
  32. sigima/data/tests/curve_formats/simple.txt +5 -0
  33. sigima/data/tests/curve_formats/spectrum.mca +2139 -0
  34. sigima/data/tests/curve_formats/square2.npy +0 -0
  35. sigima/data/tests/curve_formats/step.npy +0 -0
  36. sigima/data/tests/fabry-perot1.jpg +0 -0
  37. sigima/data/tests/fabry-perot2.jpg +0 -0
  38. sigima/data/tests/flower.npy +0 -0
  39. sigima/data/tests/image_formats/NF 180338201.scor-data +11003 -0
  40. sigima/data/tests/image_formats/binary_image.npy +0 -0
  41. sigima/data/tests/image_formats/binary_image.png +0 -0
  42. sigima/data/tests/image_formats/centroid_test.npy +0 -0
  43. sigima/data/tests/image_formats/coordinated_text/complex_image.txt +10011 -0
  44. sigima/data/tests/image_formats/coordinated_text/complex_ref_image.txt +10010 -0
  45. sigima/data/tests/image_formats/coordinated_text/image.txt +15 -0
  46. sigima/data/tests/image_formats/coordinated_text/image2.txt +14 -0
  47. sigima/data/tests/image_formats/coordinated_text/image_no_unit_no_label.txt +14 -0
  48. sigima/data/tests/image_formats/coordinated_text/image_with_nan.txt +15 -0
  49. sigima/data/tests/image_formats/coordinated_text/image_with_unit.txt +14 -0
  50. sigima/data/tests/image_formats/fiber.csv +480 -0
  51. sigima/data/tests/image_formats/fiber.jpg +0 -0
  52. sigima/data/tests/image_formats/fiber.png +0 -0
  53. sigima/data/tests/image_formats/fiber.txt +480 -0
  54. sigima/data/tests/image_formats/gaussian_spot_with_noise.npy +0 -0
  55. sigima/data/tests/image_formats/mr-brain.dcm +0 -0
  56. sigima/data/tests/image_formats/noised_gaussian.mat +0 -0
  57. sigima/data/tests/image_formats/sif_reader/nd_lum_image_no_glue.sif +0 -0
  58. sigima/data/tests/image_formats/sif_reader/raman1.sif +0 -0
  59. sigima/data/tests/image_formats/tiling.txt +10 -0
  60. sigima/data/tests/image_formats/uint16.tiff +0 -0
  61. sigima/data/tests/image_formats/uint8.tiff +0 -0
  62. sigima/data/tests/laser_beam/TEM00_z_13.jpg +0 -0
  63. sigima/data/tests/laser_beam/TEM00_z_18.jpg +0 -0
  64. sigima/data/tests/laser_beam/TEM00_z_23.jpg +0 -0
  65. sigima/data/tests/laser_beam/TEM00_z_30.jpg +0 -0
  66. sigima/data/tests/laser_beam/TEM00_z_35.jpg +0 -0
  67. sigima/data/tests/laser_beam/TEM00_z_40.jpg +0 -0
  68. sigima/data/tests/laser_beam/TEM00_z_45.jpg +0 -0
  69. sigima/data/tests/laser_beam/TEM00_z_50.jpg +0 -0
  70. sigima/data/tests/laser_beam/TEM00_z_55.jpg +0 -0
  71. sigima/data/tests/laser_beam/TEM00_z_60.jpg +0 -0
  72. sigima/data/tests/laser_beam/TEM00_z_65.jpg +0 -0
  73. sigima/data/tests/laser_beam/TEM00_z_70.jpg +0 -0
  74. sigima/data/tests/laser_beam/TEM00_z_75.jpg +0 -0
  75. sigima/data/tests/laser_beam/TEM00_z_80.jpg +0 -0
  76. sigima/enums.py +195 -0
  77. sigima/io/__init__.py +123 -0
  78. sigima/io/base.py +311 -0
  79. sigima/io/common/__init__.py +5 -0
  80. sigima/io/common/basename.py +164 -0
  81. sigima/io/common/converters.py +189 -0
  82. sigima/io/common/objmeta.py +181 -0
  83. sigima/io/common/textreader.py +58 -0
  84. sigima/io/convenience.py +157 -0
  85. sigima/io/enums.py +17 -0
  86. sigima/io/ftlab.py +395 -0
  87. sigima/io/image/__init__.py +9 -0
  88. sigima/io/image/base.py +177 -0
  89. sigima/io/image/formats.py +1016 -0
  90. sigima/io/image/funcs.py +414 -0
  91. sigima/io/signal/__init__.py +9 -0
  92. sigima/io/signal/base.py +129 -0
  93. sigima/io/signal/formats.py +290 -0
  94. sigima/io/signal/funcs.py +723 -0
  95. sigima/objects/__init__.py +260 -0
  96. sigima/objects/base.py +937 -0
  97. sigima/objects/image/__init__.py +88 -0
  98. sigima/objects/image/creation.py +556 -0
  99. sigima/objects/image/object.py +524 -0
  100. sigima/objects/image/roi.py +904 -0
  101. sigima/objects/scalar/__init__.py +57 -0
  102. sigima/objects/scalar/common.py +215 -0
  103. sigima/objects/scalar/geometry.py +502 -0
  104. sigima/objects/scalar/table.py +784 -0
  105. sigima/objects/shape.py +290 -0
  106. sigima/objects/signal/__init__.py +133 -0
  107. sigima/objects/signal/constants.py +27 -0
  108. sigima/objects/signal/creation.py +1428 -0
  109. sigima/objects/signal/object.py +444 -0
  110. sigima/objects/signal/roi.py +274 -0
  111. sigima/params.py +405 -0
  112. sigima/proc/__init__.py +96 -0
  113. sigima/proc/base.py +381 -0
  114. sigima/proc/decorator.py +330 -0
  115. sigima/proc/image/__init__.py +513 -0
  116. sigima/proc/image/arithmetic.py +335 -0
  117. sigima/proc/image/base.py +260 -0
  118. sigima/proc/image/detection.py +519 -0
  119. sigima/proc/image/edges.py +329 -0
  120. sigima/proc/image/exposure.py +406 -0
  121. sigima/proc/image/extraction.py +458 -0
  122. sigima/proc/image/filtering.py +219 -0
  123. sigima/proc/image/fourier.py +147 -0
  124. sigima/proc/image/geometry.py +661 -0
  125. sigima/proc/image/mathops.py +340 -0
  126. sigima/proc/image/measurement.py +195 -0
  127. sigima/proc/image/morphology.py +155 -0
  128. sigima/proc/image/noise.py +107 -0
  129. sigima/proc/image/preprocessing.py +182 -0
  130. sigima/proc/image/restoration.py +235 -0
  131. sigima/proc/image/threshold.py +217 -0
  132. sigima/proc/image/transformations.py +393 -0
  133. sigima/proc/signal/__init__.py +376 -0
  134. sigima/proc/signal/analysis.py +206 -0
  135. sigima/proc/signal/arithmetic.py +551 -0
  136. sigima/proc/signal/base.py +262 -0
  137. sigima/proc/signal/extraction.py +60 -0
  138. sigima/proc/signal/features.py +310 -0
  139. sigima/proc/signal/filtering.py +484 -0
  140. sigima/proc/signal/fitting.py +276 -0
  141. sigima/proc/signal/fourier.py +259 -0
  142. sigima/proc/signal/mathops.py +420 -0
  143. sigima/proc/signal/processing.py +580 -0
  144. sigima/proc/signal/stability.py +175 -0
  145. sigima/proc/title_formatting.py +227 -0
  146. sigima/proc/validation.py +272 -0
  147. sigima/tests/__init__.py +7 -0
  148. sigima/tests/common/__init__.py +0 -0
  149. sigima/tests/common/arithmeticparam_unit_test.py +26 -0
  150. sigima/tests/common/basename_unit_test.py +126 -0
  151. sigima/tests/common/client_unit_test.py +412 -0
  152. sigima/tests/common/converters_unit_test.py +77 -0
  153. sigima/tests/common/decorator_unit_test.py +176 -0
  154. sigima/tests/common/examples_unit_test.py +104 -0
  155. sigima/tests/common/kernel_normalization_unit_test.py +242 -0
  156. sigima/tests/common/roi_basic_unit_test.py +73 -0
  157. sigima/tests/common/roi_geometry_unit_test.py +171 -0
  158. sigima/tests/common/scalar_builder_unit_test.py +142 -0
  159. sigima/tests/common/scalar_unit_test.py +991 -0
  160. sigima/tests/common/shape_unit_test.py +183 -0
  161. sigima/tests/common/stat_unit_test.py +138 -0
  162. sigima/tests/common/title_formatting_unit_test.py +338 -0
  163. sigima/tests/common/tools_coordinates_unit_test.py +60 -0
  164. sigima/tests/common/transformations_unit_test.py +178 -0
  165. sigima/tests/common/validation_unit_test.py +205 -0
  166. sigima/tests/conftest.py +129 -0
  167. sigima/tests/data.py +998 -0
  168. sigima/tests/env.py +280 -0
  169. sigima/tests/guiutils.py +163 -0
  170. sigima/tests/helpers.py +532 -0
  171. sigima/tests/image/__init__.py +28 -0
  172. sigima/tests/image/binning_unit_test.py +128 -0
  173. sigima/tests/image/blob_detection_unit_test.py +312 -0
  174. sigima/tests/image/centroid_unit_test.py +170 -0
  175. sigima/tests/image/check_2d_array_unit_test.py +63 -0
  176. sigima/tests/image/contour_unit_test.py +172 -0
  177. sigima/tests/image/convolution_unit_test.py +178 -0
  178. sigima/tests/image/datatype_unit_test.py +67 -0
  179. sigima/tests/image/edges_unit_test.py +155 -0
  180. sigima/tests/image/enclosingcircle_unit_test.py +88 -0
  181. sigima/tests/image/exposure_unit_test.py +223 -0
  182. sigima/tests/image/fft2d_unit_test.py +189 -0
  183. sigima/tests/image/filtering_unit_test.py +166 -0
  184. sigima/tests/image/geometry_unit_test.py +654 -0
  185. sigima/tests/image/hough_circle_unit_test.py +147 -0
  186. sigima/tests/image/imageobj_unit_test.py +737 -0
  187. sigima/tests/image/morphology_unit_test.py +71 -0
  188. sigima/tests/image/noise_unit_test.py +57 -0
  189. sigima/tests/image/offset_correction_unit_test.py +72 -0
  190. sigima/tests/image/operation_unit_test.py +518 -0
  191. sigima/tests/image/peak2d_limits_unit_test.py +41 -0
  192. sigima/tests/image/peak2d_unit_test.py +133 -0
  193. sigima/tests/image/profile_unit_test.py +159 -0
  194. sigima/tests/image/projections_unit_test.py +121 -0
  195. sigima/tests/image/restoration_unit_test.py +141 -0
  196. sigima/tests/image/roi2dparam_unit_test.py +53 -0
  197. sigima/tests/image/roi_advanced_unit_test.py +588 -0
  198. sigima/tests/image/roi_grid_unit_test.py +279 -0
  199. sigima/tests/image/spectrum2d_unit_test.py +40 -0
  200. sigima/tests/image/threshold_unit_test.py +91 -0
  201. sigima/tests/io/__init__.py +0 -0
  202. sigima/tests/io/addnewformat_unit_test.py +125 -0
  203. sigima/tests/io/convenience_funcs_unit_test.py +470 -0
  204. sigima/tests/io/coordinated_text_format_unit_test.py +495 -0
  205. sigima/tests/io/datetime_csv_unit_test.py +198 -0
  206. sigima/tests/io/imageio_formats_test.py +41 -0
  207. sigima/tests/io/ioregistry_unit_test.py +69 -0
  208. sigima/tests/io/objmeta_unit_test.py +87 -0
  209. sigima/tests/io/readobj_unit_test.py +130 -0
  210. sigima/tests/io/readwriteobj_unit_test.py +67 -0
  211. sigima/tests/signal/__init__.py +0 -0
  212. sigima/tests/signal/analysis_unit_test.py +135 -0
  213. sigima/tests/signal/check_1d_arrays_unit_test.py +169 -0
  214. sigima/tests/signal/convolution_unit_test.py +404 -0
  215. sigima/tests/signal/datetime_unit_test.py +176 -0
  216. sigima/tests/signal/fft1d_unit_test.py +303 -0
  217. sigima/tests/signal/filters_unit_test.py +403 -0
  218. sigima/tests/signal/fitting_unit_test.py +929 -0
  219. sigima/tests/signal/fwhm_unit_test.py +111 -0
  220. sigima/tests/signal/noise_unit_test.py +128 -0
  221. sigima/tests/signal/offset_correction_unit_test.py +34 -0
  222. sigima/tests/signal/operation_unit_test.py +489 -0
  223. sigima/tests/signal/peakdetection_unit_test.py +145 -0
  224. sigima/tests/signal/processing_unit_test.py +657 -0
  225. sigima/tests/signal/pulse/__init__.py +112 -0
  226. sigima/tests/signal/pulse/crossing_times_unit_test.py +123 -0
  227. sigima/tests/signal/pulse/plateau_detection_unit_test.py +102 -0
  228. sigima/tests/signal/pulse/pulse_unit_test.py +1824 -0
  229. sigima/tests/signal/roi_advanced_unit_test.py +392 -0
  230. sigima/tests/signal/signalobj_unit_test.py +603 -0
  231. sigima/tests/signal/stability_unit_test.py +431 -0
  232. sigima/tests/signal/uncertainty_unit_test.py +611 -0
  233. sigima/tests/vistools.py +1030 -0
  234. sigima/tools/__init__.py +59 -0
  235. sigima/tools/checks.py +290 -0
  236. sigima/tools/coordinates.py +308 -0
  237. sigima/tools/datatypes.py +26 -0
  238. sigima/tools/image/__init__.py +97 -0
  239. sigima/tools/image/detection.py +451 -0
  240. sigima/tools/image/exposure.py +77 -0
  241. sigima/tools/image/extraction.py +48 -0
  242. sigima/tools/image/fourier.py +260 -0
  243. sigima/tools/image/geometry.py +190 -0
  244. sigima/tools/image/preprocessing.py +165 -0
  245. sigima/tools/signal/__init__.py +86 -0
  246. sigima/tools/signal/dynamic.py +254 -0
  247. sigima/tools/signal/features.py +135 -0
  248. sigima/tools/signal/filtering.py +171 -0
  249. sigima/tools/signal/fitting.py +1171 -0
  250. sigima/tools/signal/fourier.py +466 -0
  251. sigima/tools/signal/interpolation.py +70 -0
  252. sigima/tools/signal/peakdetection.py +126 -0
  253. sigima/tools/signal/pulse.py +1626 -0
  254. sigima/tools/signal/scaling.py +50 -0
  255. sigima/tools/signal/stability.py +258 -0
  256. sigima/tools/signal/windowing.py +90 -0
  257. sigima/worker.py +79 -0
  258. sigima-1.0.0.dist-info/METADATA +233 -0
  259. sigima-1.0.0.dist-info/RECORD +262 -0
  260. {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/licenses/LICENSE +29 -29
  261. sigima-0.0.1.dev0.dist-info/METADATA +0 -60
  262. sigima-0.0.1.dev0.dist-info/RECORD +0 -6
  263. {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/WHEEL +0 -0
  264. {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/top_level.txt +0 -0
sigima/__init__.py CHANGED
@@ -1,2 +1,142 @@
1
- """Placeholder for future sigima package."""
2
- __version__ = "0.0.1.dev0"
1
+ # Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.
2
+
3
+ """
4
+ Sigima
5
+ ======
6
+
7
+ Sigima is a scientific computing engine for 1D signals and 2D images.
8
+
9
+ It provides a set of tools for image and signal processing, including
10
+ denoising, segmentation, and restoration. It is designed to be used in
11
+ scientific and research applications.
12
+
13
+ It is a part of the DataLab Platform, which aims at providing a
14
+ comprehensive set of tools for data analysis and visualization, around
15
+ the DataLab application.
16
+ """
17
+
18
+ # TODO: Use `numpy.typing.NDArray` for more precise type annotations once NumPy >= 1.21
19
+ # can be safely required (e.g. after raising the minimum required version of
20
+ # scikit-image to >= 0.19).
21
+
22
+ __all__ = [
23
+ "NO_ROI",
24
+ "CircularROI",
25
+ "ExponentialParam",
26
+ "Gauss2DParam",
27
+ "GaussParam",
28
+ "GeometryResult",
29
+ "ImageDatatypes",
30
+ "ImageObj",
31
+ "ImageROI",
32
+ "ImageTypes",
33
+ "KindShape",
34
+ "LinearChirpParam",
35
+ "LogisticParam",
36
+ "LorentzParam",
37
+ "NormalDistribution1DParam",
38
+ "NormalDistribution2DParam",
39
+ "PlanckParam",
40
+ "PolygonalROI",
41
+ "ROI1DParam",
42
+ "ROI2DParam",
43
+ "Ramp2DParam",
44
+ "RectangularROI",
45
+ "SegmentROI",
46
+ "SignalObj",
47
+ "SignalROI",
48
+ "SignalTypes",
49
+ "SimpleBaseProxy",
50
+ "SimpleRemoteProxy",
51
+ "StepParam",
52
+ "TableResult",
53
+ "TypeObj",
54
+ "TypeROI",
55
+ "UniformDistribution1DParam",
56
+ "UniformDistribution2DParam",
57
+ "VoigtParam",
58
+ "calc_table_from_data",
59
+ "create_image",
60
+ "create_image_from_param",
61
+ "create_image_parameters",
62
+ "create_image_roi",
63
+ "create_signal",
64
+ "create_signal_from_param",
65
+ "create_signal_parameters",
66
+ "create_signal_roi",
67
+ "read_image",
68
+ "read_images",
69
+ "read_signal",
70
+ "read_signals",
71
+ "write_image",
72
+ "write_signal",
73
+ ]
74
+
75
+
76
+ from guidata.config import ValidationMode, set_validation_mode
77
+
78
+ from sigima.client import SimpleBaseProxy, SimpleRemoteProxy
79
+ from sigima.io import (
80
+ read_image,
81
+ read_images,
82
+ read_signal,
83
+ read_signals,
84
+ write_image,
85
+ write_signal,
86
+ )
87
+ from sigima.objects import (
88
+ NO_ROI,
89
+ CircularROI,
90
+ ExponentialParam,
91
+ Gauss2DParam,
92
+ GaussParam,
93
+ GeometryResult,
94
+ ImageDatatypes,
95
+ ImageObj,
96
+ ImageROI,
97
+ ImageTypes,
98
+ KindShape,
99
+ LinearChirpParam,
100
+ LogisticParam,
101
+ LorentzParam,
102
+ NormalDistribution1DParam,
103
+ NormalDistribution2DParam,
104
+ PlanckParam,
105
+ PolygonalROI,
106
+ Ramp2DParam,
107
+ RectangularROI,
108
+ ROI1DParam,
109
+ ROI2DParam,
110
+ SegmentROI,
111
+ SignalObj,
112
+ SignalROI,
113
+ SignalTypes,
114
+ StepParam,
115
+ TableResult,
116
+ TypeObj,
117
+ TypeROI,
118
+ UniformDistribution1DParam,
119
+ UniformDistribution2DParam,
120
+ VoigtParam,
121
+ calc_table_from_data,
122
+ create_image,
123
+ create_image_from_param,
124
+ create_image_parameters,
125
+ create_image_roi,
126
+ create_signal,
127
+ create_signal_from_param,
128
+ create_signal_parameters,
129
+ create_signal_roi,
130
+ )
131
+
132
+ # Set validation mode to ENABLED by default (issue warnings for invalid inputs)
133
+ set_validation_mode(ValidationMode.ENABLED)
134
+
135
+ __version__ = "1.0.0"
136
+ __docurl__ = "https://sigima.readthedocs.io/"
137
+ __homeurl__ = "https://github.com/DataLab-Platform/Sigima"
138
+ __supporturl__ = "https://github.com/DataLab-Platform/sigima/issues/new/choose"
139
+
140
+ # Dear (Debian, RPM, ...) package makers, please feel free to customize the
141
+ # following path to module's data (images) and translations:
142
+ DATAPATH = LOCALEPATH = ""
@@ -0,0 +1,105 @@
1
+ # Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.
2
+
3
+ """
4
+ DataLab Client (:mod:`sigima.client`)
5
+ -------------------------------------
6
+
7
+ The `sigima.client` module provides a proxy to DataLab application through XML-RPC
8
+ protocol.
9
+
10
+ DataLab may be controlled remotely using the `XML-RPC`_ protocol which is
11
+ natively supported by Python (and many other languages). Remote controlling
12
+ allows to access DataLab main features from a separate process.
13
+
14
+ From an IDE
15
+ ^^^^^^^^^^^
16
+
17
+ DataLab may be controlled remotely from an IDE (e.g. `Spyder`_ or any other
18
+ IDE, or even a Jupyter Notebook) that runs a Python script. It allows to
19
+ connect to a running DataLab instance, adds a signal and an image, and then
20
+ runs calculations. This feature is exposed by the `sigima.client.SimpleRemoteProxy`
21
+ class.
22
+
23
+ From a third-party application
24
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25
+
26
+ DataLab may also be controlled remotely from a third-party application, for the
27
+ same purpose.
28
+
29
+ If the third-party application is written in Python 3, it may directly use
30
+ :py:class:`cdlclient.SimpleRemoteProxy` as mentioned above. From another language,
31
+ it is also achievable, but it requires to implement a XML-RPC client in this
32
+ language using the same methods of proxy server as in the
33
+ :py:class:`cdlclient.SimpleRemoteProxy` class.
34
+
35
+ Data (signals and images) may also be exchanged between DataLab and the remote
36
+ client application, in both directions.
37
+
38
+ The remote client application may be run on the same computer as DataLab or on
39
+ different computer. In the latter case, the remote client application must
40
+ know the IP address of the computer running DataLab.
41
+
42
+ The remote client application may be run before or after DataLab. In the latter
43
+ case, the remote client application must try to connect to DataLab until it
44
+ succeeds.
45
+
46
+ Supported features
47
+ ^^^^^^^^^^^^^^^^^^
48
+
49
+ Supported features are the following:
50
+ - Switch to signal or image panel
51
+ - Remove all signals and images
52
+ - Save current session to a HDF5 file
53
+ - Open HDF5 files into current session
54
+ - Browse HDF5 file
55
+ - Open a signal or an image from file
56
+ - Add a signal
57
+ - Add an image
58
+ - Get object list
59
+ - Run calculation with parameters
60
+
61
+ Example
62
+ ^^^^^^^
63
+
64
+ Here is an example in Python 3 of a script that connects to a running DataLab
65
+ instance, adds a signal and an image, and then runs calculations (the cell
66
+ structure of the script make it convenient to be used in `Spyder`_ IDE):
67
+
68
+ .. literalinclude:: ../examples/features/datalab_client.py
69
+
70
+ Additional features
71
+ ^^^^^^^^^^^^^^^^^^^
72
+
73
+ For simple remote controlling, :py:class:`sigima.client.SimpleRemoteProxy` may be
74
+ used. For more advanced remote controlling, the `datalab.control.proxy.RemoteProxy`
75
+ class provided by the DataLab package may be used.
76
+
77
+ See DataLab documentation for more details about the
78
+ ``datalab.control.proxy.RemoteProxy`` class (on the section "Remote control").
79
+
80
+ .. _XML-RPC: https://docs.python.org/3/library/xmlrpc.html
81
+
82
+ .. _Spyder: https://www.spyder-ide.org/
83
+
84
+ API
85
+ ^^^
86
+
87
+ Remote client
88
+ ~~~~~~~~~~~~~
89
+
90
+ .. autoclass:: sigima.client.remote.SimpleRemoteProxy
91
+ :members:
92
+
93
+ Base proxy
94
+ ~~~~~~~~~~
95
+
96
+ .. autoclass:: sigima.client.base.SimpleBaseProxy
97
+ :members:
98
+ """
99
+
100
+ from sigima.client.base import SimpleBaseProxy
101
+ from sigima.client.remote import SimpleRemoteProxy
102
+
103
+ __all__ = ["SimpleBaseProxy", "SimpleRemoteProxy"]
104
+
105
+ # TODO: Refactor the `sigima.client` with `datalab.base` and `datalab.control.remote`