Qupulse

Latest version: v0.8

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

Scan your dependencies

Page 1 of 2

0.8

========================

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. ``ParallelChannelPT`` and
``ArithmeticPT`` support time dependent expressions if used with atomic pulse templates.
Rename ``ParallelConstantChannelPT`` to ``ParallelChannelPT`` to reflect this change. (`709 <https://github.com/qutech/qupulse/issues/709>`_)
- Add ``with_`` family of helper methods to ``PulseTemplate`` to 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 at `qupulse.pulses.plotting`. (`735 <https://github.com/qutech/qupulse/issues/735>`_)


Deprecations and Removals
-------------------------

- Remove the ``Parameter``, ``MappedParameter`` and ``ConstantParameter`` classes 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>`_)

0.7

========================

Features
--------

- Add optional numba uses in some cases. (501)
- Add `initial_values` and `final_values` attributes to `PulseTemplate`.

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
--------

- `floor` will now return an integer in lambda expressions with numpy to allow usage in ForLoopPT range expression. (612)


Deprecations and Removals
-------------------------

- Drop `cached_property` dependency 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)

0.6

Features

- Add [evaluate_with_exact_rationals]{.title-ref} method to
[ExpressionScalar]{.title-ref}
([\546](https://github.com/qutech/qupulse/issues/546))
- New feature based AWG abstraction. Can be found in
[qupulse.hardware.feature_awg]{.title-ref}. Allows easier code reuse
across awg drivers.
([\557](https://github.com/qutech/qupulse/issues/557))
- Add ConstantPulseTemplate
([\565](https://github.com/qutech/qupulse/issues/565))
- Add interface to use [atsaverage]{.title-ref} auto rearm
([\566](https://github.com/qutech/qupulse/issues/566))
- Adds the methods [is_constant]{.title-ref},
[constant_value_dict]{.title-ref} and [constant_value]{.title-ref}
to Waveform class to allow more efficient AWG usage.
([\588](https://github.com/qutech/qupulse/issues/588))

Bugfixes

- Fix TimeType comparisons with non-finite floats (inf, -inf, NaN)
([\536](https://github.com/qutech/qupulse/issues/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](https://github.com/qutech/qupulse/issues/571))

- Replace pytabor and teawg with tabor_control to support
newer(\>=1.11) pyvisa versions
([\599](https://github.com/qutech/qupulse/issues/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](https://github.com/qutech/qupulse/issues/604))

Deprecations and Removals

- Deprecate HashableNumpyArray due to its inconsistency.
([\408](https://github.com/qutech/qupulse/issues/408))
- Drop support for python 3.5
([\504](https://github.com/qutech/qupulse/issues/504))
- Remove deprecated [external_parameters]{.title-ref} keyword argument
from SequencePT and AtomicMultiChannelPT
([\592](https://github.com/qutech/qupulse/issues/592))
- Deprecate boolean [duration]{.title-ref} argument of
[AtomicMultiChannelPulseTemplate]{.title-ref} and remove duration
check in [\_\_init\_\_]{.title-ref}.
([\593](https://github.com/qutech/qupulse/issues/593))

0.5.1

Maintainance release.

- General:
- Unify `TimeType.from_float` between fractions and gmpy2 backend behaviour (fixes issue 529).

0.5

- General:
- Improve `TimeType` consistency 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
`volatile` kwarg of `create_program`

- Hardware:
- Add a `measure_program` method to the DAC interface. This method is used by the QCoDeS integration.
- Add a `set_measurement_mask` to DAC interface. This method is used by the QCoDeS integration.
- Add a `get_sample_times` util 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_mapping` is now True as a default. The default can be changed with the class variable `MappingPulseTemplate.ALLOW_PARTIAL_PARAMETER_MAPPING`.
- Add specializations for `map_parameters` because 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

0.4

- General:
- Add utility function `qupulse.utils.types.has_type_interface` and use it to circumvent autoreload triggered isinstance fails
- Add utility function `qupulse.utils.time_from_fraction` to make creation from numerator and denominator obvious.

- Pulse Templates:
- `MappingPulseTemplate`:
- Raise a ValueError if more than one inner channel is mapped to the same outer channel
- Plotting:
- Make `plotting.render` behaviour and return value consistent between calls with `InstructionBlock` and `Loop`. Render now always returns 3 arguments.

Also available on [PyPi](https://pypi.org/project/qupulse/0.4/)

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.