Pymeasure

Latest version: v0.15.0

Safety actively analyzes 700638 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

0.15.0

===========================
Main items of this new release:

- pyproject.toml replaces setup.cfg
- 12 new instruments

Deprecated features
-------------------
- The FSL class imported from :code:`pymeasure/instruments/rohdeschwarz/fsl.py` is deprecated, the current version can be found in :code:`pymeasure/instruments/rohdeschwarz/fsseries.py`.

Instruments
-----------
- Add Agilent E5062A (AlecVercruysse, 1146)
- Add Hewlett Packard 8753E VNA (Sionwage, 1004)
- Add Keithley DAQ6510 (Aphelion82, 1128)
- Add Keithley2281S (PfannenHans, 1054)
- Add LD400P electronic load (RobertoRoos, 1168)
- Add Philips PM6669 Universal Frequency Counter (dirkjankrijnders, 570)
- Add Rohde&Schwarz FSSeries class for instruments such as FSL (previously stand-alone class), FSW and others (jnnskls, 1156)
Previously, the instrument class FSL could be imported from :code:`pymeasure/instruments/rohdeschwarz/fsl.py`, which can now be imported from :code:`pymeasure/instruments/rohdeschwarz/fsseries.py` alongside the base class FSSeries and FSW.
- Add Rigol dg822 waveform generator (fthouin, 1159)
- Add Siglent SDS1072CML oscilloscope (fthouin, 1080, 1195)
- Add more Thyracont vacuum transducer device types (dkriegner, 1143)

- Fix Agilent E5062A: docs + rename `active_traces` to `visible_traces` (AlecVercruysse, 1174)
- Fix AnritsuMS2090A: Confirm SCPIMixin (icchalmers, 1191)
- Fix race condition in test suite due to HP8116A tests (kpet, 1145)
- Fix description of :code:`Keithley2000.measure_resistance` method (J3NZ0L, 1193)
- Fix test for Keithley6510 (BenediktBurger, 1135)
- Fix Kepco BOP power supplies documentation (JAW90, 1199)
- Update AFG3152CChannel to docs (ssimpson-ens, 1176)
- Update Keysight E3631A with added :code:`output_enabled` property to individual channels (inonRAAAM, 1209)
- Update Teledyne with VBS methods (RobertoRoos, 1166)

Automation
----------
- Explicitly set encoding to utf8 when writing and reading data to file, allowing the use of special characters.
Previously the encoding was not explicitly set, this could potentially disrupt loading old data-files; if this is required, the encoading can be changed by changing (e.g., monkey-patching) the :code:`pymeasure.experiment.Results.ENCODING` property. (CasperSchippers, 1123)
- Add :code:`has_next` method to Procedure class (Did-Mas, 1185)
- Change logger from root to module-specific logger. (mmerlo, 1165)

Documentation
-------------
- Fix a couple of typos in procedure.rst (kpet, 1141)
- Update contribute.rst also for GitHub Desktop (bernhardlang, OrionSmedley, 983, 1171)
- Fix documentation errors (msmttchr, kpet, 1133, 1148)
- Update InstrumentKit reference (emmanuel-ferdman, 1187)
- Change copyright year to 2025 (BenediktBurger, 1210)

Miscellaneous
-------------
- Prepare for v0.14.0 (BenediktBurger, 1104)
- add "Reaveal in File Explorer" to browser item context menu (Did-Mas, 1188)
- Update numpy 2 test (CasperSchippers, 1126)
- Added an install group for building documentation (RobertoRoos, 1180)
- Removed setup.cfg, replaced by pyproject.toml (RobertoRoos, 1182)

New Contributors
----------------
Sionwage, bernhardlang, Aphelion82, kpet, mmerlo, OrionSmedley, ssimpson-ens, Did-Mas, emmanuel-ferdman, icchalmers, fthouin, PfannenHans, dirkjankrijnders, J3NZ0L, inonRAAAM,

**Full Changelog**: https://github.com/pymeasure/pymeasure/compare/v0.14.0...v0.15.0

0.14.0

===========================
Main items of this new release:

