Python drivers for Coherent optical instruments. Currently supported devices: WaveAnalyzer (1500S, 200A, 400A, 1500B);(Not Implemented) WaveShaper ;(Not Implemented) WaveMaker
Project description
Introduction
wavetool is a Python package providing modules and examples to interface with Coherent optical instruments.
Supported models
WaveAnalyzer: 1500S, 200A, 400A, 1500B.
WaveShaper: to be implemented.
WaveMaker: to be implemented.
Installation
This package is currently in beta testing.
To install from PyPi: pip install wavetools
To install with GUI example: pip install wavetools[gui]
Tests build package is also available on TestPyPi: pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple wavetools
To install GUI: pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple wavetools[gui]
(Planned) pip install wavetools
Module organization
The package is organized into submodules based on the instrument type:
wavetools.WaveAnalyzers: Contains theWaveAnalyzers.pyfile, which includes the baseWaveAnalyzerclass, specific implementations (WaveAnalyzer1500S,WaveAnalyzer400A,WaveAnalyzer1500B), and data models (WAScan,WAScanInfo) for interacting with WaveAnalyzer devices.examples/: Contains example scripts, including a GUI application (wa_gui.py) demonstrating how to use theWaveAnalyzersmodule.tests/: Contains unit and integration tests (test_waveanalyzer_api_device_in_loop.py) for theWaveAnalyzersmodule.
wavetools.WaveShapers(Planned): Will contain classes for WaveShaper devices.examples/(Planned): Will contain example scripts forWaveShapers.tests/(Planned): Will contain tests forWaveShapers.
wavetools.WaveMakers(Planned): Will contain classes for WaveMaker devices.examples/(Planned): Will contain example scripts forWaveMakers.tests/(Planned): Will contain tests forWaveMakers.
Example code
WaveAnalyzer
from wavetools import WaveAnalyzer, create_waveanalyzer
wa = create_waveanalyzer("wa000683.local", preset=True)
wa.set_scan(center=193700000, span="full") # optional if preset is used
print(wa.scan_info)
trace = wa.measure()
print(trace.frequency_THz)
print(trace.power_dBm)
Running example GUI
[gui] must selected during pip installation for running example GUI scripts.
WaveAnalyzer GUI: python -m wavetools.WaveAnalyzers.examples.wa_gui
Required Python version
python>=3.8
Dependencies
Mandatory
- numpy
- pydantic
- httpx
GUI examples
- PyQt5
- PyQtGraph
- scipy
Licensing
This project is released under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wavetools-0.0.3.tar.gz.
File metadata
- Download URL: wavetools-0.0.3.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8da7b01b573ef8d71c45b8366948a7de0a57400fc9c22ac4233ea211d23a830c
|
|
| MD5 |
f5dc96a24023841951920674c6847b66
|
|
| BLAKE2b-256 |
ed0ad068f9b3add12cf19d9b06daa9ce41166a4b672065eadeac1e091f7a5724
|
File details
Details for the file wavetools-0.0.3-py3-none-any.whl.
File metadata
- Download URL: wavetools-0.0.3-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9d6f2fffd84dce1beb32e8b582e71664fd8325bec9f485313377495547b3dc4
|
|
| MD5 |
afc354ae469fe835f5839e08573e8082
|
|
| BLAKE2b-256 |
a7c5445119c9bf6e7b5eb9dee8561f919c7f99e070ae0b642f86dfbb155aa06e
|