Skip to main content

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 the WaveAnalyzers.py file, which includes the base WaveAnalyzer class, 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 the WaveAnalyzers module.
    • tests/: Contains unit and integration tests (test_waveanalyzer_api_device_in_loop.py) for the WaveAnalyzers module.
  • wavetools.WaveShapers (Planned): Will contain classes for WaveShaper devices.
    • examples/ (Planned): Will contain example scripts for WaveShapers.
    • tests/ (Planned): Will contain tests for WaveShapers.
  • wavetools.WaveMakers (Planned): Will contain classes for WaveMaker devices.
    • examples/ (Planned): Will contain example scripts for WaveMakers.
    • tests/ (Planned): Will contain tests for WaveMakers.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wavetools-0.0.3.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wavetools-0.0.3-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

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

Hashes for wavetools-0.0.3.tar.gz
Algorithm Hash digest
SHA256 8da7b01b573ef8d71c45b8366948a7de0a57400fc9c22ac4233ea211d23a830c
MD5 f5dc96a24023841951920674c6847b66
BLAKE2b-256 ed0ad068f9b3add12cf19d9b06daa9ce41166a4b672065eadeac1e091f7a5724

See more details on using hashes here.

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

Hashes for wavetools-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e9d6f2fffd84dce1beb32e8b582e71664fd8325bec9f485313377495547b3dc4
MD5 afc354ae469fe835f5839e08573e8082
BLAKE2b-256 a7c5445119c9bf6e7b5eb9dee8561f919c7f99e070ae0b642f86dfbb155aa06e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page