temscript 2.0.1__py3-none-any.whl → 2.2.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.
- temscript/_com.py +24 -1
- temscript/_instrument_com.py +1 -1
- temscript/base_microscope.py +60 -8
- temscript/microscope.py +31 -4
- temscript/null_microscope.py +0 -4
- temscript/remote_microscope.py +5 -2
- temscript/server.py +14 -14
- temscript/version.py +1 -1
- {temscript-2.0.1.dist-info → temscript-2.2.0.dist-info}/METADATA +16 -3
- temscript-2.2.0.dist-info/RECORD +19 -0
- {temscript-2.0.1.dist-info → temscript-2.2.0.dist-info}/WHEEL +1 -1
- temscript-2.0.1.dist-info/RECORD +0 -19
- {temscript-2.0.1.dist-info → temscript-2.2.0.dist-info}/entry_points.txt +0 -0
- {temscript-2.0.1.dist-info → temscript-2.2.0.dist-info/licenses}/LICENSE +0 -0
- {temscript-2.0.1.dist-info → temscript-2.2.0.dist-info}/top_level.txt +0 -0
temscript/_com.py
CHANGED
|
@@ -6,6 +6,7 @@ __all__ = 'UUID', 'CLSCTX_ALL', 'IUnknown', 'co_create_instance', 'SafeArray', '
|
|
|
6
6
|
|
|
7
7
|
# COM constants
|
|
8
8
|
COINIT_MULTITHREADED = 0
|
|
9
|
+
COINIT_APARTMENTTHREADED = 2
|
|
9
10
|
CLSCTX_ALL = 0x17
|
|
10
11
|
|
|
11
12
|
|
|
@@ -370,5 +371,27 @@ class SafeArray:
|
|
|
370
371
|
|
|
371
372
|
|
|
372
373
|
_ole32 = ctypes.oledll.ole32
|
|
373
|
-
_ole32.CoInitializeEx(None, ctypes.c_int(COINIT_MULTITHREADED))
|
|
374
374
|
_oleauto = ctypes.windll.oleaut32
|
|
375
|
+
|
|
376
|
+
def initialize_com(flags=None):
|
|
377
|
+
RPC_E_CHANGED_MODE = -2147417850
|
|
378
|
+
|
|
379
|
+
# The comtypes package allows to specify the apartment model by
|
|
380
|
+
# setting sys.coinit_flags in advance. We copy this behavior.
|
|
381
|
+
if flags is None:
|
|
382
|
+
import sys
|
|
383
|
+
flags = getattr(sys, "coinit_flags", None)
|
|
384
|
+
|
|
385
|
+
if flags is None:
|
|
386
|
+
# If we don't have explicit flags, try STA first and fall back to MTA
|
|
387
|
+
# if COM is already initialized to MTA.
|
|
388
|
+
try:
|
|
389
|
+
_ole32.CoInitializeEx(None, ctypes.c_int(COINIT_APARTMENTTHREADED))
|
|
390
|
+
except WindowsError as exc:
|
|
391
|
+
if exc.winerror == RPC_E_CHANGED_MODE:
|
|
392
|
+
_ole32.CoInitializeEx(None, ctypes.c_int(COINIT_MULTITHREADED))
|
|
393
|
+
else:
|
|
394
|
+
# Otherwise, use the apartment model we got
|
|
395
|
+
_ole32.CoInitializeEx(None, flags)
|
|
396
|
+
|
|
397
|
+
initialize_com()
|
temscript/_instrument_com.py
CHANGED
|
@@ -28,7 +28,7 @@ class LongProperty(BaseProperty):
|
|
|
28
28
|
if self._get_index is None:
|
|
29
29
|
raise AttributeError("Attribute %s is not readable" % self._name)
|
|
30
30
|
result = ctypes.c_long(-1)
|
|
31
|
-
prototype = ctypes.WINFUNCTYPE(ctypes.HRESULT, ctypes.
|
|
31
|
+
prototype = ctypes.WINFUNCTYPE(ctypes.HRESULT, ctypes.POINTER(ctypes.c_long))(self._get_index, "get_property")
|
|
32
32
|
prototype(obj.get(), ctypes.byref(result))
|
|
33
33
|
return result.value
|
|
34
34
|
|
temscript/base_microscope.py
CHANGED
|
@@ -84,14 +84,48 @@ class BaseMicroscope(ABC):
|
|
|
84
84
|
"""Return product family (see :class:`ProductFamily` for values): "TITAN", "TECNAI", ..."""
|
|
85
85
|
raise NotImplementedError
|
|
86
86
|
|
|
87
|
-
@abstractmethod
|
|
88
87
|
def get_microscope_id(self):
|
|
89
88
|
"""
|
|
90
|
-
Return microscope
|
|
89
|
+
Return hostname of microscope's computer.
|
|
91
90
|
|
|
92
|
-
|
|
91
|
+
.. deprecated:: 2.2.0
|
|
92
|
+
The term "microscope ID" is ambiguous. FEI/TFS instruments identify themselves by the computer name
|
|
93
|
+
and the instrument ID (as also stored in Velox metadata), use :meth:`get_computer_name` or
|
|
94
|
+
:meth:`get_instrument_id` instead.
|
|
93
95
|
"""
|
|
94
|
-
|
|
96
|
+
import warnings
|
|
97
|
+
warnings.warn("Microscope.get_microscope_id() is deprecated. "
|
|
98
|
+
"Use get_computer_name() and/or get_instrument_id() instead.",
|
|
99
|
+
category=DeprecationWarning, stacklevel=2)
|
|
100
|
+
return self.get_computer_name()
|
|
101
|
+
|
|
102
|
+
def get_computer_name(self):
|
|
103
|
+
"""
|
|
104
|
+
Return name (hostname) of the microscope computer.
|
|
105
|
+
|
|
106
|
+
This corresponds to the computer name stored by FEI/TFS software, e.g. in Velox metadata.
|
|
107
|
+
|
|
108
|
+
.. versionadded:: 2.2.0
|
|
109
|
+
"""
|
|
110
|
+
import socket
|
|
111
|
+
return socket.gethostname()
|
|
112
|
+
|
|
113
|
+
def get_instrument_id(self):
|
|
114
|
+
"""
|
|
115
|
+
Return serial number of the microscope as string of decimal digits (without the "D" prefix,
|
|
116
|
+
e.g. "1234" for D1234).
|
|
117
|
+
|
|
118
|
+
:class:`Microscope` reads the ``Instrument Key`` DWORD from
|
|
119
|
+
``HKEY_LOCAL_MACHINE\\SOFTWARE\\FEI\\Configuration`` in the Windows registry. If the serial number
|
|
120
|
+
is not available, an empty string is returned. See :ref:`restrictions` for details.
|
|
121
|
+
|
|
122
|
+
This corresponds to the instrument ID stored by FEI/TFS software, e.g. in Velox metadata.
|
|
123
|
+
|
|
124
|
+
The default implementation returns an empty string.
|
|
125
|
+
|
|
126
|
+
.. versionadded:: 2.2.0
|
|
127
|
+
"""
|
|
128
|
+
return ""
|
|
95
129
|
|
|
96
130
|
@abstractmethod
|
|
97
131
|
def get_version(self):
|
|
@@ -641,7 +675,11 @@ class BaseMicroscope(ABC):
|
|
|
641
675
|
def get_indicated_camera_length(self):
|
|
642
676
|
"""
|
|
643
677
|
Return (indicated) camera length in meters in diffraction modes.
|
|
644
|
-
|
|
678
|
+
|
|
679
|
+
.. note::
|
|
680
|
+
The scripting manual states, that this function always returns 0,
|
|
681
|
+
if microscope is in imaging mode. In STEM mode this
|
|
682
|
+
function works reportedly nevertheless.
|
|
645
683
|
|
|
646
684
|
.. versionadded:: 1.0.9
|
|
647
685
|
"""
|
|
@@ -651,7 +689,11 @@ class BaseMicroscope(ABC):
|
|
|
651
689
|
def get_indicated_magnification(self):
|
|
652
690
|
"""
|
|
653
691
|
Return (indicated) magnification in imaging modes.
|
|
654
|
-
|
|
692
|
+
|
|
693
|
+
.. note::
|
|
694
|
+
The scripting manual states, that this function always returns 0,
|
|
695
|
+
if microscope is in diffraction mode. In STEM mode this
|
|
696
|
+
function works reportedly nevertheless.
|
|
655
697
|
|
|
656
698
|
.. note::
|
|
657
699
|
On Titan 1.1 software this method returns 0.0 regardless of used mode. See :ref:`restrictions`.
|
|
@@ -1123,10 +1165,19 @@ class BaseMicroscope(ABC):
|
|
|
1123
1165
|
|
|
1124
1166
|
.. versionchanged:: 2.0
|
|
1125
1167
|
The method was renamed from get_optics_state() to get_state()
|
|
1168
|
+
|
|
1169
|
+
.. versionchanged:: 2.2.0
|
|
1170
|
+
Added "instrument_id" and "computer_name" entries.
|
|
1171
|
+
|
|
1172
|
+
.. deprecated:: 2.2.0
|
|
1173
|
+
The "microscope_id" entry is deprecated and will be removed in future versions. It contains the
|
|
1174
|
+
same value as "computer_name", use that entry instead. See :meth:`get_microscope_id`.
|
|
1126
1175
|
"""
|
|
1127
1176
|
state = {
|
|
1128
1177
|
"family": self.get_family(),
|
|
1129
|
-
"microscope_id": self.
|
|
1178
|
+
"microscope_id": self.get_computer_name(),
|
|
1179
|
+
"instrument_id": self.get_instrument_id(),
|
|
1180
|
+
"computer_name": self.get_computer_name(),
|
|
1130
1181
|
"temscript_version": self.get_version(),
|
|
1131
1182
|
"voltage(kV)": self.get_voltage(),
|
|
1132
1183
|
"stage_holder": self.get_stage_holder(),
|
|
@@ -1174,5 +1225,6 @@ class BaseMicroscope(ABC):
|
|
|
1174
1225
|
use :meth:`get_state` instead.
|
|
1175
1226
|
"""
|
|
1176
1227
|
import warnings
|
|
1177
|
-
warnings.warn("Microscope.get_optics_state() is deprecated. Use get_state() instead.",
|
|
1228
|
+
warnings.warn("Microscope.get_optics_state() is deprecated. Use get_state() instead.",
|
|
1229
|
+
category=DeprecationWarning, stacklevel=2)
|
|
1178
1230
|
return self.get_state()
|
temscript/microscope.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import functools
|
|
1
2
|
import math
|
|
2
3
|
|
|
3
4
|
from temscript.base_microscope import set_enum_attr_from_dict, set_attr_from_dict
|
|
@@ -7,6 +8,27 @@ from .instrument import CCDCamera, GetInstrument, STEMDetector
|
|
|
7
8
|
from .enums import *
|
|
8
9
|
|
|
9
10
|
|
|
11
|
+
# Computer name and instrument ID are properties of the machine, thus cached at module level
|
|
12
|
+
# (and not per instance, which would keep instances alive).
|
|
13
|
+
@functools.lru_cache(maxsize=None)
|
|
14
|
+
def _get_computer_name():
|
|
15
|
+
import socket
|
|
16
|
+
return socket.gethostname()
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@functools.lru_cache(maxsize=None)
|
|
20
|
+
def _get_instrument_id():
|
|
21
|
+
import winreg
|
|
22
|
+
try:
|
|
23
|
+
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\FEI\Configuration") as key:
|
|
24
|
+
value, value_type = winreg.QueryValueEx(key, "Instrument Key")
|
|
25
|
+
if value_type == winreg.REG_DWORD and value > 0:
|
|
26
|
+
return str(value)
|
|
27
|
+
except OSError:
|
|
28
|
+
pass # Missing key/value or access denied.
|
|
29
|
+
return ""
|
|
30
|
+
|
|
31
|
+
|
|
10
32
|
class Microscope(BaseMicroscope):
|
|
11
33
|
"""
|
|
12
34
|
Hich level interface to local microscope.
|
|
@@ -38,9 +60,11 @@ class Microscope(BaseMicroscope):
|
|
|
38
60
|
def get_family(self):
|
|
39
61
|
return ProductFamily(self._family).name
|
|
40
62
|
|
|
41
|
-
def
|
|
42
|
-
|
|
43
|
-
|
|
63
|
+
def get_computer_name(self):
|
|
64
|
+
return _get_computer_name()
|
|
65
|
+
|
|
66
|
+
def get_instrument_id(self):
|
|
67
|
+
return _get_instrument_id()
|
|
44
68
|
|
|
45
69
|
def get_version(self):
|
|
46
70
|
from .version import __version__
|
|
@@ -79,7 +103,10 @@ class Microscope(BaseMicroscope):
|
|
|
79
103
|
self._tem_vacuum.ColumnValvesOpen = state
|
|
80
104
|
|
|
81
105
|
def get_stage_holder(self):
|
|
82
|
-
|
|
106
|
+
try:
|
|
107
|
+
return self._tem_stage.Holder.name
|
|
108
|
+
except OSError:
|
|
109
|
+
return ""
|
|
83
110
|
|
|
84
111
|
def get_stage_status(self):
|
|
85
112
|
return self._tem_stage.Status.name
|
temscript/null_microscope.py
CHANGED
|
@@ -122,10 +122,6 @@ class NullMicroscope(BaseMicroscope):
|
|
|
122
122
|
def get_family(self):
|
|
123
123
|
return "NULL"
|
|
124
124
|
|
|
125
|
-
def get_microscope_id(self):
|
|
126
|
-
import socket
|
|
127
|
-
return socket.gethostname()
|
|
128
|
-
|
|
129
125
|
def get_version(self):
|
|
130
126
|
from .version import __version__
|
|
131
127
|
return __version__
|
temscript/remote_microscope.py
CHANGED
|
@@ -130,8 +130,11 @@ class RemoteMicroscope(BaseMicroscope):
|
|
|
130
130
|
def get_family(self):
|
|
131
131
|
return self._request("GET", "/v1/family")[1]
|
|
132
132
|
|
|
133
|
-
def
|
|
134
|
-
return self._request("GET", "/v1/
|
|
133
|
+
def get_computer_name(self):
|
|
134
|
+
return self._request("GET", "/v1/computer_name")[1]
|
|
135
|
+
|
|
136
|
+
def get_instrument_id(self):
|
|
137
|
+
return self._request("GET", "/v1/instrument_id")[1]
|
|
135
138
|
|
|
136
139
|
def get_version(self):
|
|
137
140
|
return self._request("GET", "/v1/version")[1]
|
temscript/server.py
CHANGED
|
@@ -8,15 +8,15 @@ from .marshall import ExtendedJsonEncoder, gzip_encode, MIME_TYPE_PICKLE, MIME_T
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class MicroscopeHandler(BaseHTTPRequestHandler):
|
|
11
|
-
GET_V1_FORWARD = ("family", "microscope_id", "
|
|
12
|
-
"stage_status", "stage_position", "stage_limits", "detectors", "cameras",
|
|
13
|
-
"stem_acquisition_param", "image_shift", "beam_shift", "beam_tilt",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"illumination_mode", "condenser_mode", "illuminated_area", "probe_defocus",
|
|
18
|
-
"stem_magnification", "stem_rotation", "spot_size_index", "dark_field_mode",
|
|
19
|
-
"instrument_mode", 'optics_state', 'state', 'column_valves_open')
|
|
11
|
+
GET_V1_FORWARD = ("family", "microscope_id", "instrument_id", "computer_name", "version", "voltage", "vacuum",
|
|
12
|
+
"stage_holder", "stage_status", "stage_position", "stage_limits", "detectors", "cameras",
|
|
13
|
+
"stem_detectors", "stem_acquisition_param", "image_shift", "beam_shift", "beam_tilt",
|
|
14
|
+
"projection_sub_mode", "projection_mode", "projection_mode_string", "magnification_index",
|
|
15
|
+
"indicated_camera_length", "indicated_magnification", "defocus", "objective_excitation",
|
|
16
|
+
"intensity", "objective_stigmator", "condenser_stigmator", "diffraction_shift", "screen_current",
|
|
17
|
+
"screen_position", "illumination_mode", "condenser_mode", "illuminated_area", "probe_defocus",
|
|
18
|
+
"convergence_angle", "stem_magnification", "stem_rotation", "spot_size_index", "dark_field_mode",
|
|
19
|
+
"beam_blanked", "instrument_mode", 'optics_state', 'state', 'column_valves_open')
|
|
20
20
|
|
|
21
21
|
PUT_V1_FORWARD = ("image_shift", "beam_shift", "beam_tilt", "projection_mode", "magnification_index",
|
|
22
22
|
"defocus", "intensity", "diffraction_shift", "objective_stigmator", "condenser_stigmator",
|
|
@@ -58,7 +58,7 @@ class MicroscopeHandler(BaseHTTPRequestHandler):
|
|
|
58
58
|
else:
|
|
59
59
|
content_encoding = None
|
|
60
60
|
except Exception as exc:
|
|
61
|
-
self.log_error("Exception raised during encoding of response: %s"
|
|
61
|
+
self.log_error("Exception raised during encoding of response: %s", repr(exc))
|
|
62
62
|
self.send_error(500, "Error handling request '%s': %s" % (self.path, str(exc)))
|
|
63
63
|
else:
|
|
64
64
|
self.send_response(200)
|
|
@@ -146,10 +146,10 @@ class MicroscopeHandler(BaseHTTPRequestHandler):
|
|
|
146
146
|
else:
|
|
147
147
|
raise KeyError('Unknown API version: %s' % self.path)
|
|
148
148
|
except KeyError as exc:
|
|
149
|
-
self.log_error("KeyError raised during handling of GET request '%s': %s"
|
|
149
|
+
self.log_error("KeyError raised during handling of GET request '%s': %s", self.path, repr(exc))
|
|
150
150
|
self.send_error(404, str(exc))
|
|
151
151
|
except Exception as exc:
|
|
152
|
-
self.log_error("Exception raised during handling of GET request '%s': %s"
|
|
152
|
+
self.log_error("Exception raised during handling of GET request '%s': %s", self.path, repr(exc))
|
|
153
153
|
self.send_error(500, "Error handling request '%s': %s" % (self.path, str(exc)))
|
|
154
154
|
else:
|
|
155
155
|
self.build_response(response)
|
|
@@ -163,10 +163,10 @@ class MicroscopeHandler(BaseHTTPRequestHandler):
|
|
|
163
163
|
else:
|
|
164
164
|
raise KeyError('Unknown API version: %s' % self.path)
|
|
165
165
|
except KeyError as exc:
|
|
166
|
-
self.log_error("KeyError raised during handling of GET request '%s': %s"
|
|
166
|
+
self.log_error("KeyError raised during handling of GET request '%s': %s" , self.path, repr(exc))
|
|
167
167
|
self.send_error(404, str(exc))
|
|
168
168
|
except Exception as exc:
|
|
169
|
-
self.log_error("Exception raised during handling of GET request '%s': %s"
|
|
169
|
+
self.log_error("Exception raised during handling of GET request '%s': %s" , self.path, repr(exc))
|
|
170
170
|
self.send_error(500, "Error handling request '%s': %s" % (self.path, str(exc)))
|
|
171
171
|
else:
|
|
172
172
|
self.build_response(response)
|
temscript/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '2.0
|
|
1
|
+
__version__ = '2.2.0'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: temscript
|
|
3
|
-
Version: 2.0
|
|
4
|
-
Summary: TEM Scripting adapter for FEI microscopes
|
|
3
|
+
Version: 2.2.0
|
|
4
|
+
Summary: TEM Scripting adapter for TFS/FEI transmission electron microscopes
|
|
5
5
|
Home-page: https://github.com/niermann/temscript
|
|
6
6
|
Author: Tore Niermann
|
|
7
7
|
Author-email: tore.niermann@tu-berlin.de
|
|
@@ -22,6 +22,19 @@ Requires-Python: >=3.4
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: numpy
|
|
25
|
+
Dynamic: author
|
|
26
|
+
Dynamic: author-email
|
|
27
|
+
Dynamic: classifier
|
|
28
|
+
Dynamic: description
|
|
29
|
+
Dynamic: description-content-type
|
|
30
|
+
Dynamic: home-page
|
|
31
|
+
Dynamic: license
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
Dynamic: platform
|
|
34
|
+
Dynamic: project-url
|
|
35
|
+
Dynamic: requires-dist
|
|
36
|
+
Dynamic: requires-python
|
|
37
|
+
Dynamic: summary
|
|
25
38
|
|
|
26
39
|
# About
|
|
27
40
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
temscript/__init__.py,sha256=j1InqV3AFmU14cUv-Zfk4w6QK7oBGeg8X0GpMZJlG3Y,294
|
|
2
|
+
temscript/_com.py,sha256=-VvCb9w6d3vQsM3iurYBBEJoPyjYUs0tpRqwOSZrI84,12409
|
|
3
|
+
temscript/_instrument_com.py,sha256=rB5hms5viDfzKBXLG3N7Xn5nu82Myi52FF_y8W5x_Ho,25529
|
|
4
|
+
temscript/_instrument_stubs.py,sha256=0YxgDrJCgKUAlIK__xv5GOTxAZn00f3W0ux76tu7BuE,767
|
|
5
|
+
temscript/base_microscope.py,sha256=FYsl3QpE-imuIe2FCb6_aGFD7YFir3i9HPILSC74wZQ,39013
|
|
6
|
+
temscript/enums.py,sha256=meaXlI4tUyYDGWqH8fFD0QYDDmEGbNV7wvPtI5XxXxk,3538
|
|
7
|
+
temscript/instrument.py,sha256=lQhkxgChQmpmmMHxTuihv53up1rtIeCTvOcvC7Hg3K8,158
|
|
8
|
+
temscript/marshall.py,sha256=_PGKOew2lLBVGX0KJ4jDkvD9M3fCRzWLqr57wpv-tZ8,2751
|
|
9
|
+
temscript/microscope.py,sha256=zsnKNZuCSPfYbbpiEvyRc7Bts6iyXDuLdfEg6j1SPpk,16288
|
|
10
|
+
temscript/null_microscope.py,sha256=RxmPOs2y6k8RbyJ6lvMThA5M-uWd05_9Ot8Ng4qTrWk,13524
|
|
11
|
+
temscript/remote_microscope.py,sha256=LIh_hc8aI8QyiQkhrn9WGSyGIa3MoNmw9yXbRamlKTc,13954
|
|
12
|
+
temscript/server.py,sha256=ELrYAvXxZarhNGU1z1OUZo3mHg4ReZXtbxoBWwmC6Ec,11279
|
|
13
|
+
temscript/version.py,sha256=Vyf6P6UCZKFeQtRzYujPmFfdlqSfnc01VEMWE3O0ZrA,22
|
|
14
|
+
temscript-2.2.0.dist-info/licenses/LICENSE,sha256=cq4IrCq4Tl-ygbyclC70cTWpGtcFb7RR_W_QBCKLxz0,1464
|
|
15
|
+
temscript-2.2.0.dist-info/METADATA,sha256=FmQKapDNu2BuZYmexVylm_H0DWdy2POTMKPHPfpRjUo,5642
|
|
16
|
+
temscript-2.2.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
17
|
+
temscript-2.2.0.dist-info/entry_points.txt,sha256=TXg5cJaCTRRKF4ksl8lKhDincfi26lKt0Kt6L4qF2mY,65
|
|
18
|
+
temscript-2.2.0.dist-info/top_level.txt,sha256=UtLZJUYxHjcTLq03gFBMSX58CtGZ-KebBFOTKyRfKtE,10
|
|
19
|
+
temscript-2.2.0.dist-info/RECORD,,
|
temscript-2.0.1.dist-info/RECORD
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
temscript/__init__.py,sha256=j1InqV3AFmU14cUv-Zfk4w6QK7oBGeg8X0GpMZJlG3Y,294
|
|
2
|
-
temscript/_com.py,sha256=biWMvsr0JgmiRA6J2qmRxqH6PISwxTemaKpphuug5ng,11615
|
|
3
|
-
temscript/_instrument_com.py,sha256=ymaPuzlLMNiZ9ZdBuubLuqAilNcZ3QZtIZ1mUNdOAUg,25515
|
|
4
|
-
temscript/_instrument_stubs.py,sha256=0YxgDrJCgKUAlIK__xv5GOTxAZn00f3W0ux76tu7BuE,767
|
|
5
|
-
temscript/base_microscope.py,sha256=jxB389Qdf7hsnuJx0Dbon0eZzzCTR4GLW4o1Vz8A_m8,36805
|
|
6
|
-
temscript/enums.py,sha256=meaXlI4tUyYDGWqH8fFD0QYDDmEGbNV7wvPtI5XxXxk,3538
|
|
7
|
-
temscript/instrument.py,sha256=lQhkxgChQmpmmMHxTuihv53up1rtIeCTvOcvC7Hg3K8,158
|
|
8
|
-
temscript/marshall.py,sha256=_PGKOew2lLBVGX0KJ4jDkvD9M3fCRzWLqr57wpv-tZ8,2751
|
|
9
|
-
temscript/microscope.py,sha256=DaG6ozciqV4W70Ts4ceKHe4ME1E9tUFauDpj9J3Lcas,15462
|
|
10
|
-
temscript/null_microscope.py,sha256=kQltb86XD0W5OQZo17E2hFxEPzBW4YC6BSrGsSyT4AI,13616
|
|
11
|
-
temscript/remote_microscope.py,sha256=LgIweN9O_nFZDzqbKRar515x_lHcI-UUyzz4cyW7_iI,13860
|
|
12
|
-
temscript/server.py,sha256=Lv7vrulJTTqsN1T7pnACYoJpHEJNsKWNYFcNt_37qgM,11256
|
|
13
|
-
temscript/version.py,sha256=HVx0XJJ9OYFWBBPBCUFYb8Nm43ChPg9GZLh_dkxh9qI,22
|
|
14
|
-
temscript-2.0.1.dist-info/LICENSE,sha256=cq4IrCq4Tl-ygbyclC70cTWpGtcFb7RR_W_QBCKLxz0,1464
|
|
15
|
-
temscript-2.0.1.dist-info/METADATA,sha256=7J5MysRiPir20o-6GGMuCfEeimyz_wN2tXp23519I10,5341
|
|
16
|
-
temscript-2.0.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
17
|
-
temscript-2.0.1.dist-info/entry_points.txt,sha256=TXg5cJaCTRRKF4ksl8lKhDincfi26lKt0Kt6L4qF2mY,65
|
|
18
|
-
temscript-2.0.1.dist-info/top_level.txt,sha256=UtLZJUYxHjcTLq03gFBMSX58CtGZ-KebBFOTKyRfKtE,10
|
|
19
|
-
temscript-2.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|