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