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.
- sigima/__init__.py +142 -2
- sigima/client/__init__.py +105 -0
- sigima/client/base.py +780 -0
- sigima/client/remote.py +469 -0
- sigima/client/stub.py +814 -0
- sigima/client/utils.py +90 -0
- sigima/config.py +444 -0
- sigima/data/logo/Sigima.svg +135 -0
- sigima/data/tests/annotations.json +798 -0
- sigima/data/tests/curve_fitting/exponential_fit.txt +511 -0
- sigima/data/tests/curve_fitting/gaussian_fit.txt +100 -0
- sigima/data/tests/curve_fitting/piecewiseexponential_fit.txt +1022 -0
- sigima/data/tests/curve_fitting/polynomial_fit.txt +100 -0
- sigima/data/tests/curve_fitting/twohalfgaussian_fit.txt +1000 -0
- sigima/data/tests/curve_formats/bandwidth.txt +201 -0
- sigima/data/tests/curve_formats/boxcar.npy +0 -0
- sigima/data/tests/curve_formats/datetime.txt +1001 -0
- sigima/data/tests/curve_formats/dynamic_parameters.txt +4000 -0
- sigima/data/tests/curve_formats/fw1e2.txt +301 -0
- sigima/data/tests/curve_formats/fwhm.txt +319 -0
- sigima/data/tests/curve_formats/multiple_curves.csv +29 -0
- sigima/data/tests/curve_formats/noised_saw.mat +0 -0
- sigima/data/tests/curve_formats/oscilloscope.csv +111 -0
- sigima/data/tests/curve_formats/other/other2/recursive2.txt +5 -0
- sigima/data/tests/curve_formats/other/recursive1.txt +5 -0
- sigima/data/tests/curve_formats/paracetamol.npy +0 -0
- sigima/data/tests/curve_formats/paracetamol.txt +1010 -0
- sigima/data/tests/curve_formats/paracetamol_dx_dy.csv +1000 -0
- sigima/data/tests/curve_formats/paracetamol_dy.csv +1001 -0
- sigima/data/tests/curve_formats/pulse1.npy +0 -0
- sigima/data/tests/curve_formats/pulse2.npy +0 -0
- sigima/data/tests/curve_formats/simple.txt +5 -0
- sigima/data/tests/curve_formats/spectrum.mca +2139 -0
- sigima/data/tests/curve_formats/square2.npy +0 -0
- sigima/data/tests/curve_formats/step.npy +0 -0
- sigima/data/tests/fabry-perot1.jpg +0 -0
- sigima/data/tests/fabry-perot2.jpg +0 -0
- sigima/data/tests/flower.npy +0 -0
- sigima/data/tests/image_formats/NF 180338201.scor-data +11003 -0
- sigima/data/tests/image_formats/binary_image.npy +0 -0
- sigima/data/tests/image_formats/binary_image.png +0 -0
- sigima/data/tests/image_formats/centroid_test.npy +0 -0
- sigima/data/tests/image_formats/coordinated_text/complex_image.txt +10011 -0
- sigima/data/tests/image_formats/coordinated_text/complex_ref_image.txt +10010 -0
- sigima/data/tests/image_formats/coordinated_text/image.txt +15 -0
- sigima/data/tests/image_formats/coordinated_text/image2.txt +14 -0
- sigima/data/tests/image_formats/coordinated_text/image_no_unit_no_label.txt +14 -0
- sigima/data/tests/image_formats/coordinated_text/image_with_nan.txt +15 -0
- sigima/data/tests/image_formats/coordinated_text/image_with_unit.txt +14 -0
- sigima/data/tests/image_formats/fiber.csv +480 -0
- sigima/data/tests/image_formats/fiber.jpg +0 -0
- sigima/data/tests/image_formats/fiber.png +0 -0
- sigima/data/tests/image_formats/fiber.txt +480 -0
- sigima/data/tests/image_formats/gaussian_spot_with_noise.npy +0 -0
- sigima/data/tests/image_formats/mr-brain.dcm +0 -0
- sigima/data/tests/image_formats/noised_gaussian.mat +0 -0
- sigima/data/tests/image_formats/sif_reader/nd_lum_image_no_glue.sif +0 -0
- sigima/data/tests/image_formats/sif_reader/raman1.sif +0 -0
- sigima/data/tests/image_formats/tiling.txt +10 -0
- sigima/data/tests/image_formats/uint16.tiff +0 -0
- sigima/data/tests/image_formats/uint8.tiff +0 -0
- sigima/data/tests/laser_beam/TEM00_z_13.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_18.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_23.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_30.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_35.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_40.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_45.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_50.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_55.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_60.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_65.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_70.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_75.jpg +0 -0
- sigima/data/tests/laser_beam/TEM00_z_80.jpg +0 -0
- sigima/enums.py +195 -0
- sigima/io/__init__.py +123 -0
- sigima/io/base.py +311 -0
- sigima/io/common/__init__.py +5 -0
- sigima/io/common/basename.py +164 -0
- sigima/io/common/converters.py +189 -0
- sigima/io/common/objmeta.py +181 -0
- sigima/io/common/textreader.py +58 -0
- sigima/io/convenience.py +157 -0
- sigima/io/enums.py +17 -0
- sigima/io/ftlab.py +395 -0
- sigima/io/image/__init__.py +9 -0
- sigima/io/image/base.py +177 -0
- sigima/io/image/formats.py +1016 -0
- sigima/io/image/funcs.py +414 -0
- sigima/io/signal/__init__.py +9 -0
- sigima/io/signal/base.py +129 -0
- sigima/io/signal/formats.py +290 -0
- sigima/io/signal/funcs.py +723 -0
- sigima/objects/__init__.py +260 -0
- sigima/objects/base.py +937 -0
- sigima/objects/image/__init__.py +88 -0
- sigima/objects/image/creation.py +556 -0
- sigima/objects/image/object.py +524 -0
- sigima/objects/image/roi.py +904 -0
- sigima/objects/scalar/__init__.py +57 -0
- sigima/objects/scalar/common.py +215 -0
- sigima/objects/scalar/geometry.py +502 -0
- sigima/objects/scalar/table.py +784 -0
- sigima/objects/shape.py +290 -0
- sigima/objects/signal/__init__.py +133 -0
- sigima/objects/signal/constants.py +27 -0
- sigima/objects/signal/creation.py +1428 -0
- sigima/objects/signal/object.py +444 -0
- sigima/objects/signal/roi.py +274 -0
- sigima/params.py +405 -0
- sigima/proc/__init__.py +96 -0
- sigima/proc/base.py +381 -0
- sigima/proc/decorator.py +330 -0
- sigima/proc/image/__init__.py +513 -0
- sigima/proc/image/arithmetic.py +335 -0
- sigima/proc/image/base.py +260 -0
- sigima/proc/image/detection.py +519 -0
- sigima/proc/image/edges.py +329 -0
- sigima/proc/image/exposure.py +406 -0
- sigima/proc/image/extraction.py +458 -0
- sigima/proc/image/filtering.py +219 -0
- sigima/proc/image/fourier.py +147 -0
- sigima/proc/image/geometry.py +661 -0
- sigima/proc/image/mathops.py +340 -0
- sigima/proc/image/measurement.py +195 -0
- sigima/proc/image/morphology.py +155 -0
- sigima/proc/image/noise.py +107 -0
- sigima/proc/image/preprocessing.py +182 -0
- sigima/proc/image/restoration.py +235 -0
- sigima/proc/image/threshold.py +217 -0
- sigima/proc/image/transformations.py +393 -0
- sigima/proc/signal/__init__.py +376 -0
- sigima/proc/signal/analysis.py +206 -0
- sigima/proc/signal/arithmetic.py +551 -0
- sigima/proc/signal/base.py +262 -0
- sigima/proc/signal/extraction.py +60 -0
- sigima/proc/signal/features.py +310 -0
- sigima/proc/signal/filtering.py +484 -0
- sigima/proc/signal/fitting.py +276 -0
- sigima/proc/signal/fourier.py +259 -0
- sigima/proc/signal/mathops.py +420 -0
- sigima/proc/signal/processing.py +580 -0
- sigima/proc/signal/stability.py +175 -0
- sigima/proc/title_formatting.py +227 -0
- sigima/proc/validation.py +272 -0
- sigima/tests/__init__.py +7 -0
- sigima/tests/common/__init__.py +0 -0
- sigima/tests/common/arithmeticparam_unit_test.py +26 -0
- sigima/tests/common/basename_unit_test.py +126 -0
- sigima/tests/common/client_unit_test.py +412 -0
- sigima/tests/common/converters_unit_test.py +77 -0
- sigima/tests/common/decorator_unit_test.py +176 -0
- sigima/tests/common/examples_unit_test.py +104 -0
- sigima/tests/common/kernel_normalization_unit_test.py +242 -0
- sigima/tests/common/roi_basic_unit_test.py +73 -0
- sigima/tests/common/roi_geometry_unit_test.py +171 -0
- sigima/tests/common/scalar_builder_unit_test.py +142 -0
- sigima/tests/common/scalar_unit_test.py +991 -0
- sigima/tests/common/shape_unit_test.py +183 -0
- sigima/tests/common/stat_unit_test.py +138 -0
- sigima/tests/common/title_formatting_unit_test.py +338 -0
- sigima/tests/common/tools_coordinates_unit_test.py +60 -0
- sigima/tests/common/transformations_unit_test.py +178 -0
- sigima/tests/common/validation_unit_test.py +205 -0
- sigima/tests/conftest.py +129 -0
- sigima/tests/data.py +998 -0
- sigima/tests/env.py +280 -0
- sigima/tests/guiutils.py +163 -0
- sigima/tests/helpers.py +532 -0
- sigima/tests/image/__init__.py +28 -0
- sigima/tests/image/binning_unit_test.py +128 -0
- sigima/tests/image/blob_detection_unit_test.py +312 -0
- sigima/tests/image/centroid_unit_test.py +170 -0
- sigima/tests/image/check_2d_array_unit_test.py +63 -0
- sigima/tests/image/contour_unit_test.py +172 -0
- sigima/tests/image/convolution_unit_test.py +178 -0
- sigima/tests/image/datatype_unit_test.py +67 -0
- sigima/tests/image/edges_unit_test.py +155 -0
- sigima/tests/image/enclosingcircle_unit_test.py +88 -0
- sigima/tests/image/exposure_unit_test.py +223 -0
- sigima/tests/image/fft2d_unit_test.py +189 -0
- sigima/tests/image/filtering_unit_test.py +166 -0
- sigima/tests/image/geometry_unit_test.py +654 -0
- sigima/tests/image/hough_circle_unit_test.py +147 -0
- sigima/tests/image/imageobj_unit_test.py +737 -0
- sigima/tests/image/morphology_unit_test.py +71 -0
- sigima/tests/image/noise_unit_test.py +57 -0
- sigima/tests/image/offset_correction_unit_test.py +72 -0
- sigima/tests/image/operation_unit_test.py +518 -0
- sigima/tests/image/peak2d_limits_unit_test.py +41 -0
- sigima/tests/image/peak2d_unit_test.py +133 -0
- sigima/tests/image/profile_unit_test.py +159 -0
- sigima/tests/image/projections_unit_test.py +121 -0
- sigima/tests/image/restoration_unit_test.py +141 -0
- sigima/tests/image/roi2dparam_unit_test.py +53 -0
- sigima/tests/image/roi_advanced_unit_test.py +588 -0
- sigima/tests/image/roi_grid_unit_test.py +279 -0
- sigima/tests/image/spectrum2d_unit_test.py +40 -0
- sigima/tests/image/threshold_unit_test.py +91 -0
- sigima/tests/io/__init__.py +0 -0
- sigima/tests/io/addnewformat_unit_test.py +125 -0
- sigima/tests/io/convenience_funcs_unit_test.py +470 -0
- sigima/tests/io/coordinated_text_format_unit_test.py +495 -0
- sigima/tests/io/datetime_csv_unit_test.py +198 -0
- sigima/tests/io/imageio_formats_test.py +41 -0
- sigima/tests/io/ioregistry_unit_test.py +69 -0
- sigima/tests/io/objmeta_unit_test.py +87 -0
- sigima/tests/io/readobj_unit_test.py +130 -0
- sigima/tests/io/readwriteobj_unit_test.py +67 -0
- sigima/tests/signal/__init__.py +0 -0
- sigima/tests/signal/analysis_unit_test.py +135 -0
- sigima/tests/signal/check_1d_arrays_unit_test.py +169 -0
- sigima/tests/signal/convolution_unit_test.py +404 -0
- sigima/tests/signal/datetime_unit_test.py +176 -0
- sigima/tests/signal/fft1d_unit_test.py +303 -0
- sigima/tests/signal/filters_unit_test.py +403 -0
- sigima/tests/signal/fitting_unit_test.py +929 -0
- sigima/tests/signal/fwhm_unit_test.py +111 -0
- sigima/tests/signal/noise_unit_test.py +128 -0
- sigima/tests/signal/offset_correction_unit_test.py +34 -0
- sigima/tests/signal/operation_unit_test.py +489 -0
- sigima/tests/signal/peakdetection_unit_test.py +145 -0
- sigima/tests/signal/processing_unit_test.py +657 -0
- sigima/tests/signal/pulse/__init__.py +112 -0
- sigima/tests/signal/pulse/crossing_times_unit_test.py +123 -0
- sigima/tests/signal/pulse/plateau_detection_unit_test.py +102 -0
- sigima/tests/signal/pulse/pulse_unit_test.py +1824 -0
- sigima/tests/signal/roi_advanced_unit_test.py +392 -0
- sigima/tests/signal/signalobj_unit_test.py +603 -0
- sigima/tests/signal/stability_unit_test.py +431 -0
- sigima/tests/signal/uncertainty_unit_test.py +611 -0
- sigima/tests/vistools.py +1030 -0
- sigima/tools/__init__.py +59 -0
- sigima/tools/checks.py +290 -0
- sigima/tools/coordinates.py +308 -0
- sigima/tools/datatypes.py +26 -0
- sigima/tools/image/__init__.py +97 -0
- sigima/tools/image/detection.py +451 -0
- sigima/tools/image/exposure.py +77 -0
- sigima/tools/image/extraction.py +48 -0
- sigima/tools/image/fourier.py +260 -0
- sigima/tools/image/geometry.py +190 -0
- sigima/tools/image/preprocessing.py +165 -0
- sigima/tools/signal/__init__.py +86 -0
- sigima/tools/signal/dynamic.py +254 -0
- sigima/tools/signal/features.py +135 -0
- sigima/tools/signal/filtering.py +171 -0
- sigima/tools/signal/fitting.py +1171 -0
- sigima/tools/signal/fourier.py +466 -0
- sigima/tools/signal/interpolation.py +70 -0
- sigima/tools/signal/peakdetection.py +126 -0
- sigima/tools/signal/pulse.py +1626 -0
- sigima/tools/signal/scaling.py +50 -0
- sigima/tools/signal/stability.py +258 -0
- sigima/tools/signal/windowing.py +90 -0
- sigima/worker.py +79 -0
- sigima-1.0.0.dist-info/METADATA +233 -0
- sigima-1.0.0.dist-info/RECORD +262 -0
- {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/licenses/LICENSE +29 -29
- sigima-0.0.1.dev0.dist-info/METADATA +0 -60
- sigima-0.0.1.dev0.dist-info/RECORD +0 -6
- {sigima-0.0.1.dev0.dist-info → sigima-1.0.0.dist-info}/WHEEL +0 -0
- {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
|
-
|
|
2
|
-
|
|
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`
|