qiclib 2.3.0__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.
Files changed (420) hide show
  1. qiclib-2.3.0/.git-blame-ignore-revs +2 -0
  2. qiclib-2.3.0/.gitignore +181 -0
  3. qiclib-2.3.0/.gitlab-ci.yml +154 -0
  4. qiclib-2.3.0/.gitmodules +3 -0
  5. qiclib-2.3.0/.pre-commit-config.yaml +16 -0
  6. qiclib-2.3.0/.pylintrc +13 -0
  7. qiclib-2.3.0/.python-version +1 -0
  8. qiclib-2.3.0/.vscode/extensions.json +13 -0
  9. qiclib-2.3.0/.vscode/settings.json +15 -0
  10. qiclib-2.3.0/COPYING +674 -0
  11. qiclib-2.3.0/PKG-INFO +975 -0
  12. qiclib-2.3.0/README.md +273 -0
  13. qiclib-2.3.0/docs/Makefile +25 -0
  14. qiclib-2.3.0/docs/_templates/module.rst_t +8 -0
  15. qiclib-2.3.0/docs/_templates/package.rst_t +57 -0
  16. qiclib-2.3.0/docs/_templates/toc.rst_t +7 -0
  17. qiclib-2.3.0/docs/assets/QiCode_Tutorial.pdf +0 -0
  18. qiclib-2.3.0/docs/conf.py +60 -0
  19. qiclib-2.3.0/docs/experiments.rst +68 -0
  20. qiclib-2.3.0/docs/getting_started.rst +86 -0
  21. qiclib-2.3.0/docs/index.rst +31 -0
  22. qiclib-2.3.0/docs/qi_code.rst +145 -0
  23. qiclib-2.3.0/docs/reference.rst +15 -0
  24. qiclib-2.3.0/docs/serve-doc.py +14 -0
  25. qiclib-2.3.0/docs/troubleshooting.rst +14 -0
  26. qiclib-2.3.0/examples/digital_trigger.ipynb +341 -0
  27. qiclib-2.3.0/examples/pulses/pulse_player_examples.ipynb +192 -0
  28. qiclib-2.3.0/examples/qiskit/2-qubit-quantum-algorithms/2-qubit-Deutsch Algorithm.ipynb +802 -0
  29. qiclib-2.3.0/examples/qiskit/2-qubit-quantum-algorithms/2-qubit-Gover's-Algorithm.ipynb +666 -0
  30. qiclib-2.3.0/examples/qiskit/2-qubit-quantum-algorithms/Phase Kickback.ipynb +621 -0
  31. qiclib-2.3.0/examples/qiskit/2-qubit-quantum-algorithms/Quantum Entanglement.ipynb +885 -0
  32. qiclib-2.3.0/examples/qiskit/2-qubit-quantum-algorithms/Quantum_Key_Distribution_protocol.ipynb +3583 -0
  33. qiclib-2.3.0/examples/qiskit/Running_Qiskit_circuits_on_QiController_tutorial.ipynb +1005 -0
  34. qiclib-2.3.0/examples/resonators/Resonators_Test_qiclib_2024_04_29.ipynb +249 -0
  35. qiclib-2.3.0/examples/rfdc/interfacing_with_the_directrf.ipynb +129 -0
  36. qiclib-2.3.0/examples/rfdc/interfacing_with_the_rfdc.ipynb +306 -0
  37. qiclib-2.3.0/pyproject.toml +124 -0
  38. qiclib-2.3.0/ruff.toml +28 -0
  39. qiclib-2.3.0/src/qiclib/__init__.py +41 -0
  40. qiclib-2.3.0/src/qiclib/_version.py +34 -0
  41. qiclib-2.3.0/src/qiclib/code/__init__.py +98 -0
  42. qiclib-2.3.0/src/qiclib/code/analysis/__init__.py +15 -0
  43. qiclib-2.3.0/src/qiclib/code/analysis/qi_insert_mem_parameters.py +896 -0
  44. qiclib-2.3.0/src/qiclib/code/qi_command.py +929 -0
  45. qiclib-2.3.0/src/qiclib/code/qi_dataflow.py +677 -0
  46. qiclib-2.3.0/src/qiclib/code/qi_jobs.py +1421 -0
  47. qiclib-2.3.0/src/qiclib/code/qi_prog_builder.py +1360 -0
  48. qiclib-2.3.0/src/qiclib/code/qi_pulse.py +362 -0
  49. qiclib-2.3.0/src/qiclib/code/qi_result.py +44 -0
  50. qiclib-2.3.0/src/qiclib/code/qi_sample.py +195 -0
  51. qiclib-2.3.0/src/qiclib/code/qi_seq_instructions.py +1086 -0
  52. qiclib-2.3.0/src/qiclib/code/qi_sequencer.py +1363 -0
  53. qiclib-2.3.0/src/qiclib/code/qi_simulate.py +157 -0
  54. qiclib-2.3.0/src/qiclib/code/qi_types.py +707 -0
  55. qiclib-2.3.0/src/qiclib/code/qi_util.py +65 -0
  56. qiclib-2.3.0/src/qiclib/code/qi_var_definitions.py +727 -0
  57. qiclib-2.3.0/src/qiclib/code/qi_visitor.py +605 -0
  58. qiclib-2.3.0/src/qiclib/coding/__init__.py +15 -0
  59. qiclib-2.3.0/src/qiclib/coding/sequencercode.py +696 -0
  60. qiclib-2.3.0/src/qiclib/experiment/SecondToneSweepR5.py +78 -0
  61. qiclib-2.3.0/src/qiclib/experiment/__init__.py +28 -0
  62. qiclib-2.3.0/src/qiclib/experiment/active_cooling_t1.py +129 -0
  63. qiclib-2.3.0/src/qiclib/experiment/active_reset_t1.py +53 -0
  64. qiclib-2.3.0/src/qiclib/experiment/base.py +1082 -0
  65. qiclib-2.3.0/src/qiclib/experiment/benchmarking.py +184 -0
  66. qiclib-2.3.0/src/qiclib/experiment/collection.py +62 -0
  67. qiclib-2.3.0/src/qiclib/experiment/correlation_calibration.py +93 -0
  68. qiclib-2.3.0/src/qiclib/experiment/correlation_conv_all.py +128 -0
  69. qiclib-2.3.0/src/qiclib/experiment/g1_correlation.py +87 -0
  70. qiclib-2.3.0/src/qiclib/experiment/g1_correlation_conv.py +75 -0
  71. qiclib-2.3.0/src/qiclib/experiment/g1_meas_setuptest.py +161 -0
  72. qiclib-2.3.0/src/qiclib/experiment/g2_correlation.py +89 -0
  73. qiclib-2.3.0/src/qiclib/experiment/g2_correlation_conv.py +78 -0
  74. qiclib-2.3.0/src/qiclib/experiment/gx_correlation_base.py +175 -0
  75. qiclib-2.3.0/src/qiclib/experiment/inverted_t1.py +50 -0
  76. qiclib-2.3.0/src/qiclib/experiment/iq_clouds_multi_qfb.py +57 -0
  77. qiclib-2.3.0/src/qiclib/experiment/iq_clouds_qfb_decay.py +51 -0
  78. qiclib-2.3.0/src/qiclib/experiment/iq_clouds_ramsey.py +51 -0
  79. qiclib-2.3.0/src/qiclib/experiment/iq_clouds_ringup.py +75 -0
  80. qiclib-2.3.0/src/qiclib/experiment/multi_pi_t1.py +65 -0
  81. qiclib-2.3.0/src/qiclib/experiment/qicode/__init__.py +15 -0
  82. qiclib-2.3.0/src/qiclib/experiment/qicode/base.py +813 -0
  83. qiclib-2.3.0/src/qiclib/experiment/qicode/collection.py +272 -0
  84. qiclib-2.3.0/src/qiclib/experiment/qicode/data_handler.py +259 -0
  85. qiclib-2.3.0/src/qiclib/experiment/qicode/data_provider.py +132 -0
  86. qiclib-2.3.0/src/qiclib/experiment/qicode/fit_utils.py +62 -0
  87. qiclib-2.3.0/src/qiclib/experiment/qicode/init_readout.py +493 -0
  88. qiclib-2.3.0/src/qiclib/experiment/qicode/qubit_times.py +244 -0
  89. qiclib-2.3.0/src/qiclib/experiment/qicode/qubit_times_qkit.py +292 -0
  90. qiclib-2.3.0/src/qiclib/experiment/qkit_virtual_awg.py +550 -0
  91. qiclib-2.3.0/src/qiclib/experiment/quantum_jumps_long.py +89 -0
  92. qiclib-2.3.0/src/qiclib/experiment/rabi_R5PG.py +83 -0
  93. qiclib-2.3.0/src/qiclib/experiment/rabi_drag.py +100 -0
  94. qiclib-2.3.0/src/qiclib/experiment/rabi_short.py +120 -0
  95. qiclib-2.3.0/src/qiclib/experiment/readout_spectr.py +97 -0
  96. qiclib-2.3.0/src/qiclib/experiment/resonator_ringup.py +106 -0
  97. qiclib-2.3.0/src/qiclib/experiment/resonator_ringup_window.py +80 -0
  98. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/__init__.py +37 -0
  99. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/active_cooling.c +74 -0
  100. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/average_trace.c +96 -0
  101. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/base_experiment_task.c +102 -0
  102. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/__init__.py +15 -0
  103. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/calibration.c +165 -0
  104. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/correlation_conv.c +414 -0
  105. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/g1_correlation.c +151 -0
  106. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/g1_correlation_conv.c +236 -0
  107. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/g1_meas_setuptest.c +135 -0
  108. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/g2_correlation.c +151 -0
  109. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/correlation/g2_correlation_conv.c +251 -0
  110. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/interleaved.c +139 -0
  111. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/interleaved_multi.c +176 -0
  112. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/iq_clouds.c +59 -0
  113. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/optimize_rec_offset.c +90 -0
  114. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qicode/__init__.py +15 -0
  115. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qicode/averaging.c +145 -0
  116. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qicode/iq_collect.c +138 -0
  117. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qicode/state_collect.c +123 -0
  118. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qicode/state_count.c +115 -0
  119. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qicode/timetrace.c +152 -0
  120. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/quantum_jumps.c +75 -0
  121. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/quantum_jumps_multi.c +151 -0
  122. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/quantum_jumps_new.c +101 -0
  123. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/qubit_freq_sweep_task.c +83 -0
  124. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/rabi_r5.c +89 -0
  125. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/__init__.py +15 -0
  126. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/copy_test.c +88 -0
  127. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/empty.c +22 -0
  128. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/shift_test.c +50 -0
  129. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/stream_test.c +57 -0
  130. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/test_databox.c +35 -0
  131. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/time_test_code.c +651 -0
  132. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/timing_test.c +418 -0
  133. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/timing_test_axi.c +125 -0
  134. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/test/timing_test_single.c +60 -0
  135. qiclib-2.3.0/src/qiclib/experiment/rtos_tasks/trace_fft.c +949 -0
  136. qiclib-2.3.0/src/qiclib/experiment/stream_test.py +70 -0
  137. qiclib-2.3.0/src/qiclib/hardware/__init__.py +56 -0
  138. qiclib-2.3.0/src/qiclib/hardware/controller.py +478 -0
  139. qiclib-2.3.0/src/qiclib/hardware/digital_trigger.py +193 -0
  140. qiclib-2.3.0/src/qiclib/hardware/direct_rf.py +188 -0
  141. qiclib-2.3.0/src/qiclib/hardware/pimc.py +143 -0
  142. qiclib-2.3.0/src/qiclib/hardware/platform_component.py +158 -0
  143. qiclib-2.3.0/src/qiclib/hardware/pulse_player.py +147 -0
  144. qiclib-2.3.0/src/qiclib/hardware/pulsegen.py +714 -0
  145. qiclib-2.3.0/src/qiclib/hardware/recording.py +804 -0
  146. qiclib-2.3.0/src/qiclib/hardware/rfdc.py +497 -0
  147. qiclib-2.3.0/src/qiclib/hardware/sequencer.py +239 -0
  148. qiclib-2.3.0/src/qiclib/hardware/servicehub.py +87 -0
  149. qiclib-2.3.0/src/qiclib/hardware/storage.py +307 -0
  150. qiclib-2.3.0/src/qiclib/hardware/taskrunner.py +334 -0
  151. qiclib-2.3.0/src/qiclib/hardware/unitcell.py +464 -0
  152. qiclib-2.3.0/src/qiclib/hardware/vna.py +377 -0
  153. qiclib-2.3.0/src/qiclib/measurement/__init__.py +15 -0
  154. qiclib-2.3.0/src/qiclib/measurement/iq_fit.py +462 -0
  155. qiclib-2.3.0/src/qiclib/measurement/iq_plot.py +737 -0
  156. qiclib-2.3.0/src/qiclib/measurement/measure_iq.py +156 -0
  157. qiclib-2.3.0/src/qiclib/measurement/resonators.py +795 -0
  158. qiclib-2.3.0/src/qiclib/packages/__init__.py +15 -0
  159. qiclib-2.3.0/src/qiclib/packages/constants.py +35 -0
  160. qiclib-2.3.0/src/qiclib/packages/grpc/.gitignore +4 -0
  161. qiclib-2.3.0/src/qiclib/packages/grpc/__init__.py +27 -0
  162. qiclib-2.3.0/src/qiclib/packages/grpc/ad5672_5684_pb2.py +40 -0
  163. qiclib-2.3.0/src/qiclib/packages/grpc/ad5672_5684_pb2.pyi +37 -0
  164. qiclib-2.3.0/src/qiclib/packages/grpc/ad5672_5684_pb2_grpc.py +108 -0
  165. qiclib-2.3.0/src/qiclib/packages/grpc/ad5675_pb2.py +42 -0
  166. qiclib-2.3.0/src/qiclib/packages/grpc/ad5675_pb2.pyi +43 -0
  167. qiclib-2.3.0/src/qiclib/packages/grpc/ad5675_pb2_grpc.py +157 -0
  168. qiclib-2.3.0/src/qiclib/packages/grpc/ad7291_pb2.py +40 -0
  169. qiclib-2.3.0/src/qiclib/packages/grpc/ad7291_pb2.pyi +33 -0
  170. qiclib-2.3.0/src/qiclib/packages/grpc/ad7291_pb2_grpc.py +200 -0
  171. qiclib-2.3.0/src/qiclib/packages/grpc/b2b_controller_pb2.py +38 -0
  172. qiclib-2.3.0/src/qiclib/packages/grpc/b2b_controller_pb2.pyi +6 -0
  173. qiclib-2.3.0/src/qiclib/packages/grpc/b2b_controller_pb2_grpc.py +193 -0
  174. qiclib-2.3.0/src/qiclib/packages/grpc/bench_pb2.py +59 -0
  175. qiclib-2.3.0/src/qiclib/packages/grpc/bench_pb2.pyi +84 -0
  176. qiclib-2.3.0/src/qiclib/packages/grpc/bench_pb2_grpc.py +1227 -0
  177. qiclib-2.3.0/src/qiclib/packages/grpc/bidirectionalmixer_pb2.py +37 -0
  178. qiclib-2.3.0/src/qiclib/packages/grpc/bidirectionalmixer_pb2.pyi +5 -0
  179. qiclib-2.3.0/src/qiclib/packages/grpc/bidirectionalmixer_pb2_grpc.py +150 -0
  180. qiclib-2.3.0/src/qiclib/packages/grpc/capreadoutchain_pb2.py +57 -0
  181. qiclib-2.3.0/src/qiclib/packages/grpc/capreadoutchain_pb2.pyi +104 -0
  182. qiclib-2.3.0/src/qiclib/packages/grpc/capreadoutchain_pb2_grpc.py +274 -0
  183. qiclib-2.3.0/src/qiclib/packages/grpc/chip_info_pb2.py +41 -0
  184. qiclib-2.3.0/src/qiclib/packages/grpc/chip_info_pb2.pyi +21 -0
  185. qiclib-2.3.0/src/qiclib/packages/grpc/chip_info_pb2_grpc.py +104 -0
  186. qiclib-2.3.0/src/qiclib/packages/grpc/datatypes_pb2.py +70 -0
  187. qiclib-2.3.0/src/qiclib/packages/grpc/datatypes_pb2.pyi +130 -0
  188. qiclib-2.3.0/src/qiclib/packages/grpc/datatypes_pb2_grpc.py +24 -0
  189. qiclib-2.3.0/src/qiclib/packages/grpc/detector_emulator_pb2.py +37 -0
  190. qiclib-2.3.0/src/qiclib/packages/grpc/detector_emulator_pb2.pyi +5 -0
  191. qiclib-2.3.0/src/qiclib/packages/grpc/detector_emulator_pb2_grpc.py +613 -0
  192. qiclib-2.3.0/src/qiclib/packages/grpc/digital_trigger_pb2.py +51 -0
  193. qiclib-2.3.0/src/qiclib/packages/grpc/digital_trigger_pb2.pyi +66 -0
  194. qiclib-2.3.0/src/qiclib/packages/grpc/digital_trigger_pb2_grpc.py +356 -0
  195. qiclib-2.3.0/src/qiclib/packages/grpc/direct_rf_pb2.py +58 -0
  196. qiclib-2.3.0/src/qiclib/packages/grpc/direct_rf_pb2.pyi +93 -0
  197. qiclib-2.3.0/src/qiclib/packages/grpc/direct_rf_pb2_grpc.py +650 -0
  198. qiclib-2.3.0/src/qiclib/packages/grpc/dma_pb2.py +51 -0
  199. qiclib-2.3.0/src/qiclib/packages/grpc/dma_pb2.pyi +72 -0
  200. qiclib-2.3.0/src/qiclib/packages/grpc/dma_pb2_grpc.py +495 -0
  201. qiclib-2.3.0/src/qiclib/packages/grpc/dmacontroller_pb2.py +51 -0
  202. qiclib-2.3.0/src/qiclib/packages/grpc/dmacontroller_pb2.pyi +84 -0
  203. qiclib-2.3.0/src/qiclib/packages/grpc/dmacontroller_pb2_grpc.py +535 -0
  204. qiclib-2.3.0/src/qiclib/packages/grpc/erasynth_pb2.py +37 -0
  205. qiclib-2.3.0/src/qiclib/packages/grpc/erasynth_pb2.pyi +5 -0
  206. qiclib-2.3.0/src/qiclib/packages/grpc/erasynth_pb2_grpc.py +242 -0
  207. qiclib-2.3.0/src/qiclib/packages/grpc/eventdetection_pb2.py +47 -0
  208. qiclib-2.3.0/src/qiclib/packages/grpc/eventdetection_pb2.pyi +50 -0
  209. qiclib-2.3.0/src/qiclib/packages/grpc/eventdetection_pb2_grpc.py +1267 -0
  210. qiclib-2.3.0/src/qiclib/packages/grpc/faultrec_pb2.py +45 -0
  211. qiclib-2.3.0/src/qiclib/packages/grpc/faultrec_pb2.pyi +36 -0
  212. qiclib-2.3.0/src/qiclib/packages/grpc/faultrec_pb2_grpc.py +485 -0
  213. qiclib-2.3.0/src/qiclib/packages/grpc/firmwareupdate_pb2.py +47 -0
  214. qiclib-2.3.0/src/qiclib/packages/grpc/firmwareupdate_pb2.pyi +48 -0
  215. qiclib-2.3.0/src/qiclib/packages/grpc/firmwareupdate_pb2_grpc.py +227 -0
  216. qiclib-2.3.0/src/qiclib/packages/grpc/fluxramp_generator_pb2.py +39 -0
  217. qiclib-2.3.0/src/qiclib/packages/grpc/fluxramp_generator_pb2.pyi +19 -0
  218. qiclib-2.3.0/src/qiclib/packages/grpc/fluxramp_generator_pb2_grpc.py +541 -0
  219. qiclib-2.3.0/src/qiclib/packages/grpc/fluxrampdemod_pb2.py +57 -0
  220. qiclib-2.3.0/src/qiclib/packages/grpc/fluxrampdemod_pb2.pyi +104 -0
  221. qiclib-2.3.0/src/qiclib/packages/grpc/fluxrampdemod_pb2_grpc.py +2211 -0
  222. qiclib-2.3.0/src/qiclib/packages/grpc/healthmon_pb2.py +37 -0
  223. qiclib-2.3.0/src/qiclib/packages/grpc/healthmon_pb2.pyi +5 -0
  224. qiclib-2.3.0/src/qiclib/packages/grpc/healthmon_pb2_grpc.py +97 -0
  225. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/.git +1 -0
  226. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/.gitignore +6 -0
  227. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/.vscode/extensions.json +6 -0
  228. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/CMakeLists.txt +68 -0
  229. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/README.md +63 -0
  230. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/ad5672_5684.proto +30 -0
  231. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/ad5675.proto +41 -0
  232. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/ad7291.proto +36 -0
  233. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/b2b_controller.proto +17 -0
  234. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/bench.proto +105 -0
  235. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/bidirectionalmixer.proto +24 -0
  236. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/build_protos.py +122 -0
  237. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/capreadoutchain.proto +83 -0
  238. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/chip_info.proto +26 -0
  239. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/datatypes.proto +59 -0
  240. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/detector_emulator.proto +23 -0
  241. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/digital_trigger.proto +56 -0
  242. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/direct_rf.proto +139 -0
  243. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/dma.proto +171 -0
  244. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/dmacontroller.proto +175 -0
  245. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/doc/Doxyfile +2495 -0
  246. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/doc/clean_docs +3 -0
  247. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/doc/create_docs +5 -0
  248. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/doc/scripts/proto2cpp.py +344 -0
  249. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/erasynth.proto +31 -0
  250. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/eventdetection.proto +268 -0
  251. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/examples/README.md +4 -0
  252. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/examples/qic-dynamic-routing.ipynb +435 -0
  253. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/faultrec.proto +62 -0
  254. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/firmwareupdate.proto +29 -0
  255. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/fluxramp_generator.proto +99 -0
  256. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/fluxrampdemod.proto +548 -0
  257. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/healthmon.proto +9 -0
  258. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/lmk04208.proto +32 -0
  259. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/lmx2594.proto +99 -0
  260. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/ltc2000_cfg.proto +63 -0
  261. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/ltc5586.proto +83 -0
  262. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/matrixvectormultiplier.proto +117 -0
  263. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/mdnspublisher.proto +36 -0
  264. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/memmap.proto +53 -0
  265. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/multichannelddc.proto +108 -0
  266. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/multilateration.proto +77 -0
  267. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/oscilloscope.proto +222 -0
  268. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/pimc.proto +223 -0
  269. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/pp_channelizer.proto +26 -0
  270. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/pulse_player.proto +66 -0
  271. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/pulsegen.proto +83 -0
  272. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/qic_storage.proto +124 -0
  273. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/qic_unitcell.proto +249 -0
  274. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/rampgen.proto +87 -0
  275. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/recording.proto +182 -0
  276. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/rfdc.proto +178 -0
  277. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/rfpcbsuper.proto +128 -0
  278. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/sequencer.proto +64 -0
  279. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/servicehubcontrol.proto +171 -0
  280. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/signalamplifier.proto +34 -0
  281. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/spectrum_analyzer.proto +146 -0
  282. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/stimulation.proto +276 -0
  283. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/sysmon.proto +121 -0
  284. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/taskrunner.proto +100 -0
  285. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/tdmchannelmultipick.proto +27 -0
  286. qiclib-2.3.0/src/qiclib/packages/grpc/ipe_servicehub_protos/vna.proto +309 -0
  287. qiclib-2.3.0/src/qiclib/packages/grpc/lmk04208_pb2.py +40 -0
  288. qiclib-2.3.0/src/qiclib/packages/grpc/lmk04208_pb2.pyi +35 -0
  289. qiclib-2.3.0/src/qiclib/packages/grpc/lmk04208_pb2_grpc.py +284 -0
  290. qiclib-2.3.0/src/qiclib/packages/grpc/lmx2594_pb2.py +42 -0
  291. qiclib-2.3.0/src/qiclib/packages/grpc/lmx2594_pb2.pyi +44 -0
  292. qiclib-2.3.0/src/qiclib/packages/grpc/lmx2594_pb2_grpc.py +2771 -0
  293. qiclib-2.3.0/src/qiclib/packages/grpc/ltc2000_cfg_pb2.py +46 -0
  294. qiclib-2.3.0/src/qiclib/packages/grpc/ltc2000_cfg_pb2.pyi +58 -0
  295. qiclib-2.3.0/src/qiclib/packages/grpc/ltc2000_cfg_pb2_grpc.py +287 -0
  296. qiclib-2.3.0/src/qiclib/packages/grpc/ltc5586_pb2.py +44 -0
  297. qiclib-2.3.0/src/qiclib/packages/grpc/ltc5586_pb2.pyi +53 -0
  298. qiclib-2.3.0/src/qiclib/packages/grpc/ltc5586_pb2_grpc.py +1995 -0
  299. qiclib-2.3.0/src/qiclib/packages/grpc/matrixvectormultiplier_pb2.py +45 -0
  300. qiclib-2.3.0/src/qiclib/packages/grpc/matrixvectormultiplier_pb2.pyi +34 -0
  301. qiclib-2.3.0/src/qiclib/packages/grpc/matrixvectormultiplier_pb2_grpc.py +509 -0
  302. qiclib-2.3.0/src/qiclib/packages/grpc/mdnspublisher_pb2.py +41 -0
  303. qiclib-2.3.0/src/qiclib/packages/grpc/mdnspublisher_pb2.pyi +28 -0
  304. qiclib-2.3.0/src/qiclib/packages/grpc/mdnspublisher_pb2_grpc.py +277 -0
  305. qiclib-2.3.0/src/qiclib/packages/grpc/memmap_pb2.py +50 -0
  306. qiclib-2.3.0/src/qiclib/packages/grpc/memmap_pb2.pyi +85 -0
  307. qiclib-2.3.0/src/qiclib/packages/grpc/memmap_pb2_grpc.py +226 -0
  308. qiclib-2.3.0/src/qiclib/packages/grpc/multichannelddc_pb2.py +43 -0
  309. qiclib-2.3.0/src/qiclib/packages/grpc/multichannelddc_pb2.pyi +34 -0
  310. qiclib-2.3.0/src/qiclib/packages/grpc/multichannelddc_pb2_grpc.py +461 -0
  311. qiclib-2.3.0/src/qiclib/packages/grpc/multilateration_pb2.py +47 -0
  312. qiclib-2.3.0/src/qiclib/packages/grpc/multilateration_pb2.pyi +54 -0
  313. qiclib-2.3.0/src/qiclib/packages/grpc/multilateration_pb2_grpc.py +1092 -0
  314. qiclib-2.3.0/src/qiclib/packages/grpc/oscilloscope_pb2.py +65 -0
  315. qiclib-2.3.0/src/qiclib/packages/grpc/oscilloscope_pb2.pyi +125 -0
  316. qiclib-2.3.0/src/qiclib/packages/grpc/oscilloscope_pb2_grpc.py +847 -0
  317. qiclib-2.3.0/src/qiclib/packages/grpc/pimc_pb2.py +45 -0
  318. qiclib-2.3.0/src/qiclib/packages/grpc/pimc_pb2.pyi +59 -0
  319. qiclib-2.3.0/src/qiclib/packages/grpc/pimc_pb2_grpc.py +1037 -0
  320. qiclib-2.3.0/src/qiclib/packages/grpc/pp_channelizer_pb2.py +39 -0
  321. qiclib-2.3.0/src/qiclib/packages/grpc/pp_channelizer_pb2.pyi +26 -0
  322. qiclib-2.3.0/src/qiclib/packages/grpc/pp_channelizer_pb2_grpc.py +103 -0
  323. qiclib-2.3.0/src/qiclib/packages/grpc/pulse_player_pb2.py +46 -0
  324. qiclib-2.3.0/src/qiclib/packages/grpc/pulse_player_pb2.pyi +58 -0
  325. qiclib-2.3.0/src/qiclib/packages/grpc/pulse_player_pb2_grpc.py +413 -0
  326. qiclib-2.3.0/src/qiclib/packages/grpc/pulsegen_pb2.py +55 -0
  327. qiclib-2.3.0/src/qiclib/packages/grpc/pulsegen_pb2.pyi +90 -0
  328. qiclib-2.3.0/src/qiclib/packages/grpc/pulsegen_pb2_grpc.py +872 -0
  329. qiclib-2.3.0/src/qiclib/packages/grpc/qic_storage_pb2.py +71 -0
  330. qiclib-2.3.0/src/qiclib/packages/grpc/qic_storage_pb2.pyi +166 -0
  331. qiclib-2.3.0/src/qiclib/packages/grpc/qic_storage_pb2_grpc.py +915 -0
  332. qiclib-2.3.0/src/qiclib/packages/grpc/qic_unitcell_pb2.py +103 -0
  333. qiclib-2.3.0/src/qiclib/packages/grpc/qic_unitcell_pb2.pyi +284 -0
  334. qiclib-2.3.0/src/qiclib/packages/grpc/qic_unitcell_pb2_grpc.py +1026 -0
  335. qiclib-2.3.0/src/qiclib/packages/grpc/rampgen_pb2.py +39 -0
  336. qiclib-2.3.0/src/qiclib/packages/grpc/rampgen_pb2.pyi +19 -0
  337. qiclib-2.3.0/src/qiclib/packages/grpc/rampgen_pb2_grpc.py +449 -0
  338. qiclib-2.3.0/src/qiclib/packages/grpc/recording_pb2.py +79 -0
  339. qiclib-2.3.0/src/qiclib/packages/grpc/recording_pb2.pyi +203 -0
  340. qiclib-2.3.0/src/qiclib/packages/grpc/recording_pb2_grpc.py +1775 -0
  341. qiclib-2.3.0/src/qiclib/packages/grpc/rfdc_pb2.py +79 -0
  342. qiclib-2.3.0/src/qiclib/packages/grpc/rfdc_pb2.pyi +191 -0
  343. qiclib-2.3.0/src/qiclib/packages/grpc/rfdc_pb2_grpc.py +1356 -0
  344. qiclib-2.3.0/src/qiclib/packages/grpc/rfpcbsuper_pb2.py +52 -0
  345. qiclib-2.3.0/src/qiclib/packages/grpc/rfpcbsuper_pb2.pyi +104 -0
  346. qiclib-2.3.0/src/qiclib/packages/grpc/rfpcbsuper_pb2_grpc.py +355 -0
  347. qiclib-2.3.0/src/qiclib/packages/grpc/sequencer_pb2.py +53 -0
  348. qiclib-2.3.0/src/qiclib/packages/grpc/sequencer_pb2.pyi +82 -0
  349. qiclib-2.3.0/src/qiclib/packages/grpc/sequencer_pb2_grpc.py +872 -0
  350. qiclib-2.3.0/src/qiclib/packages/grpc/servicehubcontrol_pb2.py +61 -0
  351. qiclib-2.3.0/src/qiclib/packages/grpc/servicehubcontrol_pb2.pyi +102 -0
  352. qiclib-2.3.0/src/qiclib/packages/grpc/servicehubcontrol_pb2_grpc.py +722 -0
  353. qiclib-2.3.0/src/qiclib/packages/grpc/signalamplifier_pb2.py +37 -0
  354. qiclib-2.3.0/src/qiclib/packages/grpc/signalamplifier_pb2.pyi +5 -0
  355. qiclib-2.3.0/src/qiclib/packages/grpc/signalamplifier_pb2_grpc.py +200 -0
  356. qiclib-2.3.0/src/qiclib/packages/grpc/spectrum_analyzer_pb2.py +53 -0
  357. qiclib-2.3.0/src/qiclib/packages/grpc/spectrum_analyzer_pb2.pyi +75 -0
  358. qiclib-2.3.0/src/qiclib/packages/grpc/spectrum_analyzer_pb2_grpc.py +520 -0
  359. qiclib-2.3.0/src/qiclib/packages/grpc/stimulation_pb2.py +51 -0
  360. qiclib-2.3.0/src/qiclib/packages/grpc/stimulation_pb2.pyi +78 -0
  361. qiclib-2.3.0/src/qiclib/packages/grpc/stimulation_pb2_grpc.py +963 -0
  362. qiclib-2.3.0/src/qiclib/packages/grpc/sysmon_pb2.py +46 -0
  363. qiclib-2.3.0/src/qiclib/packages/grpc/sysmon_pb2.pyi +101 -0
  364. qiclib-2.3.0/src/qiclib/packages/grpc/sysmon_pb2_grpc.py +141 -0
  365. qiclib-2.3.0/src/qiclib/packages/grpc/taskrunner_pb2.py +59 -0
  366. qiclib-2.3.0/src/qiclib/packages/grpc/taskrunner_pb2.pyi +110 -0
  367. qiclib-2.3.0/src/qiclib/packages/grpc/taskrunner_pb2_grpc.py +787 -0
  368. qiclib-2.3.0/src/qiclib/packages/grpc/tdmchannelmultipick_pb2.py +41 -0
  369. qiclib-2.3.0/src/qiclib/packages/grpc/tdmchannelmultipick_pb2.pyi +24 -0
  370. qiclib-2.3.0/src/qiclib/packages/grpc/tdmchannelmultipick_pb2_grpc.py +146 -0
  371. qiclib-2.3.0/src/qiclib/packages/grpc/vna_pb2.py +73 -0
  372. qiclib-2.3.0/src/qiclib/packages/grpc/vna_pb2.pyi +160 -0
  373. qiclib-2.3.0/src/qiclib/packages/grpc/vna_pb2_grpc.py +1259 -0
  374. qiclib-2.3.0/src/qiclib/packages/qiskit/QiController_backend.py +440 -0
  375. qiclib-2.3.0/src/qiclib/packages/qiskit/QiController_job.py +138 -0
  376. qiclib-2.3.0/src/qiclib/packages/qiskit/QiController_provider.py +70 -0
  377. qiclib-2.3.0/src/qiclib/packages/qiskit/QiGates.py +335 -0
  378. qiclib-2.3.0/src/qiclib/packages/qiskit/__init__.py +15 -0
  379. qiclib-2.3.0/src/qiclib/packages/qkit_polyfill.py +107 -0
  380. qiclib-2.3.0/src/qiclib/packages/servicehub.py +88 -0
  381. qiclib-2.3.0/src/qiclib/packages/utility.py +219 -0
  382. qiclib-2.3.0/src/qiclib/py.typed +0 -0
  383. qiclib-2.3.0/src/qiclib/state_estimation.py +125 -0
  384. qiclib-2.3.0/tests/data/amplitude_data.npy +0 -0
  385. qiclib-2.3.0/tests/data/iq_clouds_power_sweep.dat +0 -0
  386. qiclib-2.3.0/tests/mocks/__init__.py +104 -0
  387. qiclib-2.3.0/tests/mocks/digital_trigger.py +31 -0
  388. qiclib-2.3.0/tests/mocks/pimc.py +33 -0
  389. qiclib-2.3.0/tests/mocks/pulse_gen.py +49 -0
  390. qiclib-2.3.0/tests/mocks/recording.py +67 -0
  391. qiclib-2.3.0/tests/mocks/rfdc.py +30 -0
  392. qiclib-2.3.0/tests/mocks/sequencer.py +39 -0
  393. qiclib-2.3.0/tests/mocks/servicehub_control.py +41 -0
  394. qiclib-2.3.0/tests/mocks/storage.py +22 -0
  395. qiclib-2.3.0/tests/mocks/taskrunner.py +105 -0
  396. qiclib-2.3.0/tests/mocks/unit_cell.py +66 -0
  397. qiclib-2.3.0/tests/test_calibrate_electrical_delay.py +27 -0
  398. qiclib-2.3.0/tests/test_data_handlers.py +103 -0
  399. qiclib-2.3.0/tests/test_experiments.py +100 -0
  400. qiclib-2.3.0/tests/test_files/properties_error.json +14 -0
  401. qiclib-2.3.0/tests/test_files/properties_ok.json +18 -0
  402. qiclib-2.3.0/tests/test_iq_fit.py +103 -0
  403. qiclib-2.3.0/tests/test_qi_array_types.py +153 -0
  404. qiclib-2.3.0/tests/test_qi_insert_mem_parameters.py +890 -0
  405. qiclib-2.3.0/tests/test_qi_jobs.py +1358 -0
  406. qiclib-2.3.0/tests/test_qi_prog_builder.py +2641 -0
  407. qiclib-2.3.0/tests/test_qi_pulse.py +177 -0
  408. qiclib-2.3.0/tests/test_qi_pulse_amplitude_warning.py +77 -0
  409. qiclib-2.3.0/tests/test_qi_sample.py +18 -0
  410. qiclib-2.3.0/tests/test_qi_seq_instructions.py +134 -0
  411. qiclib-2.3.0/tests/test_qi_sequencer.py +839 -0
  412. qiclib-2.3.0/tests/test_qi_types.py +443 -0
  413. qiclib-2.3.0/tests/test_qi_util.py +55 -0
  414. qiclib-2.3.0/tests/test_qi_var_definitions.py +31 -0
  415. qiclib-2.3.0/tests/test_qi_visitor.py +266 -0
  416. qiclib-2.3.0/tests/test_static_variables.py +132 -0
  417. qiclib-2.3.0/tests/test_version.py +21 -0
  418. qiclib-2.3.0/tests/test_while_integration.py +201 -0
  419. qiclib-2.3.0/tests/test_while_loop.py +237 -0
  420. qiclib-2.3.0/uv.lock +3477 -0
