luna-quantum 1.0.8rc2__cp314-cp314-macosx_10_12_x86_64.whl

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.

Potentially problematic release.


This version of luna-quantum might be problematic. Click here for more details.

Files changed (264) hide show
  1. luna_quantum/__init__.py +121 -0
  2. luna_quantum/__init__.pyi +85 -0
  3. luna_quantum/_core.cpython-314-darwin.so +0 -0
  4. luna_quantum/_core.pyi +4185 -0
  5. luna_quantum/algorithms/__init__.py +1 -0
  6. luna_quantum/aqm_overwrites/__init__.py +3 -0
  7. luna_quantum/aqm_overwrites/model.py +184 -0
  8. luna_quantum/backends/__init__.py +1 -0
  9. luna_quantum/client/__init__.py +0 -0
  10. luna_quantum/client/controllers/__init__.py +4 -0
  11. luna_quantum/client/controllers/luna_http_client.py +37 -0
  12. luna_quantum/client/controllers/luna_platform_client.py +256 -0
  13. luna_quantum/client/controllers/luna_q.py +67 -0
  14. luna_quantum/client/controllers/luna_solve.py +129 -0
  15. luna_quantum/client/error/__init__.py +0 -0
  16. luna_quantum/client/error/luna_api_key_invalid_error.py +10 -0
  17. luna_quantum/client/error/luna_api_key_missing_error.py +10 -0
  18. luna_quantum/client/error/luna_error.py +2 -0
  19. luna_quantum/client/error/luna_server_error.py +20 -0
  20. luna_quantum/client/error/timeout_error.py +12 -0
  21. luna_quantum/client/error/transformation_error.py +18 -0
  22. luna_quantum/client/error/utils/__init__.py +0 -0
  23. luna_quantum/client/error/utils/http_error_utils.py +112 -0
  24. luna_quantum/client/interfaces/__init__.py +4 -0
  25. luna_quantum/client/interfaces/clients/__init__.py +25 -0
  26. luna_quantum/client/interfaces/clients/circuit_rest_client_i.py +68 -0
  27. luna_quantum/client/interfaces/clients/info_rest_client_i.py +53 -0
  28. luna_quantum/client/interfaces/clients/model_rest_client_i.py +139 -0
  29. luna_quantum/client/interfaces/clients/qpu_token_rest_client_i.py +364 -0
  30. luna_quantum/client/interfaces/clients/rest_client_i.py +21 -0
  31. luna_quantum/client/interfaces/clients/solve_job_rest_client_i.py +201 -0
  32. luna_quantum/client/interfaces/clients/users_rest_client_i.py +29 -0
  33. luna_quantum/client/interfaces/services/__init__.py +0 -0
  34. luna_quantum/client/interfaces/services/luna_q_i.py +34 -0
  35. luna_quantum/client/interfaces/services/luna_solve_i.py +72 -0
  36. luna_quantum/client/interfaces/services/service_i.py +56 -0
  37. luna_quantum/client/rest_client/__init__.py +15 -0
  38. luna_quantum/client/rest_client/circuit_rest_client.py +107 -0
  39. luna_quantum/client/rest_client/info_rest_client.py +74 -0
  40. luna_quantum/client/rest_client/model_rest_client.py +216 -0
  41. luna_quantum/client/rest_client/qpu_token_rest_client.py +508 -0
  42. luna_quantum/client/rest_client/solve_job_rest_client.py +286 -0
  43. luna_quantum/client/rest_client/users_rest_client.py +35 -0
  44. luna_quantum/client/schemas/__init__.py +26 -0
  45. luna_quantum/client/schemas/circuit.py +48 -0
  46. luna_quantum/client/schemas/create/__init__.py +15 -0
  47. luna_quantum/client/schemas/create/circuit.py +30 -0
  48. luna_quantum/client/schemas/create/optimization.py +39 -0
  49. luna_quantum/client/schemas/create/qpu_token.py +22 -0
  50. luna_quantum/client/schemas/create/qpu_token_time_quota.py +35 -0
  51. luna_quantum/client/schemas/create/qpu_token_time_quota_update.py +24 -0
  52. luna_quantum/client/schemas/create/qubo.py +19 -0
  53. luna_quantum/client/schemas/create/solve_job_create.py +43 -0
  54. luna_quantum/client/schemas/enums/__init__.py +0 -0
  55. luna_quantum/client/schemas/enums/call_style.py +13 -0
  56. luna_quantum/client/schemas/enums/circuit.py +42 -0
  57. luna_quantum/client/schemas/enums/model_format.py +11 -0
  58. luna_quantum/client/schemas/enums/problem.py +50 -0
  59. luna_quantum/client/schemas/enums/qpu_token_type.py +20 -0
  60. luna_quantum/client/schemas/enums/sense.py +8 -0
  61. luna_quantum/client/schemas/enums/status.py +40 -0
  62. luna_quantum/client/schemas/enums/timeframe.py +11 -0
  63. luna_quantum/client/schemas/error_message.py +14 -0
  64. luna_quantum/client/schemas/model_metadata.py +35 -0
  65. luna_quantum/client/schemas/qpu_token/__init__.py +0 -0
  66. luna_quantum/client/schemas/qpu_token/qpu_token.py +154 -0
  67. luna_quantum/client/schemas/qpu_token/qpu_token_source.py +19 -0
  68. luna_quantum/client/schemas/qpu_token/qpu_token_time_quota.py +30 -0
  69. luna_quantum/client/schemas/qpu_token/token_provider.py +132 -0
  70. luna_quantum/client/schemas/representation.py +19 -0
  71. luna_quantum/client/schemas/solution.py +106 -0
  72. luna_quantum/client/schemas/solve_job.py +50 -0
  73. luna_quantum/client/schemas/solver_info.py +11 -0
  74. luna_quantum/client/schemas/user.py +11 -0
  75. luna_quantum/client/schemas/wrappers/__init__.py +5 -0
  76. luna_quantum/client/schemas/wrappers/datetime_wrapper.py +32 -0
  77. luna_quantum/client/utils/__init__.py +0 -0
  78. luna_quantum/client/utils/qpu_token_utils.py +147 -0
  79. luna_quantum/config.py +11 -0
  80. luna_quantum/decorators.py +248 -0
  81. luna_quantum/errors.py +34 -0
  82. luna_quantum/errors.pyi +287 -0
  83. luna_quantum/exceptions/__init__.py +0 -0
  84. luna_quantum/exceptions/base_luna_quantum_error.py +2 -0
  85. luna_quantum/exceptions/patch_class_field_exists_error.py +10 -0
  86. luna_quantum/factories/__init__.py +4 -0
  87. luna_quantum/factories/luna_solve_client_factory.py +100 -0
  88. luna_quantum/factories/usecase_factory.py +457 -0
  89. luna_quantum/py.typed +0 -0
  90. luna_quantum/solve/__init__.py +13 -0
  91. luna_quantum/solve/default_token.py +304 -0
  92. luna_quantum/solve/domain/__init__.py +0 -0
  93. luna_quantum/solve/domain/abstract/__init__.py +4 -0
  94. luna_quantum/solve/domain/abstract/luna_algorithm.py +205 -0
  95. luna_quantum/solve/domain/abstract/qpu_token_backend.py +34 -0
  96. luna_quantum/solve/domain/model_metadata.py +56 -0
  97. luna_quantum/solve/domain/solve_job.py +196 -0
  98. luna_quantum/solve/errors/__init__.py +0 -0
  99. luna_quantum/solve/errors/incompatible_backend_error.py +15 -0
  100. luna_quantum/solve/errors/model_metadata_missing_error.py +11 -0
  101. luna_quantum/solve/errors/solve_base_error.py +5 -0
  102. luna_quantum/solve/errors/token_missing_error.py +11 -0
  103. luna_quantum/solve/interfaces/__init__.py +0 -0
  104. luna_quantum/solve/interfaces/algorithm_i.py +49 -0
  105. luna_quantum/solve/interfaces/backend_i.py +28 -0
  106. luna_quantum/solve/interfaces/usecases/__init__.py +55 -0
  107. luna_quantum/solve/interfaces/usecases/model_delete_usecase_i.py +27 -0
  108. luna_quantum/solve/interfaces/usecases/model_fetch_metadata_usecase_i.py +33 -0
  109. luna_quantum/solve/interfaces/usecases/model_get_solutions_usecase_i.py +33 -0
  110. luna_quantum/solve/interfaces/usecases/model_get_solve_jobs_usecase_i.py +33 -0
  111. luna_quantum/solve/interfaces/usecases/model_load_by_id_usecase_i.py +32 -0
  112. luna_quantum/solve/interfaces/usecases/model_load_by_metadata_usecase_i.py +37 -0
  113. luna_quantum/solve/interfaces/usecases/model_load_metadata_by_hash_usecase_i.py +38 -0
  114. luna_quantum/solve/interfaces/usecases/model_save_usecase_i.py +36 -0
  115. luna_quantum/solve/interfaces/usecases/solve_job_cancel_usecase_i.py +33 -0
  116. luna_quantum/solve/interfaces/usecases/solve_job_create_usecase_i.py +44 -0
  117. luna_quantum/solve/interfaces/usecases/solve_job_delete_usecase_i.py +32 -0
  118. luna_quantum/solve/interfaces/usecases/solve_job_fetch_updates_usecase_i.py +38 -0
  119. luna_quantum/solve/interfaces/usecases/solve_job_get_result_usecase_i.py +63 -0
  120. luna_quantum/solve/parameters/__init__.py +0 -0
  121. luna_quantum/solve/parameters/algorithms/__init__.py +51 -0
  122. luna_quantum/solve/parameters/algorithms/base_params/__init__.py +24 -0
  123. luna_quantum/solve/parameters/algorithms/base_params/decomposer.py +57 -0
  124. luna_quantum/solve/parameters/algorithms/base_params/qaoa_circuit_params.py +95 -0
  125. luna_quantum/solve/parameters/algorithms/base_params/quantum_annealing_params.py +79 -0
  126. luna_quantum/solve/parameters/algorithms/base_params/scipy_optimizer.py +122 -0
  127. luna_quantum/solve/parameters/algorithms/base_params/simulated_annealing_params.py +106 -0
  128. luna_quantum/solve/parameters/algorithms/base_params/tabu_kerberos_params.py +39 -0
  129. luna_quantum/solve/parameters/algorithms/base_params/tabu_search_params.py +129 -0
  130. luna_quantum/solve/parameters/algorithms/flexible_parameter_algorithm.py +59 -0
  131. luna_quantum/solve/parameters/algorithms/genetic_algorithms/__init__.py +4 -0
  132. luna_quantum/solve/parameters/algorithms/genetic_algorithms/qaga.py +131 -0
  133. luna_quantum/solve/parameters/algorithms/genetic_algorithms/saga.py +139 -0
  134. luna_quantum/solve/parameters/algorithms/lq_fda/__init__.py +3 -0
  135. luna_quantum/solve/parameters/algorithms/lq_fda/fujits_da_base.py +85 -0
  136. luna_quantum/solve/parameters/algorithms/lq_fda/fujitsu_da_v3c.py +155 -0
  137. luna_quantum/solve/parameters/algorithms/optimization_solvers/__init__.py +3 -0
  138. luna_quantum/solve/parameters/algorithms/optimization_solvers/scip.py +51 -0
  139. luna_quantum/solve/parameters/algorithms/quantum_annealing/__init__.py +19 -0
  140. luna_quantum/solve/parameters/algorithms/quantum_annealing/kerberos.py +149 -0
  141. luna_quantum/solve/parameters/algorithms/quantum_annealing/leap_hybrid_bqm.py +75 -0
  142. luna_quantum/solve/parameters/algorithms/quantum_annealing/leap_hybrid_cqm.py +75 -0
  143. luna_quantum/solve/parameters/algorithms/quantum_annealing/parallel_tempering_qpu.py +139 -0
  144. luna_quantum/solve/parameters/algorithms/quantum_annealing/population_annealing_qpu.py +109 -0
  145. luna_quantum/solve/parameters/algorithms/quantum_annealing/qbsolv_like_qpu.py +111 -0
  146. luna_quantum/solve/parameters/algorithms/quantum_annealing/quantum_annealing.py +121 -0
  147. luna_quantum/solve/parameters/algorithms/quantum_annealing/repeated_reverse_quantum_annealing.py +174 -0
  148. luna_quantum/solve/parameters/algorithms/quantum_gate/__init__.py +6 -0
  149. luna_quantum/solve/parameters/algorithms/quantum_gate/flex_qaoa/__init__.py +26 -0
  150. luna_quantum/solve/parameters/algorithms/quantum_gate/flex_qaoa/config.py +80 -0
  151. luna_quantum/solve/parameters/algorithms/quantum_gate/flex_qaoa/flex_qaoa.py +226 -0
  152. luna_quantum/solve/parameters/algorithms/quantum_gate/flex_qaoa/optimizers.py +99 -0
  153. luna_quantum/solve/parameters/algorithms/quantum_gate/flex_qaoa/pipeline.py +87 -0
  154. luna_quantum/solve/parameters/algorithms/quantum_gate/qaoa.py +102 -0
  155. luna_quantum/solve/parameters/algorithms/quantum_gate/qaoa_fo.py +69 -0
  156. luna_quantum/solve/parameters/algorithms/quantum_gate/vqe.py +108 -0
  157. luna_quantum/solve/parameters/algorithms/search_algorithms/__init__.py +5 -0
  158. luna_quantum/solve/parameters/algorithms/search_algorithms/dialectic_search.py +136 -0
  159. luna_quantum/solve/parameters/algorithms/search_algorithms/qbsolv_like_tabu_search.py +117 -0
  160. luna_quantum/solve/parameters/algorithms/search_algorithms/tabu_search.py +126 -0
  161. luna_quantum/solve/parameters/algorithms/simulated_annealing/__init__.py +13 -0
  162. luna_quantum/solve/parameters/algorithms/simulated_annealing/parallel_tempering.py +131 -0
  163. luna_quantum/solve/parameters/algorithms/simulated_annealing/population_annealing.py +95 -0
  164. luna_quantum/solve/parameters/algorithms/simulated_annealing/qbsolv_like_simulated_annealing.py +141 -0
  165. luna_quantum/solve/parameters/algorithms/simulated_annealing/repeated_reverse_simulated_annealing.py +172 -0
  166. luna_quantum/solve/parameters/algorithms/simulated_annealing/simulated_annealing.py +126 -0
  167. luna_quantum/solve/parameters/backends/__init__.py +22 -0
  168. luna_quantum/solve/parameters/backends/aqarios.py +17 -0
  169. luna_quantum/solve/parameters/backends/aws/__init__.py +11 -0
  170. luna_quantum/solve/parameters/backends/aws/aws.py +36 -0
  171. luna_quantum/solve/parameters/backends/aws/aws_backend_base.py +74 -0
  172. luna_quantum/solve/parameters/backends/aws/ionq.py +43 -0
  173. luna_quantum/solve/parameters/backends/aws/iqm.py +31 -0
  174. luna_quantum/solve/parameters/backends/aws/rigetti.py +31 -0
  175. luna_quantum/solve/parameters/backends/dwave.py +17 -0
  176. luna_quantum/solve/parameters/backends/dwave_qpu.py +166 -0
  177. luna_quantum/solve/parameters/backends/fda.py +17 -0
  178. luna_quantum/solve/parameters/backends/ibm.py +138 -0
  179. luna_quantum/solve/parameters/backends/qctrl.py +103 -0
  180. luna_quantum/solve/parameters/backends/zib.py +17 -0
  181. luna_quantum/solve/parameters/constants.py +11 -0
  182. luna_quantum/solve/parameters/mixins/__init__.py +0 -0
  183. luna_quantum/solve/parameters/mixins/fujitsu_common_params_mixin.py +239 -0
  184. luna_quantum/solve/parameters/mixins/fujitsu_v2_mixin.py +70 -0
  185. luna_quantum/solve/parameters/mixins/qbsolv_like_mixin.py +60 -0
  186. luna_quantum/solve/use_cases/__init__.py +119 -0
  187. luna_quantum/solve/use_cases/arbitrage_edge_based.py +50 -0
  188. luna_quantum/solve/use_cases/arbitrage_node_based.py +55 -0
  189. luna_quantum/solve/use_cases/base.py +7 -0
  190. luna_quantum/solve/use_cases/binary_integer_linear_programming.py +54 -0
  191. luna_quantum/solve/use_cases/binary_paint_shop_problem.py +37 -0
  192. luna_quantum/solve/use_cases/credit_scoring_feature_selection.py +40 -0
  193. luna_quantum/solve/use_cases/dynamic_portfolio_optimization.py +64 -0
  194. luna_quantum/solve/use_cases/exact_cover.py +51 -0
  195. luna_quantum/solve/use_cases/flight_gate_assignment.py +79 -0
  196. luna_quantum/solve/use_cases/graph_coloring.py +42 -0
  197. luna_quantum/solve/use_cases/graph_isomorphism.py +52 -0
  198. luna_quantum/solve/use_cases/graph_partitioning.py +46 -0
  199. luna_quantum/solve/use_cases/hamiltonian_cycle.py +49 -0
  200. luna_quantum/solve/use_cases/induced_subgraph_isomorphism.py +50 -0
  201. luna_quantum/solve/use_cases/job_shop_scheduling.py +44 -0
  202. luna_quantum/solve/use_cases/k_medoids_clustering.py +49 -0
  203. luna_quantum/solve/use_cases/knapsack_integer_weights.py +56 -0
  204. luna_quantum/solve/use_cases/linear_regression.py +60 -0
  205. luna_quantum/solve/use_cases/lmwcs.py +84 -0
  206. luna_quantum/solve/use_cases/longest_path.py +50 -0
  207. luna_quantum/solve/use_cases/market_graph_clustering.py +61 -0
  208. luna_quantum/solve/use_cases/max2sat.py +54 -0
  209. luna_quantum/solve/use_cases/max3sat.py +55 -0
  210. luna_quantum/solve/use_cases/max_clique.py +60 -0
  211. luna_quantum/solve/use_cases/max_cut.py +48 -0
  212. luna_quantum/solve/use_cases/max_independent_set.py +37 -0
  213. luna_quantum/solve/use_cases/minimal_maximal_matching.py +54 -0
  214. luna_quantum/solve/use_cases/minimal_spanning_tree.py +90 -0
  215. luna_quantum/solve/use_cases/minimum_vertex_cover.py +45 -0
  216. luna_quantum/solve/use_cases/number_partitioning.py +32 -0
  217. luna_quantum/solve/use_cases/portfolio_optimization.py +46 -0
  218. luna_quantum/solve/use_cases/portfolio_optimization_ib_tv.py +63 -0
  219. luna_quantum/solve/use_cases/quadratic_assignment.py +49 -0
  220. luna_quantum/solve/use_cases/quadratic_knapsack.py +48 -0
  221. luna_quantum/solve/use_cases/satellite_scheduling.py +73 -0
  222. luna_quantum/solve/use_cases/sensor_placement.py +58 -0
  223. luna_quantum/solve/use_cases/set_cover.py +56 -0
  224. luna_quantum/solve/use_cases/set_packing.py +54 -0
  225. luna_quantum/solve/use_cases/set_partitioning.py +52 -0
  226. luna_quantum/solve/use_cases/subgraph_isomorphism.py +55 -0
  227. luna_quantum/solve/use_cases/subset_sum.py +37 -0
  228. luna_quantum/solve/use_cases/support_vector_machine.py +64 -0
  229. luna_quantum/solve/use_cases/traffic_flow.py +35 -0
  230. luna_quantum/solve/use_cases/travelling_salesman_problem.py +53 -0
  231. luna_quantum/solve/use_cases/type_aliases.py +9 -0
  232. luna_quantum/solve/use_cases/weighted_max_cut.py +37 -0
  233. luna_quantum/solve/usecases/__init__.py +45 -0
  234. luna_quantum/solve/usecases/model_delete_usecase.py +49 -0
  235. luna_quantum/solve/usecases/model_fetch_metadata_usecase.py +50 -0
  236. luna_quantum/solve/usecases/model_get_solution_usecase.py +59 -0
  237. luna_quantum/solve/usecases/model_get_solve_jobs_usecase.py +62 -0
  238. luna_quantum/solve/usecases/model_load_by_id_usecase.py +47 -0
  239. luna_quantum/solve/usecases/model_load_by_metadata_usecase.py +52 -0
  240. luna_quantum/solve/usecases/model_load_metadata_by_hash_usecase.py +51 -0
  241. luna_quantum/solve/usecases/model_save_usecase.py +63 -0
  242. luna_quantum/solve/usecases/solve_job_cancel_usecase.py +51 -0
  243. luna_quantum/solve/usecases/solve_job_create_usecase.py +112 -0
  244. luna_quantum/solve/usecases/solve_job_delete_usecase.py +38 -0
  245. luna_quantum/solve/usecases/solve_job_fetch_updates_usecase.py +49 -0
  246. luna_quantum/solve/usecases/solve_job_get_result_usecase.py +95 -0
  247. luna_quantum/transformations.py +18 -0
  248. luna_quantum/transformations.pyi +371 -0
  249. luna_quantum/translator.py +23 -0
  250. luna_quantum/translator.pyi +869 -0
  251. luna_quantum/util/__init__.py +0 -0
  252. luna_quantum/util/active_waiting.py +79 -0
  253. luna_quantum/util/class_patcher.py +164 -0
  254. luna_quantum/util/debug_info.py +52 -0
  255. luna_quantum/util/log_utils.py +187 -0
  256. luna_quantum/util/pretty_base.py +67 -0
  257. luna_quantum/util/pydantic_utils.py +38 -0
  258. luna_quantum/utils.py +3 -0
  259. luna_quantum/utils.pyi +67 -0
  260. luna_quantum-1.0.8rc2.dist-info/METADATA +36 -0
  261. luna_quantum-1.0.8rc2.dist-info/RECORD +264 -0
  262. luna_quantum-1.0.8rc2.dist-info/WHEEL +4 -0
  263. luna_quantum-1.0.8rc2.dist-info/licenses/LICENSE +176 -0
  264. luna_quantum-1.0.8rc2.dist-info/licenses/NOTICE +13 -0
