Version 0.14.0 (2024-05-22)
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
queue
method and aFileInputWidget
, allowing to more quickly get started with the PyMeasure user interface (ManagedWindow
). - Add a
SCPIMixin
base class for instruments instead of definingincludeSCPI=True
- Instrument manufacturer modules are no longer imported in the
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 inpymeasure/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,from pymeasure.instruments import Extreme5000
will need to change tofrom pymeasure.instruments.extreme import Extreme5000
orfrom pymeasure.instruments.extreme.extreme5000 import Extreme5000
. - 17 new instruments
Deprecated features
- Remove
TelnetAdapter
, as its library is deprecated (@BenediktBurger, #1045) - Replaced
directory_input
keyword-argument ofManagedWindowBase
byenable_file_input
(@CasperSchippers, #964) - Make parameter
includeSCPI
obligatory for all instruments, even those which use SCPI (@BenediktBurger, #1007) - Setting
includeSCPI=True
is deprecated, inherit instead theSCPIMixin
class if the device supports SCPI commands. - Replaced
celcius
attribute ofLakeShoreTemperatureChannel
bycelsius
(@afuetterer, #1003) - Replaced
error
property of Keithley instruments bynext_error
. - Replaced
measurement_time
property of Pendulum CNT-91 bygate_time
. - Replaced
sample_rate
keyword-argument ofbuffer_frequency_time_series
of Pendulum CNT-91 bygate_time
. - Replaced MKS937B
unit
to useinstruments/mksinst/mks937b/Unit
instead of strings (@dkriegner, @BenediktBurger #1034)
Instruments mechanics
- Add a SCPI base class
SCPIMixin
as replacement forincludeSCPI=True
(@BenediktBurger, #905, #1007, #1019, #1047) - Add
next_error
property to SCPI instruments (@BenediktBurger, #1024) - Make
query_delay=None
the default forwait_for
(@BenediktBurger, #1077) - Fix
expected_protocol
using empty dictionary as default value (@BenediktBurger, #1087) - Remove auto-importing all instruments in `pymeasure/instruments/init.py`` (@mcdo0486, #919)
- Add
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 timeout (@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
.ch[]
to.channels[]
(@AlecVercruysse, #945) - Update AWG401x driver to use
Channel
(@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
FileInputWidget
to choose if and where the experiment data is stored. (@CasperSchippers, #964) - Add a default
Queue
method forManagedWindowBase
is implemented. (@CasperSchippers, #964) - Fix
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, checkout@v4 (@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: v0.13.1...v0.14.0