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.
Files changed (27) hide show
  1. horiba_sdk/__init__.py +5 -3
  2. horiba_sdk/communication/websocket_communicator.py +2 -2
  3. horiba_sdk/core/__init__.py +0 -0
  4. horiba_sdk/core/acquisition_format.py +20 -0
  5. horiba_sdk/core/clean_count_mode.py +13 -0
  6. horiba_sdk/core/timer_resolution.py +14 -0
  7. horiba_sdk/core/x_axis_conversion_type.py +18 -0
  8. horiba_sdk/devices/ccd_discovery.py +10 -12
  9. horiba_sdk/devices/device_manager.py +24 -10
  10. horiba_sdk/devices/fake_responses/ccd.json +261 -12
  11. horiba_sdk/devices/fake_responses/monochromator.json +38 -10
  12. horiba_sdk/devices/monochromator_discovery.py +16 -9
  13. horiba_sdk/devices/single_devices/abstract_device.py +46 -1
  14. horiba_sdk/devices/single_devices/ccd.py +388 -143
  15. horiba_sdk/devices/single_devices/monochromator.py +87 -71
  16. horiba_sdk/sync/communication/abstract_communicator.py +2 -3
  17. horiba_sdk/sync/communication/websocket_communicator.py +38 -18
  18. horiba_sdk/sync/devices/device_discovery.py +13 -37
  19. horiba_sdk/sync/devices/device_manager.py +14 -10
  20. horiba_sdk/sync/devices/fake_icl_server.py +9 -6
  21. horiba_sdk/sync/devices/single_devices/abstract_device.py +11 -7
  22. horiba_sdk/sync/devices/single_devices/ccd.py +517 -62
  23. horiba_sdk/sync/devices/single_devices/monochromator.py +288 -25
  24. {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/METADATA +166 -92
  25. {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/RECORD +27 -22
  26. {horiba_sdk-0.3.3.dist-info → horiba_sdk-0.5.2.dist-info}/LICENSE +0 -0
  27. {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.3
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
- # horiba-python-sdk
28
+ # HORIBA Python SDK
30
29
 
31
30
  <div align="center">
32
31
 
33
- [![build](https://github.com/ThatsTheEnd/horiba-python-sdk/actions/workflows/build.yml/badge.svg)](https://github.com/ThatsTheEnd/horiba-python-sdk/actions/workflows/build.yml)
32
+ [![build](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/actions/workflows/build.yml/badge.svg)](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/actions/workflows/build.yml)
34
33
  [![PyPI - Version](https://img.shields.io/pypi/v/horiba-sdk)](https://pypi.org/project/horiba-sdk/)
35
34
  [![Python Version](https://img.shields.io/pypi/pyversions/horiba-sdk.svg)](https://pypi.org/project/horiba-sdk/)
36
- [![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/ThatsTheEnd/horiba-python-sdk/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot)
35
+ [![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot)
37
36
 
38
37
  [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
39
38
  [![Security: bandit](https://img.shields.io/badge/security-bandit-green.svg)](https://github.com/PyCQA/bandit)
40
- [![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/.pre-commit-config.yaml)
41
- [![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/ThatsTheEnd/horiba-python-sdk/releases)
42
- [![License](https://img.shields.io/github/license/ThatsTheEnd/horiba-python-sdk)](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/LICENSE)
39
+ [![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/.pre-commit-config.yaml)
40
+ [![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/releases)
41
+ [![License](https://img.shields.io/github/license/HORIBAEzSpecSDK/horiba-python-sdk)](https://github.com/HORIBAEzSpecSDK/horiba-python-sdk/blob/master/LICENSE)
43
42
  ![Coverage Report](assets/images/coverage.svg)
44
43
  [![Documentation Status](https://readthedocs.org/projects/horiba-python-sdk/badge/?version=latest)](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
- **📦 Prerequisites**
48
+ ___
51
49
 
52
- * Python `>=3.9`
53
- * ICL
50
+ ⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
54
51
 
55
- ## 🛠️ Usage
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
+ ![generic usb hub properties](docs/source/images/generic_usb_hub_properties.png)
81
+
82
+ </details>
83
+
84
+ # 🛠️ Getting Started
85
+
86
+ <details>
87
+ <summary>Video of the steps below</summary>
88
+
89
+ ![first steps in python](docs/source/images/python_first_steps.gif)
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`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/feature/publishing/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
- 3. Run the example with:
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
- ## 👩‍💻 First steps as contributor
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
- ### Initialize your code
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
- ```bash
87
- cd horiba-python-sdk
88
- git init
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
+ ![SDK Split](docs/SDK_Overview_Dark.png#gh-dark-mode-only "SDK Split")
173
+ ![SDK Split](docs/SDK_Overview_Dark.png#gh-light-mode-only "SDK Split")
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. Upload initial code to GitHub:
208
+ 5. To push local changes to the remote repository, run:
111
209
 
112
210
  ```bash
113
211
  git add .
114
- git commit -m ":tada: Initial commit"
115
- git branch -M main
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
- ### Poetry
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
- ### Building and releasing your package
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
- ### Makefile usage
253
+ ## Makefile usage
158
254
 
159
- [`Makefile`](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/Makefile) contains a lot of functions for faster development.
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. Download and remove Poetry</summary>
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 coulb be installed after `git init` via
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/ThatsTheEnd/horiba-python-sdk/tree/master/docker).
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
- ## 📚 Documentation
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
- [![License](https://img.shields.io/github/license/ThatsTheEnd/horiba-python-sdk)](https://github.com/ThatsTheEnd/horiba-python-sdk/blob/master/LICENSE)
499
+ [![License](https://img.shields.io/github/license/HORIBAEzSpecSDK/horiba-python-sdk)](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/ThatsTheEnd/horiba-python-sdk/blob/master/LICENSE) for more details.
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/ThatsTheEnd/horiba-python-sdk}}
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=2uRBRTGqdvzbvmCju2BLkq1WSpT31Ly6FzA9AW-Lfi8,539
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=LzFaklePVAMkXKsdCQLFcx1XlOrJAAm1_Q9h2nAxeWY,8298
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=ZhxLLZhxsZmVyBrKZFoeURVdiFGqp13UlqrECogqaWo,2583
12
- horiba_sdk/devices/device_manager.py,sha256=lb3eTXvc4hby8Yp_Ty7CP0D3G50kvCu9Uy4tyQ2eQx8,10252
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=gGXlSzHNlfIjCqXWPkJJ5v2hTOP3hqKKHvNFxaV5Nnc,3165
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=zG3viM9vmLFWiaen7tmyGNqoyZRVdgahKQzzOaKYNBc,3387
18
- horiba_sdk/devices/monochromator_discovery.py,sha256=69Yik1enPiKqHg0QGHqsdalIFIu3tmH193IOo3IOqSs,2065
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=RchGRWkV0MIpGQteotwtKHdRs4QpxLoF1MG326Y4B3Q,2645
21
- horiba_sdk/devices/single_devices/ccd.py,sha256=2-CMZm4_0Djmh65Zxxi1cs5iCHfugL17Ijn2494EvpM,16261
22
- horiba_sdk/devices/single_devices/monochromator.py,sha256=YlLZuEzMd03ru3XNEZ2992dqhATYjmgFcK4n1MXRS1g,13934
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=yBDdAma5vdplyRJYSxmp3eB0z8dlZNehgPks4I6kxtI,1261
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=NeMbwVtw_rUm5rtp5Hq6YYArSA3LqdW0I8UynTVa1JY,8352
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=fcTjeblK2prGybK2aWmOi6jYq2N_zNdAfWN31_ZBBO0,3898
38
- horiba_sdk/sync/devices/device_manager.py,sha256=to9cZlhLfpTrMFN8Zrqo4T1W8MTCu1hsQFJ7rLCkro8,8359
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=sa-SdJSGivdZoQMrPnu2F0UH8A1EwM-qVyDeIyukn5k,3157
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=o_H7XT28oT91awbQGbB5urV8iO6wCTw8SD0yMovRJFI,2847
43
- horiba_sdk/sync/devices/single_devices/ccd.py,sha256=ol-1JN20gnqxUq5arT8M5YnnFKi34Jzz7bHueOiWdj4,8000
44
- horiba_sdk/sync/devices/single_devices/monochromator.py,sha256=KEpLH7hJuUZb9ypvSDmbiTuRIXtVjku3i0_Ns7rFW24,5099
45
- horiba_sdk-0.3.3.dist-info/LICENSE,sha256=JD-7TpNZoT7emooLwaTU9bJZbFbeM1ba90b8gpCYxzM,1083
46
- horiba_sdk-0.3.3.dist-info/METADATA,sha256=LZvasm0yQ90M96p6-Q7vj9W8wwlhFOQQhHv8zXL0D-w,13884
47
- horiba_sdk-0.3.3.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
48
- horiba_sdk-0.3.3.dist-info/RECORD,,
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,,