From ce2a9e72e3202f4421013b872f158afefafcac92 Mon Sep 17 00:00:00 2001 From: Simon Humpohl Date: Wed, 27 Nov 2019 16:38:55 +0100 Subject: [PATCH] Warn if make_compatible takes action --- qupulse/_program/_loop.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/qupulse/_program/_loop.py b/qupulse/_program/_loop.py index 467958399..79c925302 100644 --- a/qupulse/_program/_loop.py +++ b/qupulse/_program/_loop.py @@ -567,12 +567,23 @@ def make_compatible(program: Loop, minimal_waveform_length: int, waveform_quantu if comp_level == _CompatibilityLevel.incompatible_fraction: raise ValueError('The program duration in samples {} is not an integer'.format(program.duration * sample_rate)) if comp_level == _CompatibilityLevel.incompatible_too_short: - raise ValueError('The program is too short to be a valid waveform. \n program duration in samples: {} \n minimal length: {}'.format(program.duration * sample_rate, minimal_waveform_length)) + raise ValueError('The program is too short to be a valid waveform. \n' + ' program duration in samples: {} \n' + ' minimal length: {}'.format(program.duration * sample_rate, minimal_waveform_length)) if comp_level == _CompatibilityLevel.incompatible_quantum: - raise ValueError('The program duration in samples {} is not a multiple of quantum {}'.format(program.duration * sample_rate, waveform_quantum)) + raise ValueError('The program duration in samples {} ' + 'is not a multiple of quantum {}'.format(program.duration * sample_rate, waveform_quantum)) elif comp_level == _CompatibilityLevel.action_required: + warnings.warn("qupulse will now concatenate waveforms to make the pulse/program compatible with the chosen AWG." + " This might take some time. If you need this pulse more often it makes sense to write it in a " + "way which is more AWG friendly.", MakeCompatibleWarning) + _make_compatible(program, min_len=minimal_waveform_length, quantum=waveform_quantum, sample_rate=sample_rate) + + +class MakeCompatibleWarning(ResourceWarning): + pass