- Add support for numpy 2.0
- Add support for python 3.12
- Improve academic quotability with an up to date Zenodo DOI and with citation information.
- Add default :code:`queue` method and a :code:`FileInputWidget`, allowing to more quickly get started with the PyMeasure user interface (:code:`ManagedWindow`).
- Add a :code:`SCPIMixin` base class for instruments instead of defining :code:`includeSCPI=True`
- Instrument manufacturer modules are no longer imported in the :code:`pymeasure/instruments/__init__.py` file.
Previously, when importing a single instrument into a procedure, all instruments would be imported into memory through the manufacturer modules in :code:`pymeasure/instruments/__init__.py`.
Removing manufacturer modules from that file lowers the memory footprint of pymeasure when importing an instrument.
Instrument classes will need to be imported from the manufacturer module or explicitly from the instrument driver file.
For example, :code:`from pymeasure.instruments import Extreme5000` will need to change to :code:`from pymeasure.instruments.extreme import Extreme5000` or :code:`from pymeasure.instruments.extreme.extreme5000 import Extreme5000`.
- 17 new instruments

Deprecated features
-------------------
- Remove :code:`TelnetAdapter`, as its library is deprecated (BenediktBurger, 1045)
- Replaced :code:`directory_input` keyword-argument of :code:`ManagedWindowBase` by :code:`enable_file_input` (CasperSchippers, 964)
- Make parameter :code:`includeSCPI` obligatory for all instruments, even those which use SCPI (BenediktBurger, 1007)
- Setting `includeSCPI=True` is deprecated, inherit instead the :code:`SCPIMixin` class if the device supports SCPI commands.
- Replaced :code:`celcius` attribute of :code:`LakeShoreTemperatureChannel` by :code:`celsius` (afuetterer, 1003)
- Replaced :code:`error` property of Keithley instruments by :code:`next_error`.
- Replaced :code:`measurement_time` property of Pendulum CNT-91 by :code:`gate_time`.
- Replaced :code:`sample_rate` keyword-argument of :code:`buffer_frequency_time_series` of Pendulum CNT-91 by :code:`gate_time`.
- Replaced MKS937B :code:`unit` to use :code:`instruments/mksinst/mks937b/Unit` instead of strings (dkriegner, BenediktBurger 1034)

