Recent Releases of qupulse
qupulse - qupulse 0.10
Features
- Move HDAWG driver to qupulse-hdawg-legacy to disentangle driver version from qupulse version. The new HDAWG driver will be published under qupulse-hdawg. (#779)
- Add the ProgramBuilder interface pattern to make the generated program of PulseTemplate.create_program easily customizable. (#781)
- Measurement windows can now automatically shrank in case of overlap to counteract small numeric errors. (#791)
Bugfixes
ConstantPulseTemplates from all versions can now be deserialized. (#696)- Fixed that single segment tables where always interpreted to be constant. (#707)
- Add missing pulse registry support to ArithmeticPT. (#775)
- Python
Published by terrorfisch almost 2 years ago
qupulse - Release 0.9
Features
- Add
__pow__as a repetition shortcut. This means you can domy_pulse_template ** 5ormy_pulse_template ** 'my_repetition_count'. (https://github.com/qutech/qupulse/issues/692) - Promote qupulse.expression to a subpackage and create qupulse.expression.protocol with protocol classes that define the expression interface that is supposed to be used by qupulse. The
sympybased implementation is moved toqupulse.expressions.sympyand imported inqupulse.expressions. - The intended use is to be able to use less powerful but faster implementations of the Expression protocol where appropriate. In this first iteration, qupulse still relies on internals of the sympy based implementation in many places which is to be removed in the future. (https://github.com/qutech/qupulse/issues/750)
- Promote parts of the private subpackage
qupulse._programto the public subpackagequpulse.program, i.e. loop, volatile, transformation and waveforms. This allows external packages/drivers to rely on stability of the Loop class. (https://github.com/qutech/qupulse/issues/779) - Add
PulseTemplate.pad_tomethod to help padding to minimal lengths or multiples of given durations. (https://github.com/qutech/qupulse/issues/801)
Misc
- Fix Loop repr https://github.com/qutech/qupulse/issues/771
- Python
Published by terrorfisch over 2 years ago
qupulse - Release 0.8
qupulse 0.8 (2023-03-28)
Features
- New two dimensional plotting function
qupulse.pulses.plotting.plot_2d. (#703 <https://github.com/qutech/qupulse/issues/703>_) - Add support for time dependent expressions for arithmetics with atomic pulse templates i.e.
ParallelChannelPTandArithmeticPTsupport time dependent expressions if used with atomic pulse templates. RenameParallelConstantChannelPTtoParallelChannelPTto reflect this change. (#709 <https://github.com/qutech/qupulse/issues/709>_) - Add
with_family of helper methods toPulseTemplateto allow convinient and easily discoverable pulse template combination. (#710 <https://github.com/qutech/qupulse/issues/710>_) - The plotting module is now located at
qupulse.plotting. There is a legacy alias atqupulse.pulses.plotting. (#735 <https://github.com/qutech/qupulse/issues/735>_)
Deprecations and Removals
- Remove the
Parameter,MappedParameterandConstantParameterclasses that where deprecated in version 0.5. (#512 <https://github.com/qutech/qupulse/issues/512>_) - Drop support for python version 3.7. (
#760 <https://github.com/qutech/qupulse/issues/760>_)
- Python
Published by terrorfisch almost 3 years ago
qupulse - qupulse 0.7
qupulse 0.7 (2022-10-05)
Features
- Add optional numba uses in some cases. (#501)
- Add
initial_valuesandfinal_valuesattributes toPulseTemplate.
This allows pulse template construction that depends on features of arbitrary existing pulses i.e. like extension until
a certain length. (#549)
- Support sympy 1.9 (#615)
- Add option to automatically reduce the sample rate of HDAWG playback for piecewise constant pulses.
Use qupulse._program.seqc.WaveformPlayback.ENABLE_DYNAMIC_RATE_REDUCTION to enable it. (#622)
- Add a TimeReversalPT. (#635)
- Add specialied parameter Scope for ForLoopPT. This increases performance by roughly a factor of 3 for long ranges! (#642)
- Add sympy 1.10 support and make ExpressionVector hashable. (#645)
- Serializable is now comparable via it's get_serialized_data. PulseTemplate implements Hashable via the same. (#653)
- Add an interface that uses atsaverage.config2. (#686 https://github.com/qutech/qupulse/issues/686`_)
Bugfixes
floorwill now return an integer in lambda expressions with numpy to allow usage in ForLoopPT range expression. (#612)
Deprecations and Removals
- Drop
cached_propertydependency for python>=3.8. (#638) - Add frozendict dependency to replace handwritten solution. Not having it installed will break in a future release when the old implementation is removed. (#639)
- Drop python 3.6 support. (#656)
- Python
Published by terrorfisch over 3 years ago
qupulse - qupulse 0.6
qupulse 0.6 (2021-07-08)
Features
- Add [evaluatewithexact_rationals]{.title-ref} method to [ExpressionScalar]{.title-ref} (#546)
- New feature based AWG abstraction. Can be found in [qupulse.hardware.feature_awg]{.title-ref}. Allows easier code reuse across awg drivers. (#557)
- Add ConstantPulseTemplate (#565)
- Add interface to use [atsaverage]{.title-ref} auto rearm (#566)
- Adds the methods [isconstant]{.title-ref}, [constantvaluedict]{.title-ref} and [constantvalue]{.title-ref} to Waveform class to allow more efficient AWG usage. (#588)
Bugfixes
Fix TimeType comparisons with non-finite floats (inf, -inf, NaN) (#536)
Improve alazar usability:
: - Do not touch the default config when arming a measurement - Keep current config in a seperate field - Extend record to a multiple of a configurable value (4KB by default) (#571)
Replace pytabor and teawg with tabor_control to support newer(>=1.11) pyvisa versions (#599)
Fix [repr]{.title-ref} of [ExpressionScalar]{.title-ref} when constructed from a sympy expression. Also replace [Expression]{.title-ref} with [ExpressionScalar]{.title-ref} in [repr]{.title-ref}. (#604)
Deprecations and Removals
- Deprecate HashableNumpyArray due to its inconsistency. (#408)
- Drop support for python 3.5 (#504)
- Remove deprecated [external_parameters]{.title-ref} keyword argument from SequencePT and AtomicMultiChannelPT (#592)
- Deprecate boolean [duration]{.title-ref} argument of [AtomicMultiChannelPulseTemplate]{.title-ref} and remove duration check in [__init__]{.title-ref}. (#593)
- Python
Published by terrorfisch over 4 years ago
qupulse - qupulse 0.5.1
Maintainance release.
- General:
- Unify
TimeType.from_floatbetween fractions and gmpy2 backend behaviour (fixes issue 529).
- Unify
- Python
Published by terrorfisch almost 6 years ago
qupulse - qupulse 0.5
General:
- Improve
TimeTypeconsistency by leveraging str(float) for rounding by default. - Add support for sympy==1.5
- Add volatile parameters. Repetition counts can now be changed at runtime in some cases (useful for DNP). See
volatilekwarg ofcreate_program
- Improve
Hardware:
- Add a
measure_programmethod to the DAC interface. This method is used by the QCoDeS integration. - Add a
set_measurement_maskto DAC interface. This method is used by the QCoDeS integration. - Add a
get_sample_timesutil method to share code for exact and fast sample time calculation - Add a driver for Tektronix AWG5000/7000
- Add a driver for Zurich Instruments HDAWG
- Warn the user if waveforms need to be concatenated to be compatible with hardware requirements.
- Pulse Templates:
- Add
__repr__and__format__for easier inspection MappingPulseTemplate:allow_partial_parameter_mappingis now True as a default. The default can be changed with the class variableMappingPulseTemplate.ALLOW_PARTIAL_PARAMETER_MAPPING.- Add specializations for
map_parametersbecause the auto-inference of the return type did not work for empty input. - Channels mapped to None are now dropped
- Add simple arithmetic operations for pulse templates
- offset and scaling with scalars
- addition with atomic pulse templates
- Expressions:
- Expressions can now be formatted as floats if they do not have free variables
- Parameters:
- Replace Parameter class with Scope
- Parameter class is now deprecated
- Backward incompatible changes:
- Removed deprecated classes:
- Sequencer: Replaced by PulseTemplate.create_program method
- Condition: Never used
- InstructionBlock: Old representation of programs. Replaced by Loop
- MultiChannelProgram: Was required in the instruction block framework
- Add a
- Python
Published by terrorfisch almost 6 years ago
qupulse - qupulse 0.4
General:
- Add utility function
qupulse.utils.types.has_type_interfaceand use it to circumvent autoreload triggered isinstance fails - Add utility function
qupulse.utils.time_from_fractionto make creation from numerator and denominator obvious.
- Add utility function
Pulse Templates:
MappingPulseTemplate:- Raise a ValueError if more than one inner channel is mapped to the same outer channel
- Plotting:
- Make
plotting.renderbehaviour and return value consistent between calls withInstructionBlockandLoop. Render now always returns 3 arguments.
- Make
Also available on PyPi
- Python
Published by terrorfisch almost 7 years ago
qupulse - qupulse 0.3
General:
- Introduce qupulse.utils.isclose (an alias for math.isclose if available)
- Dropped support for Python 3.4 in setup.py due to incompatible syntax in qupulse.
- Official support for Python 3.7 has begun.
Pulse Templates:
AtomicMultichannelPulseTemplate:- Add duration keyword argument & example (see MultiChannelTemplates notebook)
- Make duration equality check approximate (numeric tolerance)
- Plotting:
- Add
time_slicekeyword argument to render() and plot()
- Add
- Add
AbstractPulseTemplateclass PointPulseTemplate:- Fixed bug in integral evaluation
- Add
ParallelConstantChannelPulseTemplatewhich allows adding a constant valued channel to an arbitrary pulse template
Expressions:
- Make ExpressionScalar hashable
- Fix bug that prevented evaluation of expressions containing some special functions (
erfc,factorial, etc.)
Parameters:
ConstantParameternow accepts aExpressionwithout free variables as value (given asExpressionor string)
Also available on PyPi
- Python
Published by terrorfisch about 7 years ago
qupulse - qupulse 0.2
General:
- officially removed support for Python 3.3 (qupulse and dependencies are not compatible anymore)
Serialization / Storage:
- Added functionality to easily access available content/identifiers in
PulseStorageandStorageBackend. - DEPRECATED
list_contents()ofStorageBackend(usecontents propertyinstead). - DEPRECATED:
CachingBackendbecause its functionality is a subset ofPulseStorage.
- Added functionality to easily access available content/identifiers in
Expressions:
Fixed bug in
Expression.evaluate_numericif result is array of numeric sympy objects
Also available on PyPi
- Python
Published by terrorfisch over 7 years ago