@@ -0,0 +1,457 @@
1
+ from typing import ClassVar
2
+
3
+ from luna_quantum.client.interfaces.services.luna_solve_i import ILunaSolve
4
+ from luna_quantum.solve.interfaces.usecases import (
5
+ IModelLoadMetadataByHashUseCase,
6
+ )
7
+ from luna_quantum.solve.interfaces.usecases.model_delete_usecase_i import (
8
+ IModelDeleteUseCase,
9
+ )
10
+ from luna_quantum.solve.interfaces.usecases.model_fetch_metadata_usecase_i import (
11
+ IModelFetchMetadataUseCase,
12
+ )
13
+ from luna_quantum.solve.interfaces.usecases.model_get_solutions_usecase_i import (
14
+ IModelGetSolutionUseCase,
15
+ )
16
+ from luna_quantum.solve.interfaces.usecases.model_get_solve_jobs_usecase_i import (
17
+ IModelGetSolveJobUseCase,
18
+ )
19
+ from luna_quantum.solve.interfaces.usecases.model_load_by_id_usecase_i import (
20
+ IModelLoadByIdUseCase,
21
+ )
22
+ from luna_quantum.solve.interfaces.usecases.model_load_by_metadata_usecase_i import (
23
+ IModelLoadByMetadataUseCase,
24
+ )
25
+ from luna_quantum.solve.interfaces.usecases.model_save_usecase_i import (
26
+ IModelSaveUseCase,
27
+ )
28
+ from luna_quantum.solve.interfaces.usecases.solve_job_cancel_usecase_i import (
29
+ ISolveJobCancelUseCase,
30
+ )
31
+ from luna_quantum.solve.interfaces.usecases.solve_job_create_usecase_i import (
32
+ ISolveJobCreateUseCase,
33
+ )
34
+ from luna_quantum.solve.interfaces.usecases.solve_job_delete_usecase_i import (
35
+ ISolveJobDeleteUseCase,
36
+ )
37
+ from luna_quantum.solve.interfaces.usecases.solve_job_fetch_updates_usecase_i import (
38
+ ISolveJobFetchUpdatesUseCase,
39
+ )
40
+ from luna_quantum.solve.interfaces.usecases.solve_job_get_result_usecase_i import (
41
+ ISolveJobGetResultUseCase,
42
+ )
43
+
44
+
45
+ class UseCaseFactory:
46
+ """
47
+ Factory class to manage use-case implementations.
48
+
49
+ This class provides methods to manage and configure use-case classes for various
50
+ model and solve job operations.
51
+ """
52
+
53
+ _model_fetch_class: ClassVar[type[IModelFetchMetadataUseCase]]
54
+ _model_delete_class: ClassVar[type[IModelDeleteUseCase]]
55
+ _model_get_solution_class: ClassVar[type[IModelGetSolutionUseCase]]
56
+ _model_get_solve_job_class: ClassVar[type[IModelGetSolveJobUseCase]]
57
+ _model_load_by_id_class: ClassVar[type[IModelLoadByIdUseCase]]
58
+ _model_load_by_hash_class: ClassVar[type[IModelLoadMetadataByHashUseCase]]
59
+ _model_load_by_metadata_class: ClassVar[type[IModelLoadByMetadataUseCase]]
60
+ _model_save_class: ClassVar[type[IModelSaveUseCase]]
61
+
62
+ _solve_job_cancel_class: ClassVar[type[ISolveJobCancelUseCase]]
63
+ _solve_job_create_class: ClassVar[type[ISolveJobCreateUseCase]]
64
+ _solve_job_delete_class: ClassVar[type[ISolveJobDeleteUseCase]]
65
+ _solve_job_get_result_class: ClassVar[type[ISolveJobGetResultUseCase]]
66
+ _solve_job_fetch_updates_class: ClassVar[type[ISolveJobFetchUpdatesUseCase]]
67
+
68
+ @classmethod
69
+ def set_model_fetch_class(
70
+ cls, model_fetch_class: type[IModelFetchMetadataUseCase]
71
+ ) -> None:
72
+ """Set the implementation class for model fetch operations.
73
+
74
+ Parameters
75
+ ----------
76
+ model_fetch_class : Type[IModelFetchMetadataUseCase]
77
+ The class implementing IModelFetchMetadataUseCase
78
+ """
79
+ cls._model_fetch_class = model_fetch_class
80
+
81
+ @classmethod
82
+ def set_model_delete_class(
83
+ cls, model_delete_class: type[IModelDeleteUseCase]
84
+ ) -> None:
85
+ """Set the implementation class for model delete operations.
86
+
87
+ Parameters
88
+ ----------
89
+ model_delete_class : Type[IModelDeleteUseCase]
90
+ The class implementing IModelDeleteUseCase
91
+ """
92
+ cls._model_delete_class = model_delete_class
93
+
94
+ @classmethod
95
+ def set_model_get_solution_class(
96
+ cls, model_get_solution_class: type[IModelGetSolutionUseCase]
97
+ ) -> None:
98
+ """Set the implementation class for getting model solutions.
99
+
100
+ Parameters
101
+ ----------
102
+ model_get_solution_class : Type[IModelGetSolutionUseCase]
103
+ The class implementing IModelGetSolutionUseCase
104
+ """
105
+ cls._model_get_solution_class = model_get_solution_class
106
+
107
+ @classmethod
108
+ def set_model_get_solve_job_class(
109
+ cls, model_get_solve_job_class: type[IModelGetSolveJobUseCase]
110
+ ) -> None:
111
+ """Set the implementation class for getting model solve jobs.
112
+
113
+ Parameters
114
+ ----------
115
+ model_get_solve_job_class : Type[IModelGetSolveJobUseCase]
116
+ The class implementing IModelGetSolveJobUseCase
117
+ """
118
+ cls._model_get_solve_job_class = model_get_solve_job_class
119
+
120
+ @classmethod
121
+ def set_model_load_by_id_class(
122
+ cls, model_load_by_id_class: type[IModelLoadByIdUseCase]
123
+ ) -> None:
124
+ """Set the implementation class for loading models by ID.
125
+
126
+ Parameters
127
+ ----------
128
+ model_load_by_id_class : Type[IModelLoadByIdUseCase]
129
+ The class implementing IModelLoadByIdUseCase
130
+ """
131
+ cls._model_load_by_id_class = model_load_by_id_class
132
+
133
+ @classmethod
134
+ def set_model_load_by_hash_class(
135
+ cls, model_load_by_hash_class: type[IModelLoadMetadataByHashUseCase]
136
+ ) -> None:
137
+ """Set the implementation class for loading model metadata by hash.
138
+
139
+ Parameters
140
+ ----------
141
+ model_load_by_hash_class : Type[IModelLoadMetadataByHashUseCase]
142
+ The class implementing IModelLoadMetadataByHashUseCase
143
+ """
144
+ cls._model_load_by_hash_class = model_load_by_hash_class
145
+
146
+ @classmethod
147
+ def set_model_load_by_metadata_class(
148
+ cls, model_load_by_metadata_class: type[IModelLoadByMetadataUseCase]
149
+ ) -> None:
150
+ """Set the implementation class for loading models by metadata.
151
+
152
+ Parameters
153
+ ----------
154
+ model_load_by_metadata_class : Type[IModelLoadByMetadataUseCase]
155
+ The class implementing IModelLoadByMetadataUseCase
156
+ """
157
+ cls._model_load_by_metadata_class = model_load_by_metadata_class
158
+
159
+ @classmethod
160
+ def set_model_save_class(cls, model_save_class: type[IModelSaveUseCase]) -> None:
161
+ """Set the implementation class for saving models.
162
+
163
+ Parameters
164
+ ----------
165
+ model_save_class : Type[IModelSaveUseCase]
166
+ The class implementing IModelSaveUseCase
167
+ """
168
+ cls._model_save_class = model_save_class
169
+
170
+ @classmethod
171
+ def set_solve_job_cancel_class(
172
+ cls, solve_job_cancel_class: type[ISolveJobCancelUseCase]
173
+ ) -> None:
174
+ """Set the implementation class for canceling solve jobs.
175
+
176
+ Parameters
177
+ ----------
178
+ solve_job_cancel_class : Type[ISolveJobCancelUseCase]
179
+ The class implementing ISolveJobCancelUseCase
180
+ """
181
+ cls._solve_job_cancel_class = solve_job_cancel_class
182
+
183
+ @classmethod
184
+ def set_solve_job_create_class(
185
+ cls, solve_job_create_class: type[ISolveJobCreateUseCase]
186
+ ) -> None:
187
+ """Set the implementation class for creating solve jobs.
188
+
189
+ Parameters
190
+ ----------
191
+ solve_job_create_class : Type[ISolveJobCreateUseCase]
192
+ The class implementing ISolveJobCreateUseCase
193
+ """
194
+ cls._solve_job_create_class = solve_job_create_class
195
+
196
+ @classmethod
197
+ def set_solve_job_delete_class(
198
+ cls, solve_job_delete_class: type[ISolveJobDeleteUseCase]
199
+ ) -> None:
200
+ """Set the implementation class for deleting solve jobs.
201
+
202
+ Parameters
203
+ ----------
204
+ solve_job_delete_class : Type[ISolveJobDeleteUseCase]
205
+ The class implementing ISolveJobDeleteUseCase
206
+ """
207
+ cls._solve_job_delete_class = solve_job_delete_class
208
+
209
+ @classmethod
210
+ def set_solve_job_get_result_class(
211
+ cls, solve_job_get_result_class: type[ISolveJobGetResultUseCase]
212
+ ) -> None:
213
+ """Set the implementation class for getting solve job results.
214
+
215
+ Parameters
216
+ ----------
217
+ solve_job_get_result_class : Type[ISolveJobGetResultUseCase]
218
+ The class implementing ISolveJobGetResultUseCase
219
+ """
220
+ cls._solve_job_get_result_class = solve_job_get_result_class
221
+
222
+ @classmethod
223
+ def set_solve_job_fetch_updates_class(
224
+ cls, solve_job_fetch_updates_class: type[ISolveJobFetchUpdatesUseCase]
225
+ ) -> None:
226
+ """Set the implementation class for fetching solve job updates.
227
+
228
+ Parameters
229
+ ----------
230
+ solve_job_fetch_updates_class : Type[ISolveJobFetchUpdatesUseCase]
231
+ The class implementing ISolveJobFetchUpdatesUseCase
232
+ """
233
+ cls._solve_job_fetch_updates_class = solve_job_fetch_updates_class
234
+
235
+ @classmethod
236
+ def model_load_by_id(cls, client: ILunaSolve) -> IModelLoadByIdUseCase:
237
+ """
238
+ Get the use-case to load a model using its ID.
239
+
240
+ Parameters
241
+ ----------
242
+ client : ILunaSolve
243
+ The client used to load the model by its ID.
244
+
245
+ Returns
246
+ -------
247
+ IModelLoadByIdUseCase
248
+ An instance of the model loaded by ID.
249
+ """
250
+ return cls._model_load_by_id_class(client=client)
251
+
252
+ @classmethod
253
+ def model_load_by_metadata(cls, client: ILunaSolve) -> IModelLoadByMetadataUseCase:
254
+ """
255
+ Get the use-case to load a model using metadata.
256
+
257
+ Parameters
258
+ ----------
259
+ client : ILunaSolve
260
+ The client interface used to load the model by metadata.
261
+
262
+ Returns
263
+ -------
264
+ IModelLoadByMetadataUseCase
265
+ The instance to handle model loading by metadata.
266
+ """
267
+ return cls._model_load_by_metadata_class(client=client)
268
+
269
+ @classmethod
270
+ def model_save(cls, client: ILunaSolve) -> IModelSaveUseCase:
271
+ """
272
+ Get the use-case to save the model using the specified client.
273
+
274
+ Parameters
275
+ ----------
276
+ client : ILunaSolve
277
+ The client used for performing the model save operation.
278
+
279
+ Returns
280
+ -------
281
+ IModelSaveUseCase
282
+ An instance of the class responsible for handling model save use cases.
283
+
284
+ """
285
+ return cls._model_save_class(client=client)
286
+
287
+ @classmethod
288
+ def model_fetch(cls, client: ILunaSolve) -> IModelFetchMetadataUseCase:
289
+ """
290
+ Get the use-case to fetch model metadata.
291
+
292
+ Parameters
293
+ ----------
294
+ client : ILunaSolve
295
+ The client used to fetch the metadata of the model.
296
+
297
+ Returns
298
+ -------
299
+ IModelFetchMetadataUseCase
300
+ An instance of the class responsible for fetching model metadata.
301
+ """
302
+ return cls._model_fetch_class(client=client)
303
+
304
+ @classmethod
305
+ def model_delete(cls, client: ILunaSolve) -> IModelDeleteUseCase:
306
+ """
307
+ Get the use-case to delete a model.
308
+
309
+ Parameters
310
+ ----------
311
+ client : ILunaSolve
312
+ The client used to delete the model.
313
+
314
+ Returns
315
+ -------
316
+ IModelDeleteUseCase
317
+ An instance of the class responsible for deleting models.
318
+ """
319
+ return cls._model_delete_class(client=client)
320
+
321
+ @classmethod
322
+ def model_get_solution(cls, client: ILunaSolve) -> IModelGetSolutionUseCase:
323
+ """
324
+ Get the use-case to retrieve solutions for a model.
325
+
326
+ Parameters
327
+ ----------
328
+ client : ILunaSolve
329
+ The client used to fetch solutions for the model.
330
+
331
+ Returns
332
+ -------
333
+ IModelGetSolutionUseCase
334
+ An instance of the class responsible for retrieving solutions.
335
+ """
336
+ return cls._model_get_solution_class(client=client)
337
+
338
+ @classmethod
339
+ def model_get_solve_job(cls, client: ILunaSolve) -> IModelGetSolveJobUseCase:
340
+ """
341
+ Get the use-case to retrieve solve jobs of a model.
342
+
343
+ Parameters
344
+ ----------
345
+ client : ILunaSolve
346
+ The client used to get the solve jobs of the model.
347
+
348
+ Returns
349
+ -------
350
+ IModelGetSolveJobUseCase
351
+ An instance of the class responsible for retrieving solve jobs.
352
+ """
353
+ return cls._model_get_solve_job_class(client=client)
354
+
355
+ @classmethod
356
+ def solve_job_cancel(cls, client: ILunaSolve) -> ISolveJobCancelUseCase:
357
+ """
358
+ Get the use-case to cancel a solve job.
359
+
360
+ Parameters
361
+ ----------
362
+ client : ILunaSolve
363
+ The client used to cancel a solve job.
364
+
365
+ Returns
366
+ -------
367
+ ISolveJobCancelUseCase
368
+ An instance of the class responsible for canceling solve jobs.
369
+ """
370
+ return cls._solve_job_cancel_class(client=client)
371
+
372
+ @classmethod
373
+ def solve_job_create(cls, client: ILunaSolve) -> ISolveJobCreateUseCase:
374
+ """
375
+ Get the use-case to create a new solve job.
376
+
377
+ Parameters
378
+ ----------
379
+ client : ILunaSolve
380
+ The client used to create a new solve job.
381
+
382
+ Returns
383
+ -------
384
+ ISolveJobCreateUseCase
385
+ An instance of the class responsible for creating solve jobs.
386
+ """
387
+ return cls._solve_job_create_class(client=client)
388
+
389
+ @classmethod
390
+ def solve_job_delete(cls, client: ILunaSolve) -> ISolveJobDeleteUseCase:
391
+ """
392
+ Get the use-case to delete a solve job.
393
+
394
+ Parameters
395
+ ----------
396
+ client : ILunaSolve
397
+ The client used to delete a solve job.
398
+
399
+ Returns
400
+ -------
401
+ ISolveJobDeleteUseCase
402
+ An instance of the class responsible for deleting solve jobs.
403
+ """
404
+ return cls._solve_job_delete_class(client=client)
405
+
406
+ @classmethod
407
+ def solve_job_get_result(cls, client: ILunaSolve) -> ISolveJobGetResultUseCase:
408
+ """
409
+ Get the use-case to fetch results of a solve job.
410
+
411
+ Parameters
412
+ ----------
413
+ client : ILunaSolve
414
+ The client used to fetch results of the solve job.
415
+
416
+ Returns
417
+ -------
418
+ ISolveJobGetResultUseCase
419
+ An instance of the class responsible for fetching solve job results.
420
+ """
421
+ return cls._solve_job_get_result_class(client=client)
422
+
423
+ @classmethod
424
+ def solve_job_fetch_update(cls, client: ILunaSolve) -> ISolveJobFetchUpdatesUseCase:
425
+ """
426
+ Get the use-case to fetch updates for a solve job.
427
+
428
+ Parameters
429
+ ----------
430
+ client : ILunaSolve
431
+ The client used to fetch updates for a solve job.
432
+
433
+ Returns
434
+ -------
435
+ ISolveJobFetchUpdatesUseCase
436
+ An instance of the class responsible for fetching solve job updates.
437
+ """
438
+ return cls._solve_job_fetch_updates_class(client=client)
439
+
440
+ @classmethod
441
+ def model_load_metadata_by_hash(
442
+ cls, client: ILunaSolve
443
+ ) -> IModelLoadMetadataByHashUseCase:
444
+ """
445
+ Get the use-case to load model metadata by its hash.
446
+
447
+ Parameters
448
+ ----------
449
+ client : ILunaSolve
450
+ The client used to load model metadata using a hash.
451
+
452
+ Returns
453
+ -------
454
+ IModelLoadMetadataByHashUseCase
455
+ An instance of the class responsible for loading model metadata by hash.
456
+ """
457
+ return cls._model_load_by_hash_class(client=client)
luna_quantum/py.typed ADDED
File without changes
@@ -0,0 +1,13 @@
1
+ from .default_token import DefaultToken
2
+ from .domain.model_metadata import ModelMetadata
3
+ from .domain.solve_job import SolveJob
4
+ from .parameters import algorithms, backends, constants
5
+
6
+ __all__ = [
7
+ "DefaultToken",
8
+ "ModelMetadata",
9
+ "SolveJob",
10
+ "algorithms",
11
+ "backends",
12
+ "constants",
13
+ ]