Instruments mechanics
---------------------
- Add a SCPI base class :code:`SCPIMixin` as replacement for :code:`includeSCPI=True` (BenediktBurger, 905, 1007, 1019, 1047)
- Add :code:`next_error` property to SCPI instruments (BenediktBurger, 1024)
- Make :code:`query_delay=None` the default for :code:`wait_for` (BenediktBurger, 1077)
- Fix :code:`expected_protocol` using empty dictionary as default value (BenediktBurger, 1087)
- Remove auto-importing all instruments in :code:`pymeasure/instruments/__init__.py`` (mcdo0486, 919)
- Add :code:`find_serial_port` to find a serial port by providing USB information (BenediktBurger, 982)

Instruments
-----------
- Add Agilent4294A (driftregion, 998)
- Add Agilent 4284A by (ConnorGCarr 1079)
- Add AimTTI PL series power supplies (guuskuiper, 942)
- Add HP11713A Switch & Attenuator Driver (neuschs, 970)
- Add HP437B power meter (neuschs, 979)
- Add Inficon SQM160 SQM-160 multi-film rate/thickness monitor (dkriegner, 991)
- Add Keithley 2182 (ConnorGCarr, 1043)
- Add KeithleyDMM6500 (fwutw, 963)
- Add Kepco BOP 36-12 Bipolar Power Supply (JAW90, 1086)
- Add KeysightE3631A (OptimisticBeliever, 990)
- Add Kuhne Electronic KU SG 2.45 250A microwave generator (jurajjasik, BenediktBurger, 1108)
- Add MKS 974B vacuum pressure transducer (dkriegner, 1034)
- Add Proterial rod4 (ConnorGCarr, 1044)
- Add Racal-Dana 1992 universal counter (tomverbeure, 798, 1012)
- Add redpitaya board (seb5g, 1010, 1035)
- Add Teledyne HDO6xxx (RobertoRoos, 868)
- Add Yokogawa AQ6370D Optical Spectral Analyzer (jnnskls, 1059)
- Fix property docstrings of several instruments (BenediktBurger, 1018)
- Fix checksums of hcp TC038D tests (BenediktBurger, 987)
- Fix Hp8116a (BenediktBurger, 1088)
- Fix Hp856x to append amplitude units (neuschs, 977)
- Fix Keysight E36312A confirmed SCPI functionality (Konradrundfunk, 1107)
- Fix Stanford Research SR830 output conversion (dkriegner, 1069)
- Fix SR830 missing get_buffer method (seb5g, 999)
- Fix set command of SR860 aux output (wehlgrundspitze, 1048)
- Fix Temptronic test to use ns perf counter (BenediktBurger, 1109, 1110)
- Fix Toptica Ibeamsmart referencing removed adapter function (BenediktBurger, 1065)
- Fix typos in docstrings for Keithley instruments (V0XNIHILI, 1071)
- Link Keysight, Agilent, and HP documentation pages. (BenediktBurger, 1021)
- Update Agilent33500 Series from :code:`.ch[]` to :code:`.channels[]` (AlecVercruysse, 945)
- Update AWG401x driver to use 'channels' (mcdo0486, 944)
- Update HP33120A with new burst modulation parameters (mzen228, 1056)
- Update HP34401A with new remote control command. (Rybok, 992)
- Update Keithleys' next_error (msmttchr, 1030)
- Update pendulum CNT-91 (bleykauf, 988)

GUI
---
- Add a :code:`FileInputWidget` to choose if and where the experiment data is stored. (CasperSchippers, 964)
- Add a default :code:`Queue` method for :code:`ManagedWindowBase` is implemented. (CasperSchippers, 964)
- Fix :code:`ScientificInput` to be locale compatible (pyZerrenner, 1074)
- Fix exception if loading result file with an empty parameter (poje42, 1016)

Miscellaneous
-------------
- Add support for python 3.12 (BenediktBurger, 1051)
- Add support for numpy 2.0 (CasperSchippers, 1026)
- Add codecov to CI and to readme (BenediktBurger, 1037, 1052, 1099)
- Add citation file for PyMeasure repository (mcdo0486, 1092)
- Add release CI (BenediktBurger, 1039)
- Update readme with permanent Zenodo DOI (BenediktBurger, 1095)
- Bump CI dependencies to: pyvisa 1.13.0, checkoutv4 (mcdo0486, 1097)
- Fix/pandas futurewarning (CasperSchippers, 1062)
- Change copyright year. (BenediktBurger, 1032)
- Fix typos (afuetterer, 1003)

New Contributors
----------------
guuskuiper, OptimisticBeliever, fwutw, afuetterer, poje42, Rybok, AlecVercruysse, ConnorGCarr, mzen228, jnnskls, V0XNIHILI, pyZerrenner, JAW90, driftregion, jurajjasik, Konradrundfunk

**Full Changelog**: https://github.com/pymeasure/pymeasure/compare/v0.13.1...v0.14.0

0.13.1

===========================
New release to fix ineffective python version restriction in the project metadata (only affected Python<=3.7 environments installing via pip).

0.13.0

===========================
Main items of this new release:

- Dropped support for Python 3.7, added support for Python 3.11.
- Adds a test generator, which observes the communication with an actual device and writes protocol tests accordingly.
- 2 new instrument drivers have been added.

Deprecated features
-------------------
- Attocube ANC300: The :code:`stepu` and :code:`stepd` properties are deprecated, use the new :code:`move_raw` method instead. (dkriegner, 938)

Instruments
-----------
- Adds a test generator (bmoneke, 882)
- Adds Thyracont Smartline v2 vacuum sensor transmitter (bmoneke, 940)
- Adds Thyracont Smartline v1 vacuum gauge (dkriegner, 937)
- AddsTeledyne base classes with most of `LeCroyT3DSO1204` functionality (RobertoRoos, 951)
- Fixes instrument documentation (mcdo0486, 941, 903, omahs, 960)
- Fixes Toptica Ibeamsmart's __init__ (waveman68, 959)
- Fixes VISAAdapter flush_read_buffer() (ileu, 968)
- Updates Keithley2306 and AFG3152C to Channels (bilderbuchi, 953)

GUI
---
- Adds console mode (msmttchr, 500)
- Fixes Dock widget (msmttchr, 961)

Miscellaneous
-------------
- Change CI from conda to mamba (bmoneke, 947)
- Add support for python 3.11 (CasperSchippers, 896)

New Contributors
----------------
waveman68, omahs, ileu

**Full Changelog**: https://github.com/pymeasure/pymeasure/compare/v0.12.0...v0.13.0

0.12.0

===========================
Main items of this new release:

- A :code:`Channel` base class has been added for easier implementation of instruments with channels.
- 19 new instrument drivers have been added.
- Added tests for some commonalities across all instruments.
- We continue to clean up our API in preparation for a future version 1.0. Deprecations and subsequent removals are listed below.

Deprecated features
-------------------
- HP 34401A: :code:`voltage_ac`, :code:`current_dc`, :code:`current_ac`, :code:`resistance`, :code:`resistance_4w` properties, use :code:`function_` and :code:`reading` properties instead.
- Toptica IBeamSmart: :code:`channel1_enabled`, use :code:`ch_1.enabled` property instead (equivalent for channel2). Also :code:`laser_enabled` is deprecated in favor of :code:`emission` (bmoneke, 819).
- TelnetAdapter: use :code:`VISAAdapter` instead. VISA supports TCPIP connections. Use the resource_name :code:`TCPIP[board]::<hostname>::<port>::SOCKET` to connect to a server (Max-Herbold, 835).
- Attocube ANC300: :code:`host` argument, pass a resource string or adapter as :code:`Adapter` passed to :code:`Instrument`. Now communicates through the :code:`VISAAdapter` rather than deprecated :code:`TelnetAdapter`. The initializer now accepts :code:`name` as its second keyword argument so all previous initialization positional arguments (`axisnames`, `passwd`, `query_delay`) should be switched to keyword arguments.
- The property creators :code:`control`, :code:`measurement`, and :code:`setting` do not accept arbitrary keyword arguments anymore. Use the :code:`v_kwargs` parameter for arguments you want to pass on to :code:`values` method, instead.
- The property creators :code:`control`, :code:`measurement`, and :code:`setting` do not accept `command_process` anymore. Use a dynamic property or a `Channel` instead, as appropriate (bmoneke, 878).
- See also the next section.

New adapter and instrument mechanics
------------------------------------
- All instrument constructors are required to accept a :code:`name` argument.
- Changed: :code:`read_bytes` of all Adapters by default does not stop reading on a termination character, unless the new argument :code:`break_on_termchar` is set to `True`.
- Channel class added. :code:`Instrument.channels` and :code:`Instrument.ch_X` (:code:`X` is any channel name) are reserved attributes for channel mechanics.
- The parameters :code:`check_get_errors` and :code:`check_set_errors` enable calling methods of the same name. This enables more systematically dealing with instruments that acknowledge every "set" command.

- Adds Channel feature to instruments (bmoneke, mcdo0486, 718, 761, 852, 931)
- Adds :code:`maxsplit` parameter to :code:`values` method (bmoneke, 793)
- Adds (deprecated) global preprocess reply for backward compatibility (bmoneke, 876)
- Adds fallback version for discarding the read buffer to VISAAdapter (dkriegner, 836)
- Adds :code:`flush_read_buffer` to SerialAdapter (RobertoRoos, 865)
- Adds :code:`gpib_read_timeout` to PrologixAdapter (neuschs, 927)
- Adds command line option to pass resource address for instrument tests (bleykauf, 789)
- Adds "find all instruments" and channels for testing (bmoneke, 909, mcdo0486, 911, 912)
- Adds test that an instrument hands kwargs to the adapter (bmoneke, 814)
- Adds property docstring check (bmoneke, 895)
- Improves property factories' docstrings (bmoneke, 843)
- Improves property factories: do not allow undefined kwargs (bmoneke, 856)
- Improves property factories: check_set/get_errors argument to call methods of the same name (bmoneke, 883)
- Improves :code:`read_bytes` of Adapter (bmoneke, 839)
- Improves the ProtocolAdapter with a mock connection (bmoneke, 782), and enable it to have empty messages in the protocol (bmoneke, 818)
- Improves Prologix adapter documentation (bmoneke, 813) and configurable settings (bmoneke, 845)
- Improves behavior of :code:`read_bytes(-1)` for :code:`SerialAdapter` (RobertoRoos, 866)
- Improves all instruments with name kwarg (bmoneke, 877)
- Improves VisaAdapter: close manager only when using pyvisa-sim (dkriegner, 900)
- Harmonises instrument name definition pattern, consistently name the instrument connection argument "adapter" (bmoneke, 659)
- Fixes ProtocolAdapter has list in signature (bmoneke, 901)
- Fixes VISAAdapter's :code:`read_bytes` (bmoneke, 867)
- Fixes query_delay usage in VISAAdapter (bmoneke, 765)
- Fixes VisaAdapter: close resource manager only when using pyvisa-sim (dkriegner, 900)

Instruments
-----------
- New Advantest R624X DC Voltage/Current Sources/Monitors (wichers, 802)
- New AJA International DC sputtering power supply (dkriegner, 778)
- New Anritus MS2090A (aruznieto, 787)
- New Anritsu MS4644B (CasperSchippers, 827)
- New DSP 7225 and new DSPBase instrument (mcdo0486, 902)
- New HP 8560A / 8561B Spectrum Analyzer (neuschs, 888)
- New IPG Photonics YAR Amplifier series (bmoneke, 851)
- New Keysight E36312A power supply (scandey, 785)
- New Keithley 2200 power supply (ashokbruno, 806)
- New Lake Shore 211 Temperature Monitor (mcdo0486, 889)
- New Lake Shore 224 and improves Lakeshore instruments (samcondon4, 870)
- New MKS Instruments 937B vacuum gauge controller (dkriegner, bilderbuchi, 637, 772, 936)
- New Novanta FPU60 laser power supply unit (bmoneke, 885)
- New TDK Lambda Genesys 80-65 DC and 40-38 DC power supplies (mcdo0486, 906)
- New Teledyne T3AFG waveform generator instrument (scandey, 791)
- New Teledyne (LeCroy) T3DSO1204 Oscilloscope (LastStartDust, 697, bilderbuchi, 770)
- New T&C Power Conversion RF power supply (dkriegner, 800)
- New Velleman K8090 relay device (RobertoRoos, 859)
- Improves Agilent 33500 with the new channel feature (JCarl-OS, 763, 773)
- Improves HP 3478A with calibration data related functions (tomverbeure, 777)
- Improves HP 34401A (CodingMarco, 810)
- Improves the Oxford instruments with the new channel feature (bmoneke, 844)
- Improves Siglent SPDxxxxX with the new channel feature (AidenDawn 758)
- Improves Teledyne T3DSO1204 device tests (LastStarDust, 841)
- Fixes Ametek DSP 7270 lockin amplifier issues (seb5g, 897)
- Fixes DSP 7265 erroneously using preprocess_reply (mcdo0486, 873)
- Fixes print statement in DSPBase.sensitivity (mcdo0486, 915)
- Fixes Fluke bath commands (bmoneke, 874)
- Fixes a frequency limitation in HP 8657B (LongnoseRob, 769)
- Fixes Keithley 2600 channel calling parent's shutdown (mcdo0486, 795)

Automation
----------
- Adds tolerance for opening result files with missing parameters (msmttchr, 780)
- Validate DATA_COLUMNS entries earlier, avoid exceptions in a running procedure (mcdo0486, 796, 934)

GUI
---
- Adds docking windows (mcdo0486, 722, 762)
- Adds save plot settings in addition to dock layout (mcdo0486, 850)
- Adds log widget colouring and format option (CasperSchippers, 890)
- Adds table widget (msmttchr, 771)
- New sequencer architecture: decouples it from the graphical tree, adapts it for further expansions (msmttchr, 518)
- Moves coordinates label to the pyqtgraph PlotItem (CasperSchippers, 822)
- Fixes crashing ImageWidget at new measurement (CasperSchippers, 790)
- Fixes checkboxes not working for groups in inputs-widget (CasperSchippers, 794)

Miscellaneous
-------------
- Adds a collection of solutions for instrument implementation challenges (bmoneke, 853, 861)
- Updates Tutorials/Making_a_measurement/ example_codes (sansanda, 749)

New Contributors
----------------
JCarl-OS, aruznieto, scandey, tomverbeure, wichers, Max-Herbold, RobertoRoos

**Full Changelog**: https://github.com/pymeasure/pymeasure/compare/v0.11.1...v0.12.0

0.11.1

===========================
Adapter and instrument mechanics
--------------------------------
- Fix broken `PrologixAdapter.gpib`. Due to a bug in `VISAAdapter`, you could not get a second adapter with that connection (765).

**Full Changelog**: https://github.com/pymeasure/pymeasure/compare/v0.11.0...v0.11.1

Dependency updates
------------------
- Required version of `PyQtGraph <https://www.pyqtgraph.org/>`__ is increased from :code:`pyqtgraph >= 0.9.10` to :code:`pyqtgraph >= 0.12` to support new PyMeasure display widgets.

GUI
---
- Added `ManagedDockWindow <https://pymeasure.readthedocs.io/en/latest/tutorial/graphical.html#using-the-manageddockwindow>`__ to allow multiple dockable plots (mcdo0486, CasperSchippers, 722)
- Move coordinates label to the pyqtgraph PlotItem (CasperSchippers, 822)
- New sequencer architecture (msmttchr, CasperSchippers, mcdo0486, 518)
- Added "Save Dock Layout" functionality to DockWidget context menu. (mcdo0486, 762)

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.