-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[QHC-636] Create AnnealingSchedule class in Qililab. #767
Conversation
…qilimanjaro-tech/qililab into add-one-qubit-analog-transpiler
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #767 +/- ##
==========================================
+ Coverage 95.77% 95.81% +0.03%
==========================================
Files 266 267 +1
Lines 8593 8670 +77
==========================================
+ Hits 8230 8307 +77
Misses 363 363
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work Victor! 💯 Requested a couple of changes, mainly on OOP concepts, and naming conventions.
…ub.com/qilimanjaro-tech/qililab into create-annealingSchedule-class/QHC-636
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a new comment and there still one unresolved question from previous review and is good to go 💯 🚀
what's the unresolved comment? |
Also a further note on this
The flux to ising transpiler is very much at its infancy still, and there is a lot of uncertainty about how will it evolve further than the one qubit case. That is why I am reluctant about starting to make classes and big structures for a workflow that is sure to change in the short term (1-2months) - I think it's better to keep something minimal and make it more rigid (efficient) as we consolidate each step and are sure that that's how it's going to be in the mid term (5-10months). |
It's not an overkill if we know that we will need it eventually. Making the change after 2+ months of additional development will be much more difficult than it is to make it now. |
My main concern is that this is public API since it is in If you answer the other question above, My current guess is an That way the signature of Very good points, as to how is it gonna be long term, also think we are aiming to be a company that makes custom chips, that is, analog chips that solve particular problems, so this needs to be also in our minds, how to make this as generic as possible to fit within that technical development. |
I added a ticket to address (I believe) all of the suggestions above and marked related conversations as resolved (as I believe they have been). Once @fedonman gives the OK I'll merge |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am approving, since we will discuss further OOP improvements after the first demo. Awesome job 💯
* add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * tests * returning changes lost * isort * measure in test * Revert "measure in test" This reverts commit 6dc9b07. * Revert "isort" This reverts commit a958ea8. * Revert "returning changes lost" This reverts commit 86a2bbd. * Revert "tests" This reverts commit d7d0669. --------- Co-authored-by: GitHub Actions bot <actions@github.com>
…778) * add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * implementation proposal * code quality * testing annealing * weights are optional * raising error * raises error test * QHC 621 Modify set_intermediate_frequency for the jobAPI (#764) * update to support opx1000 * fix import error * fix typo * add default type * fix typo * change octave connectivity * Implemented necessary changes for QUA/job API (#756) * Implemented necessary changes for QUA/job API * Update tests/instruments/quantum_machines/test_quantum_machines_cluster.py * FIXED AUTOMATIC FORMAT * add if_outputs * add if_outputs * opx1000 * corrected deprecated functions * fix typos and tests * fix code quality * Fixing Documentation warnings * allowing more than a QM existing at same time * Changes on the IF set * updated job type * ignored changes * pylint disabled * fix * formatted tests * Fixed isort issues * fix pylint * fix test * fix * added missing coverage * fixed change * Added octave calibrate_element after if / lo set * fixed tests * removed incorrect assertions * fixed black formatter * code quality * code quality * ignoring types * black * Ignoring job type * Make ignore typing only for `[union-attr]` * Rewritten job order to execute set_frequency * changed from job to self.job for tests and the future * Forgot a space :) * ADDED PYLINT EXCEPTION * Fixed Mypy * a¡changed type requirements * Added compatibility with opx+ and opx1000 * black * reset self._intermediate_frequency * fix test * fixed moretests * tests * created function to get the controller * black * added changelog * coverage * fixed tests * fix * test reaise error * pylint * Update src/qililab/instruments/quantum_machines/quantum_machines_cluster.py * Apply suggestions from code review Co-authored-by: Vyron Vasileiadis <hi@fedonman.com> * implemented suggested changes * black * fix tests * removed unexistent test --------- Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: jjmartinezQT <133863373+jjmartinezQT@users.noreply.github.com> * tests * isort * measure in test * code quality * code quality * removing duplicate fixture * removing duplicate * disabling too many lines in platform * removing unused arguments * calibration fixture * code quality * fixing unittest * removing brackets typo * passing by calibration to execute_qprogram * refactoring * fixing unittest * removing comment * [QHC-636] Create AnnealingSchedule class in Qililab. (#767) * add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * tests * returning changes lost * isort * measure in test * Revert "measure in test" This reverts commit 6dc9b07. * Revert "isort" This reverts commit a958ea8. * Revert "returning changes lost" This reverts commit 86a2bbd. * Revert "tests" This reverts commit d7d0669. --------- Co-authored-by: GitHub Actions bot <actions@github.com> * changelog * code quality * returning results of annealing * returning type * code quality * making calibration file non optional * introducing sync * code quality * code quality * outside loop * checking type * changing test * adding calibration * fixing unittest * checking return type * removing src * code quality --------- Co-authored-by: victor <visangim@gmail.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: jordivallsq <151619025+jordivallsq@users.noreply.github.com> Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com>
…778) * add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * implementation proposal * code quality * testing annealing * weights are optional * raising error * raises error test * QHC 621 Modify set_intermediate_frequency for the jobAPI (#764) * update to support opx1000 * fix import error * fix typo * add default type * fix typo * change octave connectivity * Implemented necessary changes for QUA/job API (#756) * Implemented necessary changes for QUA/job API * Update tests/instruments/quantum_machines/test_quantum_machines_cluster.py * FIXED AUTOMATIC FORMAT * add if_outputs * add if_outputs * opx1000 * corrected deprecated functions * fix typos and tests * fix code quality * Fixing Documentation warnings * allowing more than a QM existing at same time * Changes on the IF set * updated job type * ignored changes * pylint disabled * fix * formatted tests * Fixed isort issues * fix pylint * fix test * fix * added missing coverage * fixed change * Added octave calibrate_element after if / lo set * fixed tests * removed incorrect assertions * fixed black formatter * code quality * code quality * ignoring types * black * Ignoring job type * Make ignore typing only for `[union-attr]` * Rewritten job order to execute set_frequency * changed from job to self.job for tests and the future * Forgot a space :) * ADDED PYLINT EXCEPTION * Fixed Mypy * a¡changed type requirements * Added compatibility with opx+ and opx1000 * black * reset self._intermediate_frequency * fix test * fixed moretests * tests * created function to get the controller * black * added changelog * coverage * fixed tests * fix * test reaise error * pylint * Update src/qililab/instruments/quantum_machines/quantum_machines_cluster.py * Apply suggestions from code review Co-authored-by: Vyron Vasileiadis <hi@fedonman.com> * implemented suggested changes * black * fix tests * removed unexistent test --------- Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: jjmartinezQT <133863373+jjmartinezQT@users.noreply.github.com> * tests * isort * measure in test * code quality * code quality * removing duplicate fixture * removing duplicate * disabling too many lines in platform * removing unused arguments * calibration fixture * code quality * fixing unittest * removing brackets typo * passing by calibration to execute_qprogram * refactoring * fixing unittest * removing comment * [QHC-636] Create AnnealingSchedule class in Qililab. (#767) * add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * tests * returning changes lost * isort * measure in test * Revert "measure in test" This reverts commit 6dc9b07. * Revert "isort" This reverts commit a958ea8. * Revert "returning changes lost" This reverts commit 86a2bbd. * Revert "tests" This reverts commit d7d0669. --------- Co-authored-by: GitHub Actions bot <actions@github.com> * changelog * code quality * returning results of annealing * returning type * code quality * making calibration file non optional * introducing sync * code quality * code quality * outside loop * checking type * changing test * adding calibration * fixing unittest * checking return type * removing src * code quality --------- Co-authored-by: victor <visangim@gmail.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: jordivallsq <151619025+jordivallsq@users.noreply.github.com> Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com>
* update to support opx1000 * fix import error * fix typo * add default type * fix typo * change octave connectivity * Implemented necessary changes for QUA/job API (#756) * Implemented necessary changes for QUA/job API * Update tests/instruments/quantum_machines/test_quantum_machines_cluster.py * FIXED AUTOMATIC FORMAT * add if_outputs * add if_outputs * opx1000 * corrected deprecated functions * fix typos and tests * fix code quality * Fixing Documentation warnings * allowing more than a QM existing at same time * adding try, except * black * not bare except * changelog * removing duplicated code on merge * right program from import * fixing unittest from bad merge * testing raising error * code quality * fixing unittest * code quality * unittest * unittest * code quality * changing the execution * unittest * undoing * unittest * unittest * mocking cluster turn off * code quality * changing message * regex * regex * escaping error message * escaped error str * code quality * code quality * do not close machines * code quality * platform merge fix * merge arbitrary waveform hash fix from main * Default measurement for annealing for the first demo implementation. (#778) * add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * implementation proposal * code quality * testing annealing * weights are optional * raising error * raises error test * QHC 621 Modify set_intermediate_frequency for the jobAPI (#764) * update to support opx1000 * fix import error * fix typo * add default type * fix typo * change octave connectivity * Implemented necessary changes for QUA/job API (#756) * Implemented necessary changes for QUA/job API * Update tests/instruments/quantum_machines/test_quantum_machines_cluster.py * FIXED AUTOMATIC FORMAT * add if_outputs * add if_outputs * opx1000 * corrected deprecated functions * fix typos and tests * fix code quality * Fixing Documentation warnings * allowing more than a QM existing at same time * Changes on the IF set * updated job type * ignored changes * pylint disabled * fix * formatted tests * Fixed isort issues * fix pylint * fix test * fix * added missing coverage * fixed change * Added octave calibrate_element after if / lo set * fixed tests * removed incorrect assertions * fixed black formatter * code quality * code quality * ignoring types * black * Ignoring job type * Make ignore typing only for `[union-attr]` * Rewritten job order to execute set_frequency * changed from job to self.job for tests and the future * Forgot a space :) * ADDED PYLINT EXCEPTION * Fixed Mypy * a¡changed type requirements * Added compatibility with opx+ and opx1000 * black * reset self._intermediate_frequency * fix test * fixed moretests * tests * created function to get the controller * black * added changelog * coverage * fixed tests * fix * test reaise error * pylint * Update src/qililab/instruments/quantum_machines/quantum_machines_cluster.py * Apply suggestions from code review Co-authored-by: Vyron Vasileiadis <hi@fedonman.com> * implemented suggested changes * black * fix tests * removed unexistent test --------- Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: jjmartinezQT <133863373+jjmartinezQT@users.noreply.github.com> * tests * isort * measure in test * code quality * code quality * removing duplicate fixture * removing duplicate * disabling too many lines in platform * removing unused arguments * calibration fixture * code quality * fixing unittest * removing brackets typo * passing by calibration to execute_qprogram * refactoring * fixing unittest * removing comment * [QHC-636] Create AnnealingSchedule class in Qililab. (#767) * add parameter class and one qubit analog transpiler * add unit tests * add unit tests * move fluqe parameter inside analog, fix pylint complains * draft of anneal program with transpiler for 1q * add analog program execution workflow * add changelog * fix mypy * fix docstring * add unit test for anneal program * wip platform unit tests * add to_dict method to qprogram in order to tests that a qprogram is equivalent to another * fix tests * fix pylint * fix docstrings, pylint * still trying to fix docs * still trying to fix the docs * still trying to fix the docs * still trying to fix the docs * change qprogram to_readable_dict to __str__ method * fix tests, fix docs * add suggested changes * add unittest for qprogram str method * fix tests * remove unused import * fix coverage * update changelog * tests * returning changes lost * isort * measure in test * Revert "measure in test" This reverts commit 6dc9b07. * Revert "isort" This reverts commit a958ea8. * Revert "returning changes lost" This reverts commit 86a2bbd. * Revert "tests" This reverts commit d7d0669. --------- Co-authored-by: GitHub Actions bot <actions@github.com> * changelog * code quality * returning results of annealing * returning type * code quality * making calibration file non optional * introducing sync * code quality * code quality * outside loop * checking type * changing test * adding calibration * fixing unittest * checking return type * removing src * code quality --------- Co-authored-by: victor <visangim@gmail.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: jordivallsq <151619025+jordivallsq@users.noreply.github.com> Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com> --------- Co-authored-by: Vyron Vasileiads <hi@fedonman.com> Co-authored-by: jordivallsq <151619025+jordivallsq@users.noreply.github.com> Co-authored-by: jvallsq <jordi.valls@qilimanjaro.tech> Co-authored-by: Guillermo Abad López <109400222+GuillermoAbadLopez@users.noreply.github.com> Co-authored-by: GitHub Actions bot <actions@github.com> Co-authored-by: victor <visangim@gmail.com>
No description provided.