qkit 0.5.3__tar.gz → 0.5.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qkit-0.5.3 → qkit-0.5.4}/PKG-INFO +1 -1
- qkit-0.5.4/src/qkit/_version.py +1 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/numerical_derivative.py +18 -6
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/AbstractIVDevice.py +2 -1
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/AbstractVNA.py +1 -1
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/IVVI_BiasDAC.py +2 -2
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/transport_measurement.py +44 -21
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/unified_measurements.py +29 -21
- qkit-0.5.3/src/qkit/_version.py +0 -1
- {qkit-0.5.3 → qkit-0.5.4}/.git +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/.gitattributes +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/.github/workflows/release.yml +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/.github/workflows/test.yml +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/.travis.yml +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/AUTHORS +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/CITATION.cff +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/LICENSE +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/README.md +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/devices.toml.example +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/Makefile +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/make.bat +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/sample_data/1Q-NIST.json +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/sample_data/P8PPH2_anticrossing_sample_data.h5 +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/sample_data/QZQ3H8.sample +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/conf.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/index.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/installation.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/modules.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.analysis.circle_fit.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.analysis.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.config.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.lib.com.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.lib.devices.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.lib.file_service.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.lib.network.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.lib.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.s_init.bkup.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.core.s_init.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.gui.notebook.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.gui.plot.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.gui.qviewkit.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.gui.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.instruments.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.logs.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.measure.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.measure.spectroscopy.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.measure.timedomain.awg.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.measure.timedomain.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.measure.transport.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.services.qplexkit.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.services.qsurveilkit.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.services.raspi_misc.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.services.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/doc/source/qkit.storage.rst +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/images/Qkit_Logo.png +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/images/Qkit_Logo.svg +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/images/Qkit_QRcode.png +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/images/Qkit_QRcode.svg +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/pyproject.toml +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/CurveXtractor.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/IV_curve.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/IV_curve2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/IV_curve3.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/Manual point picker.ipynb_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/avoided_crossing_fit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/another_circle_fit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_2019/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_2019/circuit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_classic/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_classic/calibration.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_classic/circlefit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_classic/circuit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/circle_fit/circle_fit_classic/utilities.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/iq_cloud_analysis.ipynb_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/iq_cloud_analysis.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/manual_point_picker.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/pointtracker.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/qdata.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/qfit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/qps_rings.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/resonator.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/sonnet_parser.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/spectroscopy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/timedomain.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/analysis/uncertainties_utilities.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/README.md +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/config_holder.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/environment.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/local.py_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/config/services.py_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/README +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/VERSION +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/flow.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/instrument_base.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/instrument_basev2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/instrument_tools.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/com/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/com/info_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/com/info_service.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/com/ri_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/com/ri_service.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/com/signals.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/file_service/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/file_service/breadcrumbs.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/file_service/file_info_database.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/file_service/file_info_database_lib.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/list_dict_DB.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/misc.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/network/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/network/tcpclient.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/lib/temp.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S10_logging.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S14_setup_directories.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S16_available_modules.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S20_check_for_updates.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S25_info_service.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S30_qkit_start.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S65_load_RI_service.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S70_load_visa.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S80_load_file_service.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S85_init_measurement.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S98_started.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/S99_init_user.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/_30_network_server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/_80_create_instruments.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/s_init/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/core/startup.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ADwinProII_SMU.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/AbstractMicrowaveSource.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/AbstractThermometer.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Agilent_DSO.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Agilent_E8257D.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Agilent_PNAX.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Agilent_TwissTorr74.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Agilent_VNA_E5071C.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/AnaPico_APUASYN20.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Anritsu_MG37022.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Anritsu_MS2830A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Anritsu_VNA.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Anritsu_VNA_MS4642B.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/BKPrecision_9242.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Bluefors_GHS.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Caen_FAST_PS.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/DC_DAC_LTC2666.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/DummyVNA.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/EA_PS9360.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ERASynth.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/EdwardsActiveDigitalController.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/EthernetNode.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/EthernetServer.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/EthernetServerWin.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/FTDI_DAQ.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Faulhaber_3564K024B_C.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/GHzDAC.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/HP_34401A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/HP_81110A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/IQ_Mixer.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/IVD_dummy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Inficon.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keithley.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keithley_2000.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keithley_2450.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keithley_2636A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_35670A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_B2900.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_E8267D.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_N5173B.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_VNA_E5071C.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_VNA_E5080B.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_VNA_E5080B_spectrum.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Keysight_VNA_P9375A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Lmx2595.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/MKS_647C.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/MicroMag3.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ModernDriverTest.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/NI_DAQ.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/NI_DAQ_IV.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/OxfordInstruments_Kelvinox_IGH.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Oxford_ITC503.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Oxford_Triton.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RFPCB.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RFPCBJ.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RFPCB_V2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RS_FSUP.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RS_SGMA.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RS_VNA_ZNAXX.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/RT_MW_Switch.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/SR_830.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/SerialPortCommunication.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Spectrum_M2i2030.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Spectrum_M3i2132.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Spectrum_M4i2211.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/StepAttenuator.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/StepMotor.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Tabor_WX1284C.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Tektronix_AWG5014.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Tektronix_AWG520.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Tektronix_AWG7062.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Tektronix_PWS4205.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Teslameter_FM302.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Tunnel_DAC.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/VCAs_TD.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/VNA_dummy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Virtual_Coil.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Virtual_Current_Source.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Virtual_VCA.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Readme.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_288_ChannelA.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_288_ChannelB.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_289_ChannelA.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_289_ChannelB.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelA.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelA_calibration_with_freq_and_pow +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelA_calibration_with_freq_and_pow.npy +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelA_calibration_with_freq_and_pow_calibration_matrix_dBm.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelA_calibration_with_freq_and_pow_frequency_Hz.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelA_calibration_with_freq_and_pow_power_intrinsic_units.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelB.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelB_calibration_with_freq_and_pow +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelB_calibration_with_freq_and_pow.npy +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelB_calibration_with_freq_and_pow_calibration_matrix_dBm.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelB_calibration_with_freq_and_pow_frequency_Hz.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/Windfreak_290_ChannelB_calibration_with_freq_and_pow_power_intrinsic_units.txt +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/convert_files_to_python_3.ipynb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreak_calibration_files/test_open_file_python3.ipynb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreaktech916.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreaktech_SynthHD.cal +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Windfreaktech_SynthHD.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Yokogawa.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Yokogawa_GS200.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Yokogawa_GS210.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/Yokogawa_GS820.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInstSHFQC.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Abstract.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Abstractv2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_PQSC.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_SHFSG.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_SHFSGv2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_UHFQA.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_UHFQAv2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Virtual_VNA.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Virtual_VNAv2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Waveforms/CPMG.json +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Waveforms/CPMG.seq +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Waveforms/rabi.json +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Waveforms/rabi.seq +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Waveforms/ramsey.json +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ZHInst_Waveforms/ramsey.seq +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M3i2132/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M3i2132/errors.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M3i2132/regs.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M4i2211/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M4i2211/errors.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M4i2211/h2py.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/_Spectrum_M4i2211/regs.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/agilent_33210A.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/dll_support_nidaq.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/manual_settings.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/mfc_dummy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/nidaq_syncIV.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/ohmmeter_dummy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/qdevil_qdacII.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/qplexkit_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/quartz_dummy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/switch_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/te_opto_dac.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/tip2_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/tip_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/two_port_switch.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_MultiplexingReadout.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_VNA_quantum_machines.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_magnet.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_measure_spec.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_pwsMagnet.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_step_attenuator.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_temperature_UFO.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_tunnel_electronic.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/virtual_yokomagnet.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/drivers/visa_prologix.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/notebook/Progress_Bar.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/notebook/Stopwatch.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/notebook/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/notebook/quickplot.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/notebook/wf_plot.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/plot/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/plot/plot.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/plot/url_launcher.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/DatasetsWindow.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/PlotWindow.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/PlotWindow_lib.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/info_subsys.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/main.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/main_view.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/pg_time_axis.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/plot_view.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/gui/qviewkit/qviewkit.bat +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/install/install.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/install/jupyter_lab_config.py-tpl +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/install/linux/qkit-jupyter-lab.desktop +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/install/linux/qkit-qviewkit-url.desktop +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/install/linux/qkit-qviewkit.desktop +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/install/qkit_local_config.py-tpl +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/json_handler.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/laboneq_measurement.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/measurement_base.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/measurement_class.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/samples_class.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/spectroscopy/README.md +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/spectroscopy/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/spectroscopy/signal_spectroscopy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/spectroscopy/spectroscopy.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/spectroscopy/spectroscopy_measurement.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/spectroscopy/spectroscopy_unified.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/thermometry_measurement.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/002_TD1_f01_rabi_t1_ramsey.ipynb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/VirtualAWG.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/awg/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/awg/generate_waveform.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/awg/load_awg.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/awg/load_tawg.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/awg/tomography.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/gate_func.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/initialize.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/measure_ZI_td.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/measure_td.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/pulse_sequence.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/basic_qubit_experiments.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/basic_qubit_experiments_V2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/pulses.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/qm_qkit_wrapper.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/qm_qubit_config.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/qm_qubit_config_V2.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/quantum_jump_monitoring.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/qubit_high_temp.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/script.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/quantum_machine/script_pyqt.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/timedomain/sequence_library.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/transport/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/transport/transport.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/measure/write_additional_files.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qdepokit/Deposition_template.ipynb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qdepokit/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qdepokit/sdi.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/ccr.json_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/install_systemd_service.sh +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/pcf8575.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/qplexkit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qplexkit/test_PCF8575.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/README.md +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/client_main.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/data_class.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/plasma1_gui.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/plasma1_gui.ui +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/server_main.py_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/settings.cfg_template +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/srv_thread.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/qsurveilkit/worker.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/OxfordInstruments_Kelvinox_IGH_serial.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/RT_switch/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/RT_switch/switchbox_server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/RT_switch/two_port_switch_manual_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/dc_dac/DAC_LTC2666_communication.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/dc_dac/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/dc_dac/server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/edwards/EdwardsActiveDigitalController.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/edwards/EdwardsBridgeReadout.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/edwards/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/edwards/edw_client.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/edwards/edw_server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/erasynth_server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/nitrogen_controller.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/nitrogen_server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/refill_manual.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/refilling_switch_off.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/refilling_switch_on.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/nitrogen/sendMail.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/step_attenuator_server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/step_motor.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/tip/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/raspi_misc/tip/fridge_monitoring.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/switchbox/lib_oled96.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/switchbox/server.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/services/switchbox/switch.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/README.md +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/hdf_DateTimeGenerator.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/hdf_constants.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/hdf_dataset.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/hdf_file.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/hdf_lib.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/hdf_view.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/storage/store.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/templates/Analysis/Probestation.ipynb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/src/qkit/templates/Measurements/Probestation.ipynb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/__init__.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/analysis/test_new_circlefit.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/breadcrumb/.1337deadbeef.breadcrumb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/breadcrumb/.7c57581a89db.breadcrumb.lock +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/breadcrumb/.deadbeef1337.breadcrumb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/breadcrumb/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/breadcrumb/STUVWX_dummy.h5 +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/breadcrumb/test_breadcrumbs.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/core/.7c57581a89db.breadcrumb +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/core/.7c57581a89db.breadcrumb.lock +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/core/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/core/STUVWX_dummy.h5 +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/core/subdir/YZ0123_dummy.h5 +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/core/test_file_info_database.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/measure/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/measure/test.h5 +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/measure/test_unified_syntax.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/storage/.gitignore +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/storage/large_file.h5 +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/storage/test_hdf5.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/test_qkit_basics.py +0 -0
- {qkit-0.5.3 → qkit-0.5.4}/tests/url/test_url_handler.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.4"
|
|
@@ -53,12 +53,14 @@ class SavgolNumericalDerivative(AnalysisTypeAdapter):
|
|
|
53
53
|
MeasurementTypeAdapter.DataDescriptor(
|
|
54
54
|
name=f"d{x.name}_d{y.name}",
|
|
55
55
|
unit=f"{x.unit}_{y.unit}",
|
|
56
|
-
axes=x.axes
|
|
56
|
+
axes=x.axes,
|
|
57
|
+
category="analysis"
|
|
57
58
|
),
|
|
58
59
|
MeasurementTypeAdapter.DataDescriptor(
|
|
59
60
|
name=f"d{y.name}_d{x.name}",
|
|
60
61
|
unit=f"{y.unit}_{x.unit}",
|
|
61
|
-
axes=x.axes
|
|
62
|
+
axes=x.axes,
|
|
63
|
+
category="analysis"
|
|
62
64
|
)
|
|
63
65
|
]
|
|
64
66
|
return tuple(structure)
|
|
@@ -67,16 +69,26 @@ class SavgolNumericalDerivative(AnalysisTypeAdapter):
|
|
|
67
69
|
def default_views(self, parent_schema: tuple['MeasurementTypeAdapter.DataDescriptor', ...]) -> dict[str, DataView]:
|
|
68
70
|
schema = self.expected_structure(parent_schema)
|
|
69
71
|
variable_names = (schema[0].name.split('_')[0], schema[1].name.split('_')[0])
|
|
70
|
-
return {
|
|
71
|
-
f'
|
|
72
|
+
return { # dx/dy
|
|
73
|
+
f'{variable_names[0]}_{variable_names[1]}': DataView(
|
|
74
|
+
view_params={
|
|
75
|
+
"labels": (schema[0].axes[0].name, f'{variable_names[0]}_{variable_names[1]}'),
|
|
76
|
+
'plot_style': 1,
|
|
77
|
+
'markersize': 5
|
|
78
|
+
},
|
|
72
79
|
view_sets=[
|
|
73
80
|
DataViewSet(
|
|
74
81
|
x_path=DataReference(entry.axes[0].name,),
|
|
75
82
|
y_path=DataReference(entry.name, category='analysis')
|
|
76
83
|
) for entry in schema[0::2]
|
|
77
84
|
]
|
|
78
|
-
),
|
|
79
|
-
f'
|
|
85
|
+
), # dy/dx
|
|
86
|
+
f'{variable_names[1]}_{variable_names[0]}': DataView(
|
|
87
|
+
view_params={
|
|
88
|
+
"labels": (schema[1].axes[0].name, f'{variable_names[1]}_{variable_names[0]}'),
|
|
89
|
+
'plot_style': 1,
|
|
90
|
+
'markersize': 5
|
|
91
|
+
},
|
|
80
92
|
view_sets=[
|
|
81
93
|
DataViewSet(
|
|
82
94
|
x_path=DataReference(entry.axes[0].name),
|
|
@@ -7,9 +7,10 @@ import numpy as np
|
|
|
7
7
|
class AbstractIVDevice(ABC):
|
|
8
8
|
|
|
9
9
|
@abstractmethod
|
|
10
|
-
def take_IV(self, sweep:
|
|
10
|
+
def take_IV(self, sweep: tuple[float, float, float, float]) -> tuple[np.ndarray, np.ndarray]:
|
|
11
11
|
"""
|
|
12
12
|
Perform an IV sweep. Returns (bias, sense).
|
|
13
|
+
Sweep is (start, stop, step, sleep)
|
|
13
14
|
"""
|
|
14
15
|
pass
|
|
15
16
|
|
|
@@ -36,7 +36,7 @@ class AbstractVNA(ABC):
|
|
|
36
36
|
return freqs[-1] - freqs[0]
|
|
37
37
|
|
|
38
38
|
@abstractmethod
|
|
39
|
-
def get_tracedata(self, RealImag = None) -> tuple
|
|
39
|
+
def get_tracedata(self, RealImag = None) -> tuple[np.ndarray, np.ndarray]:
|
|
40
40
|
"""
|
|
41
41
|
When the measurement succeeded, this method returns the resulting data.
|
|
42
42
|
The behaviour depends on the [RealImag] keyword argument.
|
|
@@ -108,8 +108,8 @@ class IVVI_BiasDAC(Instrument):
|
|
|
108
108
|
self.v_div = None # for voltage bias
|
|
109
109
|
def get_sweep_mode(self):
|
|
110
110
|
# 0: V bias V measure, 1: I bias V measure, 2: V bias I measure
|
|
111
|
-
# technically mode
|
|
112
|
-
return 1
|
|
111
|
+
# technically mode 0 also possible, this class cant determine 0 vs 2 without hidden knowledge about measure function though
|
|
112
|
+
return 1 + self.pseudo_bias_mode
|
|
113
113
|
def get_sweep_bias(self):
|
|
114
114
|
return self.pseudo_bias_mode
|
|
115
115
|
def get_sweep_channels(self):
|
|
@@ -8,8 +8,7 @@ import numpy as np
|
|
|
8
8
|
import itertools
|
|
9
9
|
|
|
10
10
|
from qkit.drivers.AbstractIVDevice import AbstractIVDevice
|
|
11
|
-
from qkit.measure.unified_measurements import MeasurementTypeAdapter, Axis
|
|
12
|
-
from qkit.storage.thin_hdf import HDF5
|
|
11
|
+
from qkit.measure.unified_measurements import MeasurementTypeAdapter, Axis, DataView, DataViewSet, DataReference
|
|
13
12
|
|
|
14
13
|
|
|
15
14
|
@dataclass(frozen=True)
|
|
@@ -20,36 +19,44 @@ class _MeasureMode:
|
|
|
20
19
|
measure_unit: str
|
|
21
20
|
|
|
22
21
|
class MeasureModes(Enum):
|
|
22
|
+
"""
|
|
23
|
+
TODO DocString BiasSense (?)
|
|
24
|
+
"""
|
|
23
25
|
IV = _MeasureMode('i', 'A', 'v', 'V')
|
|
24
26
|
VI = _MeasureMode('v', 'V', 'i', 'A')
|
|
25
27
|
|
|
26
28
|
class TransportMeasurement(MeasurementTypeAdapter):
|
|
27
29
|
|
|
28
30
|
_measurement_descriptors: list[tuple[MeasurementTypeAdapter.DataDescriptor, MeasurementTypeAdapter.DataDescriptor]]
|
|
31
|
+
_sweep_parameters: list[tuple[float, float, float]]
|
|
29
32
|
_iv_device: AbstractIVDevice
|
|
30
33
|
_mode: MeasureModes
|
|
31
34
|
_sleep: float
|
|
35
|
+
_extend_range: bool
|
|
32
36
|
|
|
33
|
-
def __init__(self, iv_device: AbstractIVDevice, mode: MeasureModes = MeasureModes.IV, sleep: float = 0):
|
|
37
|
+
def __init__(self, iv_device: AbstractIVDevice, mode: MeasureModes = MeasureModes.IV, sleep: float = 0, extend_range=False):
|
|
34
38
|
super().__init__()
|
|
35
39
|
self._iv_device = iv_device
|
|
36
40
|
self._mode = mode
|
|
37
41
|
self._measurement_descriptors = []
|
|
42
|
+
self._sweep_parameters = []
|
|
38
43
|
self._sleep = sleep
|
|
44
|
+
self._extend_range = extend_range
|
|
39
45
|
if mode == MeasureModes.IV:
|
|
40
|
-
assert iv_device.
|
|
46
|
+
assert iv_device.get_sweep_bias() == 0
|
|
41
47
|
elif mode == MeasureModes.VI:
|
|
42
|
-
assert iv_device.
|
|
48
|
+
assert iv_device.get_sweep_bias() == 1
|
|
43
49
|
|
|
44
50
|
def add_sweep(self, start: float, stop: float, step: float):
|
|
45
51
|
axis = Axis(
|
|
46
|
-
name=f'{self._mode.value.bias_symbol}
|
|
52
|
+
name=f'{self._mode.value.bias_symbol}_b_{len(self._measurement_descriptors)}',
|
|
47
53
|
unit=self._mode.value.bias_unit,
|
|
48
|
-
range=np.arange(start, stop, step)
|
|
54
|
+
range=np.arange(start, stop if not self._extend_range else (stop + step/2), step)
|
|
49
55
|
)
|
|
50
|
-
self.
|
|
56
|
+
self._sweep_parameters += [(start, stop, step)] # TODO: Refactor by lazy DataDescriptor creation based on sweep parameters
|
|
57
|
+
self._measurement_descriptors += [(
|
|
51
58
|
MeasurementTypeAdapter.DataDescriptor(
|
|
52
|
-
name=f'{self._mode.value.bias_symbol}
|
|
59
|
+
name=f'{self._mode.value.bias_symbol}_{len(self._measurement_descriptors)}',
|
|
53
60
|
unit=self._mode.value.bias_unit,
|
|
54
61
|
axes=(axis,)
|
|
55
62
|
),
|
|
@@ -58,7 +65,7 @@ class TransportMeasurement(MeasurementTypeAdapter):
|
|
|
58
65
|
unit=self._mode.value.measure_unit,
|
|
59
66
|
axes=(axis,)
|
|
60
67
|
)
|
|
61
|
-
)
|
|
68
|
+
)]
|
|
62
69
|
|
|
63
70
|
def add_4_quadrant_sweep(self, start: float, stop: float, step: float, offset: float = 0):
|
|
64
71
|
"""
|
|
@@ -101,8 +108,8 @@ class TransportMeasurement(MeasurementTypeAdapter):
|
|
|
101
108
|
offset: float
|
|
102
109
|
Offset value by which <start> and <stop> are shifted. Default is 0.
|
|
103
110
|
"""
|
|
104
|
-
self.add_sweep(amplitude + offset, -amplitude + offset, step)
|
|
105
|
-
self.add_sweep(-amplitude + offset, amplitude + offset,
|
|
111
|
+
self.add_sweep(amplitude + offset, -amplitude + offset, -step)
|
|
112
|
+
self.add_sweep(-amplitude + offset, amplitude + offset, step)
|
|
106
113
|
|
|
107
114
|
@override
|
|
108
115
|
@property
|
|
@@ -111,14 +118,31 @@ class TransportMeasurement(MeasurementTypeAdapter):
|
|
|
111
118
|
|
|
112
119
|
@override
|
|
113
120
|
@property
|
|
114
|
-
def default_views(self) -> dict[str,
|
|
121
|
+
def default_views(self) -> dict[str, DataView]:
|
|
115
122
|
return {
|
|
116
|
-
'IV':
|
|
117
|
-
|
|
123
|
+
'IV': DataView(
|
|
124
|
+
view_params={
|
|
125
|
+
"labels": ('V', 'I'),
|
|
126
|
+
'plot_style': 1,
|
|
127
|
+
'markersize': 5
|
|
128
|
+
},
|
|
129
|
+
view_sets=list(itertools.chain(
|
|
130
|
+
DataViewSet(
|
|
131
|
+
x_path = DataReference(b.name if self._mode == MeasureModes.VI else m.name),
|
|
132
|
+
y_path = DataReference(m.name if self._mode == MeasureModes.VI else b.name),
|
|
133
|
+
) for (b, m) in self._measurement_descriptors
|
|
134
|
+
))
|
|
135
|
+
),
|
|
136
|
+
'VI': DataView(
|
|
137
|
+
view_params={
|
|
138
|
+
"labels": ('I', 'V'),
|
|
139
|
+
'plot_style': 1,
|
|
140
|
+
'markersize': 5
|
|
141
|
+
},
|
|
118
142
|
view_sets=list(itertools.chain(
|
|
119
|
-
|
|
120
|
-
x_path=
|
|
121
|
-
y_path=
|
|
143
|
+
DataViewSet(
|
|
144
|
+
x_path = DataReference(b.name if self._mode == MeasureModes.IV else m.name),
|
|
145
|
+
y_path = DataReference(m.name if self._mode == MeasureModes.IV else b.name),
|
|
122
146
|
) for (b, m) in self._measurement_descriptors
|
|
123
147
|
))
|
|
124
148
|
),
|
|
@@ -127,9 +151,8 @@ class TransportMeasurement(MeasurementTypeAdapter):
|
|
|
127
151
|
@override
|
|
128
152
|
def perform_measurement(self) -> tuple['MeasurementTypeAdapter.GeneratedData', ...]:
|
|
129
153
|
results = []
|
|
130
|
-
for (bias, measurement) in self._measurement_descriptors:
|
|
131
|
-
|
|
132
|
-
bias_data, measurement_data = self._iv_device.take_IV(intended_bias_values)
|
|
154
|
+
for ((bias, measurement), sweep_params) in zip(self._measurement_descriptors, self._sweep_parameters):
|
|
155
|
+
bias_data, measurement_data = self._iv_device.take_IV((*sweep_params, self._sleep))
|
|
133
156
|
results.append((
|
|
134
157
|
bias.with_data(bias_data),
|
|
135
158
|
measurement.with_data(measurement_data)
|
|
@@ -170,7 +170,7 @@ class ParentOfMeasurements(ABC):
|
|
|
170
170
|
"""
|
|
171
171
|
if len(self._measurements) == 0:
|
|
172
172
|
return 0
|
|
173
|
-
return max(map(lambda m:
|
|
173
|
+
return max(map(lambda m: m.dimension, self._measurements))
|
|
174
174
|
|
|
175
175
|
def create_datasets(self, data_file: hdf.Data, swept_axes: list[hdf_dataset]):
|
|
176
176
|
"""
|
|
@@ -248,6 +248,7 @@ class Sweep(ParentOfSweep, ParentOfMeasurements):
|
|
|
248
248
|
sweep, size = self._generate_enumeration(data_file)
|
|
249
249
|
try:
|
|
250
250
|
for index, value in tqdm(sweep, desc=self._axis.name, bar_format=bar_format(), total=size, leave=False):
|
|
251
|
+
measurement_log.debug(f"Sweeping {self._axis.name} index: {index} value: {value}")
|
|
251
252
|
try:
|
|
252
253
|
self._setter(value)
|
|
253
254
|
self._current_value = value
|
|
@@ -366,13 +367,6 @@ class DataGenerator(ABC):
|
|
|
366
367
|
Handles storing data into datasets, and provides the structures for describing the data.
|
|
367
368
|
"""
|
|
368
369
|
|
|
369
|
-
@property
|
|
370
|
-
def dataset_category(self) -> Literal['data', 'analysis']:
|
|
371
|
-
"""
|
|
372
|
-
The category into which the returned data should be sorted.
|
|
373
|
-
"""
|
|
374
|
-
return 'data'
|
|
375
|
-
|
|
376
370
|
def store(self, data_file: hdf.Data, data: tuple['MeasurementTypeAdapter.GeneratedData', ...], sweep_indices: tuple[int, ...]):
|
|
377
371
|
"""
|
|
378
372
|
Store the generated [data] in the [data_file], while selecting based on the current [sweep_indices].
|
|
@@ -395,6 +389,7 @@ class DataGenerator(ABC):
|
|
|
395
389
|
name: str
|
|
396
390
|
axes: tuple[Axis, ...]
|
|
397
391
|
unit: str = 'a.u.'
|
|
392
|
+
category: Literal['data', 'analysis'] = "data"
|
|
398
393
|
|
|
399
394
|
def __post_init__(self):
|
|
400
395
|
assert isinstance(self.name, str), "Name must be a string!"
|
|
@@ -402,6 +397,7 @@ class DataGenerator(ABC):
|
|
|
402
397
|
for axis in self.axes:
|
|
403
398
|
assert isinstance(axis, Axis), "Axes must be a tuple of Axis objects!"
|
|
404
399
|
assert isinstance(self.unit, str), "Unit must be a string!"
|
|
400
|
+
assert self.category == "data" or self.category == "analysis", "Category must bei either 'data' or 'analysis'"
|
|
405
401
|
|
|
406
402
|
def with_data(self, data: Union[np.ndarray, float]) -> 'MeasurementTypeAdapter.GeneratedData':
|
|
407
403
|
"""
|
|
@@ -421,19 +417,26 @@ class DataGenerator(ABC):
|
|
|
421
417
|
# The API has different methods, depending on dimensionality, which it then unifies again to a generic case.
|
|
422
418
|
# For political reasons, we have to live with this.
|
|
423
419
|
if len(all_axes) == 0:
|
|
424
|
-
return file.add_coordinate(name=self.name, unit=self.unit)
|
|
420
|
+
return file.add_coordinate(name=self.name, unit=self.unit, folder=self.category)
|
|
425
421
|
elif len(all_axes) == 1:
|
|
426
|
-
return file.add_value_vector(name=self.name,x = all_axes[0], unit=self.unit)
|
|
422
|
+
return file.add_value_vector(name=self.name,x = all_axes[0], unit=self.unit, folder=self.category)
|
|
427
423
|
elif len(all_axes) == 2:
|
|
428
|
-
return file.add_value_matrix(name=self.name, x = all_axes[0], y = all_axes[1], unit=self.unit)
|
|
424
|
+
return file.add_value_matrix(name=self.name, x = all_axes[0], y = all_axes[1], unit=self.unit, folder=self.category)
|
|
429
425
|
elif len(all_axes) == 3:
|
|
430
|
-
return file.add_value_box(name=self.name, x = all_axes[0], y = all_axes[1], z = all_axes[2], unit=self.unit)
|
|
426
|
+
return file.add_value_box(name=self.name, x = all_axes[0], y = all_axes[1], z = all_axes[2], unit=self.unit, folder=self.category)
|
|
431
427
|
else:
|
|
432
428
|
raise NotImplementedError("Qkit Store does not support more than 3 dimensions!")
|
|
433
429
|
|
|
434
430
|
@property
|
|
435
431
|
def ds_url(self):
|
|
436
|
-
return f"/entry/
|
|
432
|
+
return f"/entry/{self.category}0/{self.name}"
|
|
433
|
+
|
|
434
|
+
@property
|
|
435
|
+
def dimension(self):
|
|
436
|
+
"""
|
|
437
|
+
The dimensionality of the expected Data.
|
|
438
|
+
"""
|
|
439
|
+
return len(self.axes)
|
|
437
440
|
|
|
438
441
|
@dataclass(frozen=True)
|
|
439
442
|
class GeneratedData:
|
|
@@ -450,7 +453,7 @@ class DataGenerator(ABC):
|
|
|
450
453
|
assert isinstance(self.data, np.ndarray), "MeasurementData must be an ndarray!"
|
|
451
454
|
assert len(self.descriptor.axes) == len(self.data.shape), f"Data shape (d={len(self.data.shape)}) incongruent with descriptor (d={len(self.descriptor.axes)})"
|
|
452
455
|
for (i, axis) in enumerate(self.descriptor.axes):
|
|
453
|
-
assert self.data.shape[i] == len(axis.range), f"Axis ({axis.name}) length and data length mismatch"
|
|
456
|
+
assert self.data.shape[i] == len(axis.range), f"Axis {i} ({axis.name}) length ({len(axis.range)}) and data length ({self.data.shape[i]}) mismatch"
|
|
454
457
|
|
|
455
458
|
def write_data(self, file: hdf.Data, sweep_indices: tuple[int, ...]):
|
|
456
459
|
"""
|
|
@@ -530,11 +533,6 @@ class AnalysisTypeAdapter(DataGenerator, ABC):
|
|
|
530
533
|
measurement_log.debug(f"Creating View {name} for Analysis.")
|
|
531
534
|
view.write(data_file, name)
|
|
532
535
|
|
|
533
|
-
@override
|
|
534
|
-
@property
|
|
535
|
-
def dataset_category(self) -> Literal['data', 'analysis']:
|
|
536
|
-
return 'analysis'
|
|
537
|
-
|
|
538
536
|
@abstractmethod
|
|
539
537
|
def expected_structure(self, parent_schema: tuple['MeasurementTypeAdapter.DataDescriptor', ...]) -> tuple[
|
|
540
538
|
'MeasurementTypeAdapter.DataDescriptor', ...]:
|
|
@@ -587,9 +585,9 @@ class MeasurementTypeAdapter(DataGenerator, ABC):
|
|
|
587
585
|
|
|
588
586
|
views = self.default_views
|
|
589
587
|
assert isinstance(views, dict), "Default views must be a dict of str to DataViews!"
|
|
590
|
-
for name, view in views:
|
|
588
|
+
for name, view in views.items():
|
|
591
589
|
assert isinstance(name, str), "Name of view must be a string!"
|
|
592
|
-
assert isinstance(view, DataView), "Each view must be of type DataView!"
|
|
590
|
+
assert isinstance(view, DataView), f"Each view must be of type DataView! But {name} is {type(view)}"
|
|
593
591
|
measurement_log.debug(f"Creating view {name}.")
|
|
594
592
|
view.write(data_file, name)
|
|
595
593
|
|
|
@@ -618,6 +616,13 @@ class MeasurementTypeAdapter(DataGenerator, ABC):
|
|
|
618
616
|
assert isinstance(analysis, AnalysisTypeAdapter), "Analysis must be of type AnalysisTypeAdapter!"
|
|
619
617
|
self._analyses.append(analysis)
|
|
620
618
|
return self
|
|
619
|
+
|
|
620
|
+
@property
|
|
621
|
+
def dimension(self):
|
|
622
|
+
"""
|
|
623
|
+
Determine the dimensionality of the measurement as the maximum dimensionality of any expected structure.
|
|
624
|
+
"""
|
|
625
|
+
return max(map(lambda es: es.dimension, self.expected_structure))
|
|
621
626
|
|
|
622
627
|
@property
|
|
623
628
|
@abstractmethod
|
|
@@ -791,6 +796,9 @@ class Experiment(ParentOfSweep, ParentOfMeasurements):
|
|
|
791
796
|
measurement_log.info("Starting measurement")
|
|
792
797
|
self.run_measurements(data_file, ())
|
|
793
798
|
self._run_child_sweep(data_file, ())
|
|
799
|
+
except Exception as e:
|
|
800
|
+
import traceback
|
|
801
|
+
traceback.print_exc()
|
|
794
802
|
finally:
|
|
795
803
|
# Calling into existing plotting code in the background.
|
|
796
804
|
measurement_log.info("Creating plots...")
|
qkit-0.5.3/src/qkit/_version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.5.3"
|
{qkit-0.5.3 → qkit-0.5.4}/.git
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|