Repository navigation
v1.0.1
⚠️ MAJOR RELEASE - Package Renamed
This is a major release with a package rename. The project has been renamed from Siglent-Oscilloscope to SCPI-Instrument-Control to better reflect its expanded capabilities beyond just Siglent oscilloscopes.
Breaking Changes
- PyPI Package Name:
siglent→SCPI-Instrument-Control - Python Import Name:
import siglent→import scpi_control(recommended) - Old import still works with deprecation warning (will be removed in v2.0.0)
Added
Backward Compatibility Layer
- Created
siglent/compatibility shim package - Old
import siglentsyntax still works withDeprecationWarning - Re-exports all
scpi_controlmodules for seamless backward compatibility - Warning message guides users to migrate imports
- Compatibility layer will be removed in v2.0.0
Migration Guide
- Comprehensive migration documentation in README.md
- Step-by-step upgrade instructions
- Comparison table showing what changed and what stayed the same
- Code examples for old vs new import syntax
- Explanation of why the rename was necessary
Changed
Package Structure
- Renamed
siglent/directory toscpi_control/(preserving git history) - Updated all internal imports from
siglent.*toscpi_control.*- 192 import occurrences updated in
scpi_control/modules - All imports updated in
tests/directory - All imports updated in
examples/directory
- 192 import occurrences updated in
- Package now reflects multi-instrument, multi-vendor capabilities
PyPI Metadata (pyproject.toml)
- Package name:
siglent→SCPI-Instrument-Control - Version bump:
0.5.1→1.0.0(major release) - Updated description to emphasize universal SCPI instrument control
- Updated keywords to reflect multi-instrument support
- Updated all URLs to point to new repository name
- Homepage, Repository, Issues, Documentation, Changelog
Documentation
- Updated README.md with new project name and branding
- Added "Package Renamed" notice at top of README
- Updated all badge URLs to reference new repository name
- Updated installation commands to use
SCPI-Instrument-Control - Changed GUI application overview section title
- Updated git clone directory name in examples
- Added comprehensive Migration Guide section with:
- Installation update instructions
- Import statement migration examples
- Backward compatibility explanation
- CLI command compatibility notice
- Comparison table of changes
- Rationale for the rename
Command-Line Tools (No Changes)
siglent-guicommand unchanged for conveniencesiglent-report-generatorcommand unchanged- No changes needed to scripts or automation using these commands
Why the Rename?
This library has evolved significantly beyond its original Siglent oscilloscope focus:
- Multi-Instrument Support: Now supports oscilloscopes, power supplies, and function generators
- Multi-Vendor Support: Works with any SCPI-compatible equipment, not just Siglent
- Universal Protocol: Based on industry-standard SCPI commands (IEEE 488.2)
The new name SCPI-Instrument-Control accurately represents what the library does: control any SCPI-compatible test equipment.
Migration Instructions
For New Users
pip install SCPI-Instrument-Control
pip install "SCPI-Instrument-Control[gui]"
pip install "SCPI-Instrument-Control[all]"from scpi_control import Oscilloscope, PowerSupply, FunctionGeneratorFor Existing Users
Option 1: Update imports (recommended)
pip uninstall siglent
pip install SCPI-Instrument-ControlChange imports:
# Old
from siglent import Oscilloscope
from siglent.gui.app import main
# New
from scpi_control import Oscilloscope
from scpi_control.gui.app import mainOption 2: Use compatibility layer (temporary)
pip install SCPI-Instrument-ControlKeep old imports (will show DeprecationWarning):
from siglent import Oscilloscope # Still works, but deprecatedNote: The compatibility layer will be removed in v2.0.0. Please migrate when convenient.
Technical Details
Git History Preservation
- Used
git mv siglent/ scpi_control/to preserve file history - All commit history for individual files maintained
- No loss of attribution or change tracking
Import Updates
- Used automated find/replace for import statement updates
- 192 occurrences in
scpi_control/directory - All test files updated
- All example files updated
- No manual edits required for import changes
Compatibility Implementation
siglent/__init__.pyre-exports entirescpi_controlmodule- Uses
warnings.warn()withDeprecationWarningcategory - Warning includes migration instructions and timeline
stacklevel=2ensures warning points to user code, not library
Dependencies
No dependency changes. All existing dependencies remain the same.
Deprecation Timeline
- v1.0.0 (2026-01-06): Old
import siglentworks with deprecation warning - v2.0.0 (TBD): Compatibility layer removed,
import siglentwill fail
Users have until v2.0.0 to migrate their imports.