@@ -0,0 +1,2 @@
1
+ # Initial formatting of whole repo with black & pre-commit
2
+ de508d83934384a0ef1ad3289fc11245ffbf572d
@@ -0,0 +1,181 @@
1
+ build
2
+ dist
3
+ docs/qiclib
4
+
5
+ *.egg-info
6
+ .idea
7
+ /venv/
8
+
9
+ # Byte-compiled / optimized / DLL files
10
+ __pycache__/
11
+ *.py[cod]
12
+ *$py.class
13
+
14
+ # C extensions
15
+ *.so
16
+
17
+ # Distribution / packaging
18
+ .Python
19
+ build/
20
+ develop-eggs/
21
+ dist/
22
+ downloads/
23
+ eggs/
24
+ .eggs/
25
+ lib/
26
+ lib64/
27
+ parts/
28
+ sdist/
29
+ var/
30
+ wheels/
31
+ share/python-wheels/
32
+ *.egg-info/
33
+ .installed.cfg
34
+ *.egg
35
+ MANIFEST
36
+
37
+ # Generated documentation
38
+ docs/_build
39
+
40
+ # PyInstaller
41
+ # Usually these files are written by a python script from a template
42
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
43
+ *.manifest
44
+ *.spec
45
+
46
+ # Installer logs
47
+ pip-log.txt
48
+ pip-delete-this-directory.txt
49
+
50
+ # Unit test / coverage reports
51
+ htmlcov/
52
+ .tox/
53
+ .nox/
54
+ .coverage
55
+ .coverage.*
56
+ .cache
57
+ nosetests.xml
58
+ tests.xml
59
+ coverage.xml
60
+ *.cover
61
+ *.py,cover
62
+ .hypothesis/
63
+ .pytest_cache/
64
+ cover/
65
+
66
+ # Translations
67
+ *.mo
68
+ *.pot
69
+
70
+ # Django stuff:
71
+ *.log
72
+ local_settings.py
73
+ db.sqlite3
74
+ db.sqlite3-journal
75
+
76
+ # Flask stuff:
77
+ instance/
78
+ .webassets-cache
79
+
80
+ # Scrapy stuff:
81
+ .scrapy
82
+
83
+ # Sphinx documentation
84
+ docs/_build/
85
+
86
+ # PyBuilder
87
+ .pybuilder/
88
+ target/
89
+
90
+ # Jupyter Notebook
91
+ .ipynb_checkpoints
92
+
93
+ # IPython
94
+ profile_default/
95
+ ipython_config.py
96
+
97
+ # pyenv
98
+ # For a library or package, you might want to ignore these files since the code is
99
+ # intended to run in multiple environments; otherwise, check them in:
100
+ # .python-version
101
+
102
+ # pipenv
103
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
104
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
105
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
106
+ # install all needed dependencies.
107
+ #Pipfile.lock
108
+
109
+ # poetry
110
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
111
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
112
+ # commonly ignored for libraries.
113
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
114
+ #poetry.lock
115
+
116
+ # pdm
117
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
118
+ #pdm.lock
119
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
120
+ # in version control.
121
+ # https://pdm.fming.dev/#use-with-ide
122
+ .pdm.toml
123
+
124
+ # Dynamically generated version.py file
125
+ src/qiclib/_version.py
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # SageMath parsed files
135
+ *.sage.py
136
+
137
+ # Environments
138
+ .env
139
+ .venv
140
+ env/
141
+ venv/
142
+ ENV/
143
+ env.bak/
144
+ venv.bak/
145
+
146
+ # Spyder project settings
147
+ .spyderproject
148
+ .spyproject
149
+
150
+ # Rope project settings
151
+ .ropeproject
152
+
153
+ # mkdocs documentation
154
+ /site
155
+
156
+ # mypy
157
+ .mypy_cache/
158
+ .dmypy.json
159
+ dmypy.json
160
+
161
+ # Pyre type checker
162
+ .pyre/
163
+
164
+ # pytype static type analyzer
165
+ .pytype/
166
+
167
+ # Cython debug symbols
168
+ cython_debug/
169
+
170
+ # PyCharm
171
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
172
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
173
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
174
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
175
+ #.idea/
176
+
177
+ # Journal files
178
+ *.jou
179
+
180
+ # Local notebooks using qiclib in this
181
+ Notebooks/*
@@ -0,0 +1,154 @@
1
+ variables:
2
+ GIT_SUBMODULE_STRATEGY: recursive
3
+ GIT_SUBMODULE_FORCE_HTTPS: true
4
+ UV_VERSION: '0.9'
5
+ PYTHON_VERSION: '3.10'
6
+ BASE_LAYER: bookworm
7
+ UV_SYSTEM_PYTHON: 1
8
+ GITHUB_PUBLISH_USER: quantuminterfaceBot
9
+ GITHUB_PUBLISH_REPO: quantuminterface/qiclib
10
+
11
+ stages: [analysis, test, build, deploy]
12
+
13
+ default:
14
+ image: ghcr.io/astral-sh/uv:$UV_VERSION-python$PYTHON_VERSION-$BASE_LAYER
15
+
16
+ .base_ruff:
17
+ interruptible: true
18
+ before_script:
19
+ - export UV_TOOL_BIN_DIR=/usr/local/bin
20
+ - cd $CI_PROJECT_DIR
21
+
22
+ unit_tests:
23
+ extends: .base_ruff
24
+ stage: test
25
+ script:
26
+ - uv run pytest --junitxml tests.xml --cov=qiclib --cov-fail-under=50 --cov-report xml --cov-report term
27
+ coverage: "/TOTAL.+ ([0-9]{1,3}%)/"
28
+ artifacts:
29
+ when: always
30
+ paths:
31
+ - tests.xml
32
+ reports:
33
+ junit:
34
+ - tests.xml
35
+ coverage_report:
36
+ coverage_format: cobertura
37
+ path: coverage.xml
38
+
39
+ check_format:
40
+ extends: .base_ruff
41
+ stage: analysis
42
+ variables:
43
+ PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
44
+ cache:
45
+ paths:
46
+ - ${PRE_COMMIT_HOME}
47
+ script:
48
+ - git config --global --add safe.directory '*'
49
+ - uvx pre-commit run --all-files
50
+
51
+ check_mypy:
52
+ extends: .base_ruff
53
+ stage: analysis
54
+ script:
55
+ - uv run mypy src --junit-xml mypy.xml --install-types --non-interactive --check-untyped-defs
56
+ artifacts:
57
+ when: on_failure
58
+ paths:
59
+ - mypy.xml
60
+ reports:
61
+ junit: mypy.xml
62
+
63
+ check_ruff:
64
+ extends: .base_ruff
65
+ stage: analysis
66
+ script:
67
+ - uv run ruff check --output-format junit > ruff.xml
68
+ artifacts:
69
+ when: on_failure
70
+ paths:
71
+ - ruff.xml
72
+ reports:
73
+ junit: ruff.xml
74
+
75
+ pylint:
76
+ extends: .base_ruff
77
+ stage: analysis
78
+ before_script:
79
+ - mkdir -p public/badges
80
+ - echo undefined > public/badges/$CI_JOB_NAME.score
81
+ script:
82
+ - uv run pylint --exit-zero --output-format=text src | tee /tmp/pylint.txt
83
+ - sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' /tmp/pylint.txt > public/badges/$CI_JOB_NAME.score
84
+ - uv run --with pylint-gitlab pylint --exit-zero --output-format=pylint_gitlab.GitlabCodeClimateReporter src > codeclimate.json
85
+ after_script:
86
+ - uvx anybadge --overwrite --label $CI_JOB_NAME --value=$(cat public/badges/$CI_JOB_NAME.score) --file=public/badges/$CI_JOB_NAME.svg 4=red 6=orange 8=yellow 10=green
87
+ - |
88
+ echo "Your score is: $(cat public/badges/$CI_JOB_NAME.score)"
89
+ artifacts:
90
+ paths:
91
+ - public
92
+ reports:
93
+ codequality: codeclimate.json
94
+ when: always
95
+
96
+ build_project:
97
+ extends: .base_ruff
98
+ stage: build
99
+ script:
100
+ - uv build
101
+ - uvx twine check dist/*
102
+ artifacts:
103
+ paths:
104
+ - dist/
105
+ when: on_success
106
+
107
+ mirror_to_github:
108
+ stage: deploy
109
+ rules:
110
+ # Run only for tags matching semver like v1.2.3, v2.0.0-rc.1, v1.0.0+build123, etc.
111
+ - if: '$CI_COMMIT_TAG =~ /^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/'
112
+ script:
113
+ - VERSION="$CI_COMMIT_TAG"
114
+ - echo "Preparing release $VERSION for GitHub mirror"
115
+
116
+ # Prepare a clean directory with the repository contents
117
+ - mkdir ../mirror
118
+ - git archive "$VERSION" | tar -x -C ../mirror
119
+ - cd ../mirror
120
+ - git init --initial-branch=main
121
+
122
+ # Git Identity
123
+ - git config user.email "quantuminterface@ipe.kit.edu"
124
+ - git config user.name "Quantuminterface Bot"
125
+
126
+ # Pull existing history from GitHub
127
+ - git remote add origin "https://${GITHUB_PUBLISH_USER}:${GITHUB_PUBLISH_TOKEN}@github.com/${GITHUB_PUBLISH_REPO}.git"
128
+ - git fetch origin main
129
+ - git checkout -B main
130
+ - git reset --soft origin/main
131
+
132
+ # Commit the new release snapshot
133
+ - git add -A
134
+ - git commit -m "Release $VERSION"
135
+
136
+ # Tag and push both branch and tag
137
+ - git tag "$VERSION"
138
+ - git push origin main
139
+ - git push origin "$VERSION"
140
+
141
+ publish_to_pypi:
142
+ stage: deploy
143
+ needs:
144
+ - build_project
145
+ rules:
146
+ - if: '$CI_COMMIT_TAG =~ /^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/'
147
+ script:
148
+ - echo "Publishing version $CI_COMMIT_TAG to PyPI"
149
+
150
+ # Build the wheel and sdist
151
+ - uv build
152
+
153
+ # Publish to PyPI
154
+ - uv publish --token "$PYPI_PUBLISH_TOKEN"
@@ -0,0 +1,3 @@
1
+ [submodule "src/qiclib/packages/grpc/ipe_servicehub_protos"]
2
+ path = src/qiclib/packages/grpc/ipe_servicehub_protos
3
+ url = ../ipe_servicehub_protos.git
@@ -0,0 +1,16 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v5.0.0
4
+ hooks:
5
+ - id: check-yaml
6
+ - id: end-of-file-fixer
7
+ - id: trailing-whitespace
8
+ - repo: https://github.com/astral-sh/ruff-pre-commit
9
+ rev: v0.11.3
10
+ hooks:
11
+ # Run the linter.
12
+ - id: ruff
13
+ types_or: [ python, pyi, jupyter ]
14
+ args: [ --fix ]
15
+ # Run the formatter.
16
+ - id: ruff-format
qiclib-2.3.0/.pylintrc ADDED
@@ -0,0 +1,13 @@
1
+ [MAIN]
2
+ ignore-paths = src/qiclib/packages/grpc/
3
+ py-version = 3.6
4
+ fail-under = 8.0
5
+
6
+ [FORMAT]
7
+ max-line-length = 120
8
+
9
+ [MESSAGES CONTROL]
10
+ disable=no-else-return,no-else-continue
11
+
12
+ [TYPECHECK]
13
+ ignored-modules=scipy.special
@@ -0,0 +1 @@
1
+ 3.10
@@ -0,0 +1,13 @@
1
+ {
2
+ "recommendations": [
3
+ "charliermarsh.ruff",
4
+ "ms-python.python",
5
+ "ms-python.debugpy",
6
+ "tamasfe.even-better-toml",
7
+ "ms-toolsai.jupyter",
8
+ "donjayamanne.vscode-default-python-kernel",
9
+ "GitLab.gitlab-workflow",
10
+ "redhat.vscode-yaml",
11
+ "zxh404.vscode-proto3"
12
+ ]
13
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "editor.formatOnSave": true,
3
+ "editor.detectIndentation": false,
4
+ "editor.tabSize": 4,
5
+ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
6
+ "python.analysis.autoSearchPaths": true,
7
+ "python.analysis.extraPaths": [
8
+ "${workspaceFolder}"
9
+ ],
10
+ "python.testing.pytestEnabled": true,
11
+ "python.testing.unittestEnabled": false,
12
+ "python.testing.cwd": "${workspaceFolder}/tests",
13
+ "python.testing.pytestPath": "${workspaceFolder}/.venv/bin/pytest",
14
+ "python.testing.autoTestDiscoverOnSaveEnabled": true
15
+ }