horiba-sdk 0.3.3__py3-none-any.whl → 0.5.2__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.
- horiba_sdk/__init__.py +5 -3
- horiba_sdk/communication/websocket_communicator.py +2 -2
- horiba_sdk/core/__init__.py +0 -0
- horiba_sdk/core/acquisition_format.py +20 -0
- horiba_sdk/core/clean_count_mode.py +13 -0
- horiba_sdk/core/timer_resolution.py +14 -0
- horiba_sdk/core/x_axis_conversion_type.py +18 -0
- horiba_sdk/devices/ccd_discovery.py +10 -12
- horiba_sdk/devices/device_manager.py +24 -10
- horiba_sdk/devices/fake_responses/ccd.json +261 -12
- horiba_sdk/devices/fake_responses/monochromator.json +38 -10
- horiba_sdk/devices/monochromator_discovery.py +16 -9
- horiba_sdk/devices/single_devices/abstract_device.py +46 -1
- horiba_sdk/devices/single_devices/ccd.py +388 -143
- horiba_sdk/devices/single_devices/monochromator.py +87 -71
- horiba_sdk/sync/communication/abstract_communicator.py +2 -3
- horiba_sdk/sync/communication/websocket_communicator.py +38 -18
- horiba_sdk/sync/devices/device_discovery.py +13 -37
- horiba_sdk/sync/devices/device_manager.py +14 -10
- horiba_sdk/sync/devices/fake_icl_server.py +9 -6
- horiba_sdk/sync/devices/single_devices/abstract_device.py +11 -7
- horiba_sdk/sync/devices/single_devices/ccd.py +517 -62
- horiba_sdk/sync/devices/single_devices/monochromator.py +288 -25
- {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/METADATA +166 -92
- {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/RECORD +27 -22
- {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/LICENSE +0 -0
- {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: horiba-sdk
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.2
|
4
4
|
Summary: 'horiba-sdk' is a package that provides source code for the development with Horiba devices
|
5
5
|
Home-page: https://github.com/ThatsTheEnd/horiba-python-sdk
|
6
6
|
License: MIT
|
@@ -18,7 +18,6 @@ Classifier: Programming Language :: Python :: 3.10
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.11
|
19
19
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
20
20
|
Requires-Dist: loguru (>=0.7.2,<0.8.0)
|
21
|
-
Requires-Dist: numericalunits (>=1.25,<2.0)
|
22
21
|
Requires-Dist: overrides (>=7.4.0,<8.0.0)
|
23
22
|
Requires-Dist: pint (>=0.23,<0.24)
|
24
23
|
Requires-Dist: psutil (>=5.9.7,<6.0.0)
|
@@ -26,33 +25,98 @@ Requires-Dist: websockets (>=12.0,<13.0)
|
|
26
25
|
Project-URL: Repository, https://github.com/ThatsTheEnd/horiba-python-sdk
|
27
26
|
Description-Content-Type: text/markdown
|
28
27
|
|
29
|
-
#
|
28
|
+
# HORIBA Python SDK
|
30
29
|
|
31
30
|
<div align="center">
|
32
31
|
|
33
|
-
[](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/actions/workflows/build.yml)
|
34
33
|
[](https://pypi.org/project/horiba-sdk/)
|
35
34
|
[](https://pypi.org/project/horiba-sdk/)
|
36
|
-
[](https://github.com/
|
35
|
+
[](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot)
|
37
36
|
|
38
37
|
[](https://github.com/astral-sh/ruff)
|
39
38
|
[](https://github.com/PyCQA/bandit)
|
40
|
-
[](https://github.com/
|
41
|
-
[](https://github.com/
|
42
|
-
[](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/.pre-commit-config.yaml)
|
40
|
+
[](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/releases)
|
41
|
+
[](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/LICENSE)
|
43
42
|

|
44
43
|
[](https://horiba-python-sdk.readthedocs.io/en/latest/?badge=latest)
|
45
44
|
|
46
|
-
'horiba-sdk' is a package that provides source code for the development with Horiba devices
|
47
45
|
|
48
46
|
</div>
|
49
47
|
|
50
|
-
|
48
|
+
___
|
51
49
|
|
52
|
-
|
53
|
-
* ICL
|
50
|
+
⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
|
54
51
|
|
55
|
-
|
52
|
+
> [!WARNING]
|
53
|
+
> This SDK is under development and not yet released.
|
54
|
+
|
55
|
+
> [!IMPORTANT]
|
56
|
+
> For this python code to work, the SDK from Horiba has to be purchased, installed and licensed.
|
57
|
+
> The code in this repo and the SDK are under development and not yet released for public use!
|
58
|
+
|
59
|
+
⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️⬆️
|
60
|
+
|
61
|
+
___
|
62
|
+
|
63
|
+
# 📦 About this repository
|
64
|
+
`horiba-sdk` is a package that provides source code for the development of custom applications that include interaction with Horiba devices, namely monochromators and multichannel detectors (e.g. CCD cameras).
|
65
|
+
Future versions of this package will include access to more devices. The SDK exists for several programming languages:
|
66
|
+
- Python (this repo)
|
67
|
+
- [C#](https://github.com/HORIBAEzSpecSDK/dotnet-sdk)
|
68
|
+
- [C++](https://github.com/HORIBAEzSpecSDK/cpp-sdk)
|
69
|
+
- [LabVIEW](https://github.com/HORIBAEzSpecSDK/labview-sdk)
|
70
|
+
|
71
|
+
# ☑️ Prerequisites
|
72
|
+
|
73
|
+
To use this package, the following conditions must be met:
|
74
|
+
* Python `>=3.9` is installed
|
75
|
+
* ICL.exe installed as part of the `Horiba SDK`, licensed and activated. The Horiba SDK can be purchased by contacting the [Horiba Support](https://www.horiba.com/int/scientific/contact/) and sending a message to the `Scientific` business segment, specifying `no division` and selecting the `sales` department
|
76
|
+
*
|
77
|
+
<details>
|
78
|
+
<summary>To make sure that the USB devices do not get disconnected, uncheck the following boxes in the properties</summary>
|
79
|
+
|
80
|
+

|
81
|
+
|
82
|
+
</details>
|
83
|
+
|
84
|
+
# 🛠️ Getting Started
|
85
|
+
|
86
|
+
<details>
|
87
|
+
<summary>Video of the steps below</summary>
|
88
|
+
|
89
|
+

|
90
|
+
|
91
|
+
</details>
|
92
|
+
|
93
|
+
1. (Optional but recommended) Work in a virtual environment:
|
94
|
+
|
95
|
+
Navigate to the (empty) project folder you want to work and run:
|
96
|
+
|
97
|
+
```bash
|
98
|
+
python -m venv .
|
99
|
+
```
|
100
|
+
|
101
|
+
Activate the virtual environment:
|
102
|
+
|
103
|
+
<details>
|
104
|
+
<summary>Windows</summary>
|
105
|
+
|
106
|
+
```powershell
|
107
|
+
.\Scripts\activate
|
108
|
+
```
|
109
|
+
</details>
|
110
|
+
|
111
|
+
<details>
|
112
|
+
<summary>Unix</summary>
|
113
|
+
|
114
|
+
```bash
|
115
|
+
source ./bin/activate
|
116
|
+
```
|
117
|
+
</details>
|
118
|
+
|
119
|
+
*Note: do deactivate it, simply run `deactivate`.*
|
56
120
|
|
57
121
|
|
58
122
|
1. Install the sdk:
|
@@ -68,25 +132,59 @@ Description-Content-Type: text/markdown
|
|
68
132
|
```
|
69
133
|
|
70
134
|
2. Create a file named `center_scan.py` and copy-paste the content of
|
71
|
-
[`examples/asynchronous_examples/center_scan.py`](
|
135
|
+
[`examples/asynchronous_examples/center_scan.py`](examples/asynchronous_examples/center_scan.py)
|
72
136
|
|
137
|
+
3. Install the required library for plotting the graph in the example:
|
73
138
|
|
74
|
-
|
139
|
+
```bash
|
140
|
+
pip install matplotlib
|
141
|
+
```
|
142
|
+
|
143
|
+
or install with `Poetry`
|
144
|
+
|
145
|
+
```bash
|
146
|
+
poetry add matplotlib
|
147
|
+
```
|
148
|
+
|
149
|
+
4. Run the example with:
|
75
150
|
|
76
151
|
```bash
|
77
152
|
python center_scan.py
|
78
153
|
```
|
154
|
+
# 🔗 Examples
|
155
|
+
## Getting Started
|
156
|
+
The files in the folder [examples/asynchronous_examples/](examples/asynchronous_examples) can be used as a starting point for a custom application.
|
79
157
|
|
80
|
-
##
|
158
|
+
## Tests
|
159
|
+
The files in the folder [tests/test_single_devices](tests/test_single_devices) can be used to explore further functionality.
|
81
160
|
|
82
|
-
|
161
|
+
## Asynchronous vs Synchronous Examples
|
162
|
+
This SDK is based on Websocket communication. The nature of this communication is asynchronous by its design.
|
163
|
+
The way this SDK uses websockets is to send requests to the underlying `instrument control layer (ICL)` and get a (nearly immediate) reply back.
|
164
|
+
This is true even for commands that longer to execute, e.g. to move the mono or to acquire data from the CCD. The way this is handled is by sending an acknowledgement back that the command is received and being processed. The user has then to inquire if `mono_isBusy` to see when the hardware is free to receive the next command.
|
165
|
+
That means that every `async` function can be `awaited` immediately and handled just like any other function.
|
166
|
+
To learn more about async and await, [check out this introduction](https://www.pythontutorial.net/python-concurrency/python-async-await/) or [take a deeper dive here](https://medium.com/@danielwume/an-in-depth-guide-to-asyncio-and-await-in-python-059c3ecc9d96).
|
83
167
|
|
84
|
-
1. Initialize `git` inside your repo:
|
85
168
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
169
|
+
|
170
|
+
# 🏗️ Architecture
|
171
|
+
The functionality is distributed over two parts, the `instrument control layer (ICL)` and the `github source code`. This split is shown in the following image:
|
172
|
+

|
173
|
+

|
174
|
+
|
175
|
+
The ICL itself is sold and distributed by Horiba. The source code to communicate with the ICL and drive the instruments is located in this repo for Python, but can be also found for C#, C++ and LabVIEW as described above.
|
176
|
+
The communication between SDK and ICL is websocket based. I.e. in essence the ICL is steered by a `command and control` pattern where commands and their replies are JSON commands.
|
177
|
+
|
178
|
+
# 👩💻 First steps as contributor
|
179
|
+
|
180
|
+
## Clone and set up the repo
|
181
|
+
|
182
|
+
1. Clone the repo:
|
183
|
+
|
184
|
+
```bash
|
185
|
+
git clone https://github.com/HORIBAEzSpecSDK/horiba-python-sdk.git
|
186
|
+
cd horiba-python-sdk
|
187
|
+
```
|
90
188
|
|
91
189
|
2. If you don't have `Poetry` installed run:
|
92
190
|
|
@@ -107,14 +205,12 @@ make pre-commit-install
|
|
107
205
|
make codestyle
|
108
206
|
```
|
109
207
|
|
110
|
-
5.
|
208
|
+
5. To push local changes to the remote repository, run:
|
111
209
|
|
112
210
|
```bash
|
113
211
|
git add .
|
114
|
-
git commit -m ":
|
115
|
-
git
|
116
|
-
git remote add origin https://github.com/ThatsTheEnd/horiba-python-sdk.git
|
117
|
-
git push -u origin main
|
212
|
+
git commit -m "feat: add new feature xyz"
|
213
|
+
git push
|
118
214
|
```
|
119
215
|
|
120
216
|
<!-- ### Set up bots -->
|
@@ -122,7 +218,7 @@ git push -u origin main
|
|
122
218
|
<!-- - Set up [Dependabot](https://docs.github.com/en/github/administering-a-repository/enabling-and-disabling-version-updates#enabling-github-dependabot-version-updates) to ensure you have the latest dependencies. -->
|
123
219
|
<!-- - Set up [Stale bot](https://github.com/apps/stale) for automatic issue closing. -->
|
124
220
|
|
125
|
-
|
221
|
+
## Poetry
|
126
222
|
|
127
223
|
Want to know more about Poetry? Check [its documentation](https://python-poetry.org/docs/).
|
128
224
|
|
@@ -140,7 +236,7 @@ etc
|
|
140
236
|
</p>
|
141
237
|
</details>
|
142
238
|
|
143
|
-
|
239
|
+
## Building and releasing your package
|
144
240
|
|
145
241
|
Building a new version of the application contains steps:
|
146
242
|
|
@@ -154,12 +250,12 @@ Building a new version of the application contains steps:
|
|
154
250
|
git push --tags
|
155
251
|
```
|
156
252
|
|
157
|
-
|
253
|
+
## Makefile usage
|
158
254
|
|
159
|
-
[`Makefile`](https://github.com/
|
255
|
+
[`Makefile`](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/Makefile) contains a lot of functions for faster development.
|
160
256
|
|
161
257
|
<details>
|
162
|
-
<summary>1.
|
258
|
+
<summary>1. Installation of Poetry</summary>
|
163
259
|
<p>
|
164
260
|
|
165
261
|
To download and install Poetry run:
|
@@ -187,7 +283,7 @@ Install requirements:
|
|
187
283
|
make install
|
188
284
|
```
|
189
285
|
|
190
|
-
Pre-commit hooks
|
286
|
+
Pre-commit hooks could be installed after `git init` via
|
191
287
|
|
192
288
|
```bash
|
193
289
|
make pre-commit-install
|
@@ -222,6 +318,8 @@ Update all dev libraries to the latest version using one comand
|
|
222
318
|
```bash
|
223
319
|
make update-dev-deps
|
224
320
|
```
|
321
|
+
</p>
|
322
|
+
</details>
|
225
323
|
|
226
324
|
<details>
|
227
325
|
<summary>4. Code security</summary>
|
@@ -237,8 +335,6 @@ This command launches `Poetry` integrity checks as well as identifies security i
|
|
237
335
|
make check-safety
|
238
336
|
```
|
239
337
|
|
240
|
-
</p>
|
241
|
-
</details>
|
242
338
|
|
243
339
|
</p>
|
244
340
|
</details>
|
@@ -262,10 +358,40 @@ make mypy
|
|
262
358
|
|
263
359
|
Run `pytest`
|
264
360
|
|
361
|
+
Unix:
|
362
|
+
|
265
363
|
```bash
|
266
364
|
make test
|
267
365
|
```
|
268
366
|
|
367
|
+
Windows:
|
368
|
+
|
369
|
+
```powershell
|
370
|
+
poetry run pytest -c pyproject.toml --cov-report=html --cov=horiba_sdk tests/
|
371
|
+
```
|
372
|
+
|
373
|
+
For the hardware tests run the following:
|
374
|
+
|
375
|
+
Windows:
|
376
|
+
|
377
|
+
```powershell
|
378
|
+
$env:HAS_HARDWARE="true"
|
379
|
+
# If you want a remote ICL be used for the tests
|
380
|
+
# $env:TEST_ICL_IP="192.168.21.24"
|
381
|
+
# $env:TEST_ICL_PORT="1234"
|
382
|
+
poetry run pytest -c pyproject.toml --cov-report=html --cov=horiba_sdk tests/
|
383
|
+
```
|
384
|
+
|
385
|
+
Unix:
|
386
|
+
|
387
|
+
```bash
|
388
|
+
HAS_HARDWARE="true"
|
389
|
+
# If you want a remote ICL be used for the tests
|
390
|
+
# TEST_ICL_IP="192.168.21.24"
|
391
|
+
# TEST_ICL_PORT="1234"
|
392
|
+
make test
|
393
|
+
```
|
394
|
+
|
269
395
|
</p>
|
270
396
|
</details>
|
271
397
|
|
@@ -311,7 +437,7 @@ Remove docker image with
|
|
311
437
|
make docker-remove
|
312
438
|
```
|
313
439
|
|
314
|
-
More information [about docker](https://github.com/
|
440
|
+
More information [about docker](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/tree/master/docker).
|
315
441
|
|
316
442
|
</p>
|
317
443
|
</details>
|
@@ -348,11 +474,10 @@ Or to remove all above run:
|
|
348
474
|
```bash
|
349
475
|
make cleanup
|
350
476
|
```
|
351
|
-
|
352
477
|
</p>
|
353
478
|
</details>
|
354
479
|
|
355
|
-
|
480
|
+
# 📚 Documentation
|
356
481
|
|
357
482
|
The latest documentation can be found at
|
358
483
|
[horiba-python-sdk.readthedocs.io](https://horiba-python-sdk.readthedocs.io/en/latest/).
|
@@ -368,63 +493,12 @@ Documentation is built each time a commit is pushed on `main` or for pull
|
|
368
493
|
requests. When release tags are created in the repo, readthedocs will also tag
|
369
494
|
the documentation accordingly
|
370
495
|
|
371
|
-
## 🚀 Features
|
372
|
-
|
373
|
-
### Development features
|
374
|
-
|
375
|
-
- Supports for `Python 3.9` and higher.
|
376
|
-
- [`Poetry`](https://python-poetry.org/) as the dependencies manager. See configuration in [`pyproject.toml`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/pyproject.toml).
|
377
|
-
- Automatic codestyle with [`ruff`](https://github.com/astral-sh/ruff)
|
378
|
-
- Ready-to-use [`pre-commit`](https://pre-commit.com/) hooks with code-formatting.
|
379
|
-
- Type checks with [`mypy`](https://mypy.readthedocs.io); security checks with [`safety`](https://github.com/pyupio/safety) and [`bandit`](https://github.com/PyCQA/bandit)
|
380
|
-
- Testing with [`pytest`](https://docs.pytest.org/en/latest/).
|
381
|
-
- Ready-to-use [`.editorconfig`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.editorconfig), [`.dockerignore`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.dockerignore), and [`.gitignore`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.gitignore). You don't have to worry about those things.
|
382
|
-
|
383
|
-
### Deployment features
|
384
|
-
|
385
|
-
- `GitHub` integration: issue and pr templates.
|
386
|
-
- `Github Actions` with predefined [build workflow](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.github/workflows/build.yml) as the default CI/CD.
|
387
|
-
- Everything is already set up for security checks, codestyle checks, code formatting, testing, linting, docker builds, etc with [`Makefile`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/Makefile#L89). More details in [makefile-usage](#makefile-usage).
|
388
|
-
- [Dockerfile](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/docker/Dockerfile) for your package.
|
389
|
-
- Always up-to-date dependencies with [`@dependabot`](https://dependabot.com/). You will only [enable it](https://docs.github.com/en/github/administering-a-repository/enabling-and-disabling-version-updates#enabling-github-dependabot-version-updates).
|
390
|
-
- Automatic drafts of new releases with [`Release Drafter`](https://github.com/marketplace/actions/release-drafter). You may see the list of labels in [`release-drafter.yml`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.github/release-drafter.yml). Works perfectly with [Semantic Versions](https://semver.org/) specification.
|
391
|
-
|
392
|
-
### Open source community features
|
393
|
-
|
394
|
-
- Ready-to-use [Pull Requests templates](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.github/PULL_REQUEST_TEMPLATE.md) and several [Issue templates](https://github.com/ThatsTheEnd/horiba-python-sdk/tree/master/.github/ISSUE_TEMPLATE).
|
395
|
-
- Files such as: `LICENSE`, `CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, and `SECURITY.md` are generated automatically.
|
396
|
-
- [Semantic Versions](https://semver.org/) specification with [`Release Drafter`](https://github.com/marketplace/actions/release-drafter).
|
397
|
-
<!-- - [`Stale bot`](https://github.com/apps/stale) that closes abandoned issues after a period of inactivity. (You will only [need to setup free plan](https://github.com/marketplace/stale)). Configuration is [here](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.github/.stale.yml). -->
|
398
|
-
|
399
|
-
|
400
|
-
## 📈 Releases
|
401
|
-
|
402
|
-
You can see the list of available releases on the [GitHub Releases](https://github.com/ThatsTheEnd/horiba-python-sdk/releases) page.
|
403
|
-
|
404
|
-
We follow [Semantic Versions](https://semver.org/) specification.
|
405
|
-
|
406
|
-
<!-- We use [`Release Drafter`](https://github.com/marketplace/actions/release-drafter). As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels. -->
|
407
|
-
|
408
|
-
### List of labels and corresponding titles
|
409
|
-
|
410
|
-
| **Label** | **Title in Releases** |
|
411
|
-
| :-----------------------------------: | :---------------------: |
|
412
|
-
| `enhancement`, `feature` | 🚀 Features |
|
413
|
-
| `bug`, `refactoring`, `bugfix`, `fix` | 🔧 Fixes & Refactoring |
|
414
|
-
| `build`, `ci`, `testing` | 📦 Build System & CI/CD |
|
415
|
-
| `breaking` | 💥 Breaking Changes |
|
416
|
-
| `documentation` | 📝 Documentation |
|
417
|
-
| `dependencies` | ⬆️ Dependencies updates |
|
418
|
-
|
419
|
-
<!-- You can update it in [`release-drafter.yml`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.github/release-drafter.yml). -->
|
420
|
-
|
421
|
-
<!-- GitHub creates the `bug`, `enhancement`, and `documentation` labels for you. Dependabot creates the `dependencies` label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them. -->
|
422
496
|
|
423
497
|
## 🛡 License
|
424
498
|
|
425
|
-
[](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/LICENSE)
|
426
500
|
|
427
|
-
This project is licensed under the terms of the `MIT` license. See [LICENSE](https://github.com/
|
501
|
+
This project is licensed under the terms of the `MIT` license. See [LICENSE](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/LICENSE) for more details.
|
428
502
|
|
429
503
|
## 📃 Citation
|
430
504
|
|
@@ -435,7 +509,7 @@ This project is licensed under the terms of the `MIT` license. See [LICENSE](htt
|
|
435
509
|
year = {2023},
|
436
510
|
publisher = {GitHub},
|
437
511
|
journal = {GitHub repository},
|
438
|
-
howpublished = {\url{https://github.com/
|
512
|
+
howpublished = {\url{https://github.com/HORIBAEzSpecSDK/horiba-python-sdk}}
|
439
513
|
}
|
440
514
|
```
|
441
515
|
|
@@ -1,25 +1,30 @@
|
|
1
|
-
horiba_sdk/__init__.py,sha256=
|
1
|
+
horiba_sdk/__init__.py,sha256=J8jCV90BJ2SCDFSpacDeAAsJa8PFqBUDpREOJeAgXug,679
|
2
2
|
horiba_sdk/communication/__init__.py,sha256=nhS1rw1ZojM8zmRIx0VEFtYge0IH-B_L4zNBUNBJZYE,1564
|
3
3
|
horiba_sdk/communication/abstract_communicator.py,sha256=E80dfOjrfuNay3W5jeSn4T2tUas6vygRcF46kSoP5j8,1498
|
4
4
|
horiba_sdk/communication/communication_exception.py,sha256=d2ouOoVI6Q69_JL1bUEjjQOmjiO0CEm8K20WsaUuhB0,583
|
5
5
|
horiba_sdk/communication/messages.py,sha256=Gxkw01JI0U5ShILANT0pezywcoSO2aHo06j1ixzZPEQ,2661
|
6
|
-
horiba_sdk/communication/websocket_communicator.py,sha256=
|
6
|
+
horiba_sdk/communication/websocket_communicator.py,sha256=wQxGRtj3htQ8n_hMvcoBmZdD18iea0uiCEsTZYdR2Jg,8300
|
7
|
+
horiba_sdk/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
+
horiba_sdk/core/acquisition_format.py,sha256=pHcHZck75BbJ4nn2FOZ9cUXq9juZUjoNxKdLUhIIINI,358
|
9
|
+
horiba_sdk/core/clean_count_mode.py,sha256=7guLd3eUV3Y2Cnj3w0JJ7ry74I8a6MFQiqbK5pTb3oU,185
|
7
10
|
horiba_sdk/core/resolution.py,sha256=VOQonjPBqZ2TbtiNVDBT3TI1Aymj1pPYWMoobFaXjG8,1029
|
11
|
+
horiba_sdk/core/timer_resolution.py,sha256=V6pXEZMVvUUoqrJmLFFI45pFt_7po6-5r1DmC8jY6gs,300
|
12
|
+
horiba_sdk/core/x_axis_conversion_type.py,sha256=SQrdbciTR8x5UWOqLDgxWPy12o0-yIVLrkm7N3gpWpg,449
|
8
13
|
horiba_sdk/devices/__init__.py,sha256=YYsJL2CSJwc2vsAjFQEKXjA5_QAnKlxSwlx32EgzFME,336
|
9
14
|
horiba_sdk/devices/abstract_device_discovery.py,sha256=04ZCEB5IZkUuJxSisS78eW6lAQNXG4uaDoPv-eBccBA,178
|
10
15
|
horiba_sdk/devices/abstract_device_manager.py,sha256=RXj5_pzFHpiolJe3ZfFsofwpD1hlwUMwYD1DyWMmlI0,1717
|
11
|
-
horiba_sdk/devices/ccd_discovery.py,sha256=
|
12
|
-
horiba_sdk/devices/device_manager.py,sha256=
|
16
|
+
horiba_sdk/devices/ccd_discovery.py,sha256=nGuskZ07Y9myI__dU8LeLnrNiJEBpGPby21EEwgSVUk,2376
|
17
|
+
horiba_sdk/devices/device_manager.py,sha256=ZmZjQjTLxJvs5NqWQLTfDcCNb3PFwBYbu1mg_qmMCVo,10847
|
13
18
|
horiba_sdk/devices/fake_device_manager.py,sha256=Tr4Z067smYfy-ya29PO4PK4EWF6Sa1R2UQFZCWfPePE,5015
|
14
19
|
horiba_sdk/devices/fake_icl_server.py,sha256=Yh9oh0YCbw-AXMnCHFWsZvJ7ZFjsnm1JG1y0ix1b-9Q,2348
|
15
|
-
horiba_sdk/devices/fake_responses/ccd.json,sha256=
|
20
|
+
horiba_sdk/devices/fake_responses/ccd.json,sha256=sMg-UqU6W1I01n2kEbkFc5J0XF8E3JVdOjB-1MhufzM,17020
|
16
21
|
horiba_sdk/devices/fake_responses/icl.json,sha256=ZPKhjx0BmwmqNGwbb7reXSStddgVZetCQQYVeNr9CSU,572
|
17
|
-
horiba_sdk/devices/fake_responses/monochromator.json,sha256=
|
18
|
-
horiba_sdk/devices/monochromator_discovery.py,sha256=
|
22
|
+
horiba_sdk/devices/fake_responses/monochromator.json,sha256=I9yBMsJyXXVCLF1J8mNPsfgXasIg60IL-4ToECcoGhw,4308
|
23
|
+
horiba_sdk/devices/monochromator_discovery.py,sha256=KoZ8vfPsI6QRuiD4BiE0YvzO42dQzFZqvoxygDSllE8,2365
|
19
24
|
horiba_sdk/devices/single_devices/__init__.py,sha256=Ai6HLstvMqT1c6A0yKLAH6227TUdS4ZMsC6zFrsmJic,192
|
20
|
-
horiba_sdk/devices/single_devices/abstract_device.py,sha256=
|
21
|
-
horiba_sdk/devices/single_devices/ccd.py,sha256=
|
22
|
-
horiba_sdk/devices/single_devices/monochromator.py,sha256=
|
25
|
+
horiba_sdk/devices/single_devices/abstract_device.py,sha256=CwCjHJWSp8WGrYsyq0ZhTQVnvYdoCG-kb4BU9SZXJm8,3994
|
26
|
+
horiba_sdk/devices/single_devices/ccd.py,sha256=mnx0keMePP7JAxCs8ZgCm_05tyu89efjAcBn2FPv4FI,29995
|
27
|
+
horiba_sdk/devices/single_devices/monochromator.py,sha256=r-9bI-ne_iGdfTWBvUnYSxxp1DQNlEt7wBN31cGfZ1E,14538
|
23
28
|
horiba_sdk/icl_error/__init__.py,sha256=EtqHaUeoaLilpb7L7juuVamJgIZ3Anfnca0AO2o46rg,1053
|
24
29
|
horiba_sdk/icl_error/abstract_error.py,sha256=5nQDI6MNfCi4xUx6taJcEWGwANOo8mPEb4kVxrO-DW8,1301
|
25
30
|
horiba_sdk/icl_error/abstract_error_db.py,sha256=IJ3wGb6DWxnY35VIUwZX0X80IPi5k4QoQXnVjDy8lH8,589
|
@@ -28,21 +33,21 @@ horiba_sdk/icl_error/icl_error.py,sha256=IElsKl5nvLjprIV_ub9MacJmdSS327iNwOXhSiJ
|
|
28
33
|
horiba_sdk/icl_error/icl_error_db.py,sha256=5Jbs_ZlMp8Bjr4u8reIxxfOSFYYkzWTfKIqOQ4oUSXQ,2603
|
29
34
|
horiba_sdk/sync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
35
|
horiba_sdk/sync/communication/__init__.py,sha256=iVHHW0cQ9w_J5dGRkwdBnw7vYgRLn5MVsdIFWGZvJoA,186
|
31
|
-
horiba_sdk/sync/communication/abstract_communicator.py,sha256=
|
36
|
+
horiba_sdk/sync/communication/abstract_communicator.py,sha256=CEkGj2qVNoWYkFD9HOlxV82kls3gsJ517gWPK-9rUBw,1185
|
32
37
|
horiba_sdk/sync/communication/test_client.py,sha256=7N5sM2Y63GSuFDmOEFRXeTHeAY7Nq7yX5MvbdPXeDko,651
|
33
|
-
horiba_sdk/sync/communication/websocket_communicator.py,sha256=
|
38
|
+
horiba_sdk/sync/communication/websocket_communicator.py,sha256=rCa0RVwl9Evwtr8VJUhkhTiIX2yG6pVtblhV3BGwnxU,9234
|
34
39
|
horiba_sdk/sync/devices/__init__.py,sha256=NDHi3zfDC52aTO1RpaPIBfyp7PEXfTqiYdvY_ThkyRE,469
|
35
40
|
horiba_sdk/sync/devices/abstract_device_discovery.py,sha256=hKDWbI8-I3r5mrU3O1Y1ve6vV7sg6KpUa5d3EfcLIE8,447
|
36
41
|
horiba_sdk/sync/devices/abstract_device_manager.py,sha256=hF9BGgVqi6EK0n6hdUDu7dnKI1SfZ5mCweGvm6vCJ5o,1709
|
37
|
-
horiba_sdk/sync/devices/device_discovery.py,sha256=
|
38
|
-
horiba_sdk/sync/devices/device_manager.py,sha256=
|
42
|
+
horiba_sdk/sync/devices/device_discovery.py,sha256=eLErCF3mFYK5Za0jRg2xBLQnWJTwce7LcWdm8OQcI0A,2723
|
43
|
+
horiba_sdk/sync/devices/device_manager.py,sha256=yGoijQnxJn7xyI3TpkBf-DpN3JGPNrQDkDtvvSLKNQk,8429
|
39
44
|
horiba_sdk/sync/devices/fake_device_manager.py,sha256=myj1GwxjcOmv9jZbaTk8QwC6qYluNaZfuP9xPXrw3do,2809
|
40
|
-
horiba_sdk/sync/devices/fake_icl_server.py,sha256=
|
45
|
+
horiba_sdk/sync/devices/fake_icl_server.py,sha256=DlQOC54p7UCYBTdZOZCD9TgDdK4MarnbaWFUXRo7NP4,3298
|
41
46
|
horiba_sdk/sync/devices/single_devices/__init__.py,sha256=Ai6HLstvMqT1c6A0yKLAH6227TUdS4ZMsC6zFrsmJic,192
|
42
|
-
horiba_sdk/sync/devices/single_devices/abstract_device.py,sha256=
|
43
|
-
horiba_sdk/sync/devices/single_devices/ccd.py,sha256=
|
44
|
-
horiba_sdk/sync/devices/single_devices/monochromator.py,sha256=
|
45
|
-
horiba_sdk-0.
|
46
|
-
horiba_sdk-0.
|
47
|
-
horiba_sdk-0.
|
48
|
-
horiba_sdk-0.
|
47
|
+
horiba_sdk/sync/devices/single_devices/abstract_device.py,sha256=ABQpU6wU5trH0j8OVjDP6MeGTj41e1ey5K5sw7tCCdQ,2883
|
48
|
+
horiba_sdk/sync/devices/single_devices/ccd.py,sha256=fHj3lU8pZJKCoo1W3xdLhucNd_7JM4XRRxbbHfAO5Os,28196
|
49
|
+
horiba_sdk/sync/devices/single_devices/monochromator.py,sha256=ur0scHOnnX0f_xhxh4Wzz4CNyeltFPuGg49PmPKEFwg,14351
|
50
|
+
horiba_sdk-0.5.2.dist-info/LICENSE,sha256=JD-7TpNZoT7emooLwaTU9bJZbFbeM1ba90b8gpCYxzM,1083
|
51
|
+
horiba_sdk-0.5.2.dist-info/METADATA,sha256=bse3ECS2XSqpwTQThdTCywbWMEyAe5pqPeGPG--PEPE,14348
|
52
|
+
horiba_sdk-0.5.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
53
|
+
horiba_sdk-0.5.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|