quapp-pyquil 0.0.4.dev2__tar.gz → 0.0.4.dev3__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 (32) hide show
  1. {quapp_pyquil-0.0.4.dev2/quapp_pyquil.egg-info → quapp_pyquil-0.0.4.dev3}/PKG-INFO +2 -2
  2. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/pyproject.toml +2 -2
  3. quapp_pyquil-0.0.4.dev3/qapp_pyquil/async_tasks/pyquil_circuit_export_task.py +25 -0
  4. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/component/backend/pyquil_invocation.py +5 -4
  5. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/component/backend/pyquil_job_fetching.py +1 -2
  6. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/factory/pyquil_device_factory.py +0 -1
  7. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/factory/pyquil_handler_factory.py +4 -4
  8. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/handler/invocation_handler.py +1 -2
  9. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/device/qapp_pyquil_device.py +17 -23
  10. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/device/rigetti_pyquil_device.py +25 -26
  11. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3/quapp_pyquil.egg-info}/PKG-INFO +2 -2
  12. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/quapp_pyquil.egg-info/requires.txt +1 -1
  13. quapp_pyquil-0.0.4.dev2/qapp_pyquil/async_tasks/pyquil_circuit_export_task.py +0 -62
  14. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/LICENSE +0 -0
  15. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/README.md +0 -0
  16. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/__init__.py +0 -0
  17. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/async_tasks/__init__.py +0 -0
  18. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/component/__init__.py +0 -0
  19. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/component/backend/__init__.py +0 -0
  20. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/factory/__init__.py +0 -0
  21. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/factory/pyquil_provider_factory.py +0 -0
  22. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/handler/__init__.py +0 -0
  23. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/handler/job_fetching_handler.py +0 -0
  24. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/__init__.py +0 -0
  25. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/device/__init__.py +0 -0
  26. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/provider/__init__.py +0 -0
  27. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/provider/qapp_pyquil_provider.py +0 -0
  28. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/qapp_pyquil/model/provider/rigetti_pyquil_provider.py +0 -0
  29. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/quapp_pyquil.egg-info/SOURCES.txt +0 -0
  30. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/quapp_pyquil.egg-info/dependency_links.txt +0 -0
  31. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/quapp_pyquil.egg-info/top_level.txt +0 -0
  32. {quapp_pyquil-0.0.4.dev2 → quapp_pyquil-0.0.4.dev3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quapp-pyquil
3
- Version: 0.0.4.dev2
3
+ Version: 0.0.4.dev3
4
4
  Summary: QApp pyquil library supporting QApp Platform for Quantum Computing
5
5
  Author-email: "CITYNOW Co. Ltd. " <corp@citynow.vn>
6
6
  License: The MIT License (MIT)
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3
19
19
  Requires-Python: <3.11,>=3.9
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
- Requires-Dist: quapp-common==0.0.11.dev3
22
+ Requires-Dist: quapp-common==0.0.11.dev6
23
23
  Requires-Dist: pyquil==4.15.0
24
24
  Provides-Extra: dev
25
25
  Requires-Dist: black; extra == "dev"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "quapp-pyquil"
7
- version = "0.0.4.dev2"
7
+ version = "0.0.4.dev3"
8
8
  description = "QApp pyquil library supporting QApp Platform for Quantum Computing"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "CITYNOW Co. Ltd. ", email = "corp@citynow.vn" }]
@@ -16,7 +16,7 @@ classifiers = [
16
16
  ]
17
17
  keywords = ["quapp", "qapp-pyquil", "quantum"]
18
18
  dependencies = [
19
- "quapp-common==0.0.11.dev3",
19
+ "quapp-common==0.0.11.dev6",
20
20
  "pyquil==4.15.0"
21
21
  ]
22
22
  requires-python = ">=3.9,<3.11"
@@ -0,0 +1,25 @@
1
+ """
2
+ QApp Platform Project pennylane_circuit_export_task.py Copyright © CITYNOW Co. Ltd. All rights reserved.
3
+ """
4
+ from quapp_common.async_tasks.export_circuit_task import CircuitExportTask
5
+ from quapp_common.data.async_task.circuit_export.backend_holder import BackendDataHolder
6
+ from quapp_common.data.async_task.circuit_export.circuit_holder import CircuitDataHolder
7
+ from quapp_common.data.response.custom_header import CustomHeader
8
+
9
+ import requests
10
+
11
+ class PyquilCircuitExportTask(CircuitExportTask):
12
+
13
+ def __init__(self, circuit_data_holder: CircuitDataHolder,
14
+ backend_data_holder: BackendDataHolder,
15
+ project_header: CustomHeader, workspace_header: CustomHeader):
16
+ super().__init__(circuit_data_holder, backend_data_holder,
17
+ project_header, workspace_header)
18
+
19
+ def _transpile_circuit(self):
20
+ # no implementation needed for Pyquil
21
+ pass
22
+
23
+ def do(self):
24
+ return
25
+
@@ -3,7 +3,6 @@
3
3
  """
4
4
 
5
5
  from quapp_common.component.backend.invocation import Invocation
6
- from quapp_common.config.logging_config import logger
7
6
  from quapp_common.config.thread_config import circuit_exporting_pool
8
7
  from quapp_common.data.async_task.circuit_export.backend_holder import BackendDataHolder
9
8
  from quapp_common.data.async_task.circuit_export.circuit_holder import CircuitDataHolder
@@ -21,25 +20,27 @@ class PyquilInvocation(Invocation):
21
20
  self.num_qubits = kwargs.get('num_qubits')
22
21
 
23
22
  def _export_circuit(self, circuit):
24
- logger.info("[PyquilInvocation] _export_circuit()")
23
+ self.logger.info("[PyquilInvocation] _export_circuit()")
25
24
 
26
25
  circuit_export_task = PyquilCircuitExportTask(
27
26
  circuit_data_holder=CircuitDataHolder(circuit, self.circuit_export_url),
28
27
  backend_data_holder=BackendDataHolder(
29
28
  self.backend_information, self.authentication.user_token
30
29
  ),
30
+ project_header=self.project_header,
31
+ workspace_header=self.workspace_header
31
32
  )
32
33
  circuit_exporting_pool.submit(circuit_export_task.do)
33
34
 
34
35
  def _create_provider(self):
35
- logger.info('[PennylaneInvocation] _create_provider()')
36
+ self.logger.info('[PennylaneInvocation] _create_provider()')
36
37
 
37
38
  return PyquilProviderFactory.create_provider(
38
39
  provider_type=self.backend_information.provider_tag, sdk=self.sdk,
39
40
  authentication=self.backend_information.authentication)
40
41
 
41
42
  def _create_device(self, provider: Provider):
42
- logger.info('[PennylaneInvocation] Creating device')
43
+ self.logger.info('[PennylaneInvocation] Creating device')
43
44
  return PyquilDeviceFactory.create_device(provider=provider,
44
45
  device_specification=self.backend_information.device_name,
45
46
  authentication=self.backend_information.authentication,
@@ -7,7 +7,6 @@ from quapp_common.config.logging_config import logger
7
7
  from quapp_common.enum.provider_tag import ProviderTag
8
8
  from quapp_common.enum.sdk import Sdk
9
9
  from quapp_common.enum.status.job_status import JobStatus
10
- from quapp_common.enum.status.status_code import StatusCode
11
10
  from pyquil import get_qc
12
11
  import pickle
13
12
  import os
@@ -52,7 +51,7 @@ class PyquilJobFetching(JobFetcher):
52
51
 
53
52
  def _get_job_status(self, job):
54
53
 
55
- if (job.execution_duration_microseconds is not None):
54
+ if job.execution_duration_microseconds is not None:
56
55
 
57
56
  if os.path.exists(self.provider_job_id+".pkl"):
58
57
  os.remove(self.provider_job_id+".pkl")
@@ -11,7 +11,6 @@ from quapp_common.model.provider.provider import Provider
11
11
  from ..model.device.qapp_pyquil_device import QAppPyquilDevice
12
12
  from ..model.device.rigetti_pyquil_device import RigettiPyquilDevice
13
13
 
14
-
15
14
  class PyquilDeviceFactory(DeviceFactory):
16
15
 
17
16
  @staticmethod
@@ -2,22 +2,22 @@
2
2
  QApp Platform Project pyquil_handler_factory.py Copyright © CITYNOW Co. Ltd. All rights reserved.
3
3
  """
4
4
 
5
- from quapp_common.config.logging_config import logger
6
5
  from quapp_common.factory.handler_factory import HandlerFactory
7
6
  from quapp_common.handler.handler import Handler
8
7
 
9
8
  from ..handler.invocation_handler import InvocationHandler
10
- from ..handler.job_fetching_handler import JobFetchingHandler
11
-
9
+ from quapp_common.config.logging_config import job_logger
12
10
  class PyquilHandlerFactory(HandlerFactory):
13
11
 
14
12
  @staticmethod
15
13
  def create_handler(event, circuit_preparation_fn, post_processing_fn) -> Handler:
16
- logger.info("[PyquilHandlerFactory] create_handler()")
17
14
 
18
15
  request_data = event.json()
19
16
  provider_job_id = request_data.get("providerJobId")
20
17
 
18
+ logger = job_logger(request_data.get('jobId'))
19
+ logger.debug('Creating handler')
20
+
21
21
  if provider_job_id is None:
22
22
  logger.debug("[PyquilHandlerFactory] Create InvocationHandler")
23
23
  return InvocationHandler(
@@ -3,7 +3,6 @@
3
3
  """
4
4
  from quapp_common.data.request.invocation_request import InvocationRequest
5
5
  from quapp_common.handler.handler import Handler
6
- from quapp_common.config.logging_config import logger
7
6
 
8
7
  from ..component.backend.pyquil_invocation import PyquilInvocation
9
8
 
@@ -17,7 +16,7 @@ class InvocationHandler(Handler):
17
16
  self.circuit_preparation_fn = circuit_preparation_fn
18
17
 
19
18
  def handle(self):
20
- logger.info("[InvocationHandler] handle()")
19
+ self.logger.info("[InvocationHandler] handle()")
21
20
 
22
21
  invocation_request = InvocationRequest(self.request_data)
23
22
 
@@ -4,12 +4,10 @@
4
4
  Copyright © CITYNOW Co. Ltd. All rights reserved.
5
5
  """
6
6
  import time
7
- import math
8
7
 
9
8
  from quapp_common.data.response.authentication import Authentication
10
- from quapp_common.data.response.project_header import ProjectHeader
9
+ from quapp_common.data.response.custom_header import CustomHeader
11
10
  from quapp_common.model.device.device import Device
12
- from quapp_common.config.logging_config import logger
13
11
  from quapp_common.data.device.circuit_running_option import CircuitRunningOption
14
12
  from quapp_common.model.provider.provider import Provider
15
13
  from quapp_common.enum.invocation_step import InvocationStep
@@ -18,11 +16,11 @@ from quapp_common.enum.invocation_step import InvocationStep
18
16
  class QAppPyquilDevice(Device):
19
17
  def __init__(self, provider: Provider, device_specification: str):
20
18
  super().__init__(provider, device_specification)
21
- logger.debug('[QAppPyquilDevice] Initializing device specification')
19
+ self.logger.debug('[QAppPyquilDevice] Initializing device specification')
22
20
  self.device_specification = device_specification
23
21
 
24
22
  def _create_job(self, circuit, options: CircuitRunningOption):
25
- logger.debug(
23
+ self.logger.debug(
26
24
  '[QAppPyquilDevice] Creating job with {0} shots'.format(
27
25
  options.shots))
28
26
 
@@ -39,41 +37,41 @@ class QAppPyquilDevice(Device):
39
37
  return data
40
38
 
41
39
  def _is_simulator(self) -> bool:
42
- logger.debug('[QAppPyquilDevice] Is simulator')
40
+ self.logger.debug('[QAppPyquilDevice] Is simulator')
43
41
  return True
44
42
 
45
43
  def _produce_histogram_data(self, job_result) -> dict | None:
46
- logger.info('[PyquilDevice] Producing histogram data')
44
+ self.logger.info('[PyquilDevice] Producing histogram data')
47
45
 
48
46
  histogram = job_result.get('histogram')
49
47
 
50
48
  if histogram is None:
51
- logger.debug("[PyquilDevice] Can't produce histogram")
49
+ self.logger.debug("[PyquilDevice] Can't produce histogram")
52
50
 
53
51
  return job_result.get('histogram')
54
52
 
55
53
  def _get_provider_job_id(self, job) -> str:
56
- logger.debug('[PyquilDevice] Getting job id')
54
+ self.logger.debug('[PyquilDevice] Getting job id')
57
55
 
58
56
  # no job id in local simulator
59
57
  return ""
60
58
 
61
59
  def _get_job_status(self, job) -> str:
62
- logger.debug('[PyquilDevice] Getting job status')
60
+ self.logger.debug('[PyquilDevice] Getting job status')
63
61
 
64
62
  return "DONE"
65
63
 
66
64
  def _get_job_result(self, job) -> dict:
67
- logger.debug('[PyquilDevice] Getting job result')
65
+ self.logger.debug('[PyquilDevice] Getting job result')
68
66
 
69
67
  return job
70
68
 
71
69
  def _calculate_execution_time(self, job_result):
72
- logger.debug('[PyquilDevice] Calculating execution time')
70
+ self.logger.debug('[PyquilDevice] Calculating execution time')
73
71
 
74
72
  self.execution_time = job_result.get('time_taken_execute')
75
73
 
76
- logger.debug(
74
+ self.logger.debug(
77
75
  '[PyquilDevice] Execution time calculation was: {0} seconds'.format(
78
76
  self.execution_time))
79
77
 
@@ -83,18 +81,13 @@ class QAppPyquilDevice(Device):
83
81
  options: CircuitRunningOption,
84
82
  callback_dict: dict,
85
83
  authentication: Authentication,
86
- project_header: ProjectHeader):
87
- """
88
- @param project_header: project header
89
- @param callback_dict: callback url dictionary
90
- @param options: Options for run circuit
91
- @param authentication: Authentication for calling quao server
92
- @param post_processing_fn: Post-processing function
93
- @param circuit: Circuit was run
94
- """
84
+ project_header: CustomHeader,
85
+ workspace_header: CustomHeader):
86
+
95
87
  original_job_result, job_response = self._on_execution(
96
88
  authentication=authentication,
97
89
  project_header=project_header,
90
+ workspace_header=workspace_header,
98
91
  execution_callback=callback_dict.get(InvocationStep.EXECUTION),
99
92
  circuit=circuit,
100
93
  options=options)
@@ -115,4 +108,5 @@ class QAppPyquilDevice(Device):
115
108
  post_processing_fn=post_processing_fn,
116
109
  finalization_callback=callback_dict.get(
117
110
  InvocationStep.FINALIZATION),
118
- project_header=project_header)
111
+ project_header=project_header,
112
+ workspace_header= workspace_header)
@@ -8,12 +8,10 @@ import math
8
8
  import os
9
9
 
10
10
  from quapp_common.data.response.authentication import Authentication
11
- from quapp_common.data.response.project_header import ProjectHeader
11
+ from quapp_common.data.response.custom_header import CustomHeader
12
12
  from quapp_common.model.device.device import Device
13
- from quapp_common.config.logging_config import logger
14
13
  from quapp_common.data.device.circuit_running_option import CircuitRunningOption
15
14
  from quapp_common.model.provider.provider import Provider
16
- from quapp_common.enum.invocation_step import InvocationStep
17
15
  from quapp_common.data.response.job_response import JobResponse
18
16
 
19
17
  from quapp_common.component.callback.update_job_metadata import update_job_metadata
@@ -28,11 +26,11 @@ import time
28
26
  class RigettiPyquilDevice(Device):
29
27
  def __init__(self, provider: Provider, device_specification: str):
30
28
  super().__init__(provider, device_specification)
31
- logger.debug('[RigettiPyquilDevice] Initializing device specification')
29
+ self.logger.debug('[RigettiPyquilDevice] Initializing device specification')
32
30
  self.device_specification = device_specification
33
31
 
34
32
  def _create_job(self, circuit, options: CircuitRunningOption):
35
- logger.debug(
33
+ self.logger.debug(
36
34
  '[RigettiPyquilDevice] Creating job with {0} shots'.format(
37
35
  options.shots))
38
36
 
@@ -42,21 +40,21 @@ class RigettiPyquilDevice(Device):
42
40
  return self.device.qam.execute(executable)
43
41
 
44
42
  def _is_simulator(self) -> bool:
45
- logger.debug('[RigettiPyquilDevice] is quantum machine')
43
+ self.logger.debug('[RigettiPyquilDevice] is quantum machine')
46
44
  return False
47
45
 
48
46
  def _get_provider_job_id(self, job) -> str:
49
- logger.debug('[PyquilDevice] Getting job id')
47
+ self.logger.debug('[PyquilDevice] Getting job id')
50
48
 
51
49
  return job.job_id
52
50
 
53
51
  def _get_job_status(self, job) -> str:
54
- logger.debug('[PyquilDevice] Getting job status')
52
+ self.logger.debug('[PyquilDevice] Getting job status')
55
53
 
56
54
  return "RUNNING"
57
55
 
58
56
  def _calculate_execution_time(self, job_result):
59
- logger.debug('[PyquilDevice] Getting execution time {}',job_result)
57
+ self.logger.debug('[PyquilDevice] Getting execution time {}',job_result)
60
58
 
61
59
  # the time unit is miliseconds
62
60
  return job_result.execution_duration_microseconds/1000
@@ -66,15 +64,16 @@ class RigettiPyquilDevice(Device):
66
64
  return self.device.qam.get_result(job)
67
65
 
68
66
  def _produce_histogram_data(self, job_result) -> dict | None:
69
- logger.info('[PyquilDevice] Producing histogram data')
67
+ self.logger.info('[PyquilDevice] Producing histogram data')
70
68
 
71
69
  return None
72
70
 
73
71
  def _on_execution(self, authentication: Authentication,
74
- project_header: ProjectHeader,
75
- execution_callback: CallbackUrl,
76
- circuit,
77
- options: CircuitRunningOption):
72
+ project_header: CustomHeader,
73
+ workspace_header: CustomHeader,
74
+ execution_callback: CallbackUrl,
75
+ circuit,
76
+ options: CircuitRunningOption):
78
77
  """
79
78
 
80
79
  @param authentication: authentication information
@@ -84,11 +83,12 @@ class RigettiPyquilDevice(Device):
84
83
  @param options: options will use for running
85
84
  @return: job and job response
86
85
  """
87
- logger.debug("[Invocation] On execution")
86
+ self.logger.debug("[Invocation] On execution")
88
87
 
89
88
  job_response = JobResponse(authentication=authentication,
90
89
  project_header=project_header,
91
- status_code=StatusCode.DONE)
90
+ status_code=StatusCode.DONE,
91
+ workspace_header=workspace_header)
92
92
 
93
93
  update_job_metadata(job_response=job_response,
94
94
  callback_url=execution_callback.on_start)
@@ -100,20 +100,20 @@ class RigettiPyquilDevice(Device):
100
100
 
101
101
  while True:
102
102
 
103
- logger.debug("fetching job result")
103
+ self.logger.debug("fetching job result")
104
104
 
105
105
  try:
106
106
  res = self._get_job_result(job)
107
- logger.debug("Job result: {}".format(res))
108
- if (res.execution_duration_microseconds is not None):
107
+ self.logger.debug("Job result: {}".format(res))
108
+ if res.execution_duration_microseconds is not None:
109
109
  job_response.job_status = JobStatus.DONE.value
110
110
  original_job_result = res
111
111
  break
112
112
  except Exception as e:
113
- logger.debug("Job result not ready yet: {}".format(str(e)))
113
+ self.logger.debug("Job result not ready yet: {}".format(str(e)))
114
114
  time.sleep(5)
115
115
 
116
- logger.debug("Job result: {}".format(job_response))
116
+ self.logger.debug("Job result: {}".format(job_response))
117
117
 
118
118
  update_job_metadata(job_response=job_response,
119
119
  callback_url=execution_callback.on_done)
@@ -121,7 +121,7 @@ class RigettiPyquilDevice(Device):
121
121
  return original_job_result, job_response
122
122
 
123
123
  except Exception as exception:
124
- logger.debug("Execute job failed with error {}".format(str(exception)))
124
+ self.logger.debug("Execute job failed with error {}".format(str(exception)))
125
125
 
126
126
  job_response.status_code = StatusCode.ERROR
127
127
  job_response.content_type = MediaType.APPLICATION_JSON
@@ -142,7 +142,7 @@ class RigettiPyquilDevice(Device):
142
142
  @param original_job_result:
143
143
  @return:
144
144
  """
145
- logger.debug("[Invocation] On analysis")
145
+ self.logger.debug("[Invocation] On analysis")
146
146
 
147
147
  update_job_metadata(job_response=job_response,
148
148
  callback_url=analysis_callback.on_start)
@@ -150,11 +150,10 @@ class RigettiPyquilDevice(Device):
150
150
  try:
151
151
  job_response.job_histogram = self._produce_histogram_data(original_job_result)
152
152
 
153
- # original_job_result_dict = JsonParserUtils.parse(original_job_result)
154
153
  self.execution_time = self._calculate_execution_time(original_job_result)
155
154
 
156
155
  job_response.execution_time = self.execution_time
157
- logger.debug("Execution time: {}".format(job_response.execution_time))
156
+ self.logger.debug("Execution time: {}".format(job_response.execution_time))
158
157
 
159
158
  update_job_metadata(
160
159
  job_response=job_response,
@@ -163,7 +162,7 @@ class RigettiPyquilDevice(Device):
163
162
  return job_response
164
163
 
165
164
  except Exception as exception:
166
- logger.error("Invocation - Exception when analyst job result : {0}".format(
165
+ self.logger.error("Invocation - Exception when analyst job result : {0}".format(
167
166
  str(exception)))
168
167
 
169
168
  job_response.status_code = StatusCode.ERROR
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quapp-pyquil
3
- Version: 0.0.4.dev2
3
+ Version: 0.0.4.dev3
4
4
  Summary: QApp pyquil library supporting QApp Platform for Quantum Computing
5
5
  Author-email: "CITYNOW Co. Ltd. " <corp@citynow.vn>
6
6
  License: The MIT License (MIT)
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3
19
19
  Requires-Python: <3.11,>=3.9
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
- Requires-Dist: quapp-common==0.0.11.dev3
22
+ Requires-Dist: quapp-common==0.0.11.dev6
23
23
  Requires-Dist: pyquil==4.15.0
24
24
  Provides-Extra: dev
25
25
  Requires-Dist: black; extra == "dev"
@@ -1,4 +1,4 @@
1
- quapp-common==0.0.11.dev3
1
+ quapp-common==0.0.11.dev6
2
2
  pyquil==4.15.0
3
3
 
4
4
  [dev]
@@ -1,62 +0,0 @@
1
- """
2
- QApp Platform Project pennylane_circuit_export_task.py Copyright © CITYNOW Co. Ltd. All rights reserved.
3
- """
4
- from quapp_common.async_tasks.export_circuit_task import CircuitExportTask
5
- # from ..quapp_common.config.logging_config import logger
6
- # from pyquil.latex import to_latex
7
- # import os
8
- # import subprocess
9
-
10
-
11
- class PyquilCircuitExportTask(CircuitExportTask):
12
-
13
- def _convert(self):
14
-
15
- # circuit = self.circuit_data_holder.circuit
16
-
17
- # latex_code = to_latex(circuit)
18
-
19
- # latex_filename = "quantikz.tex"
20
- # pdf_filename = "quantikz.pdf"
21
- # svg_filename = "quantikz.svg"
22
-
23
-
24
- # try:
25
-
26
- # with open(latex_filename, "w") as latex_file:
27
- # latex_file.write(latex_code)
28
-
29
- # subprocess.run(["pdflatex", latex_filename], check=True)
30
- # subprocess.run(["pdf2svg", pdf_filename, svg_filename], check=True)
31
-
32
- # with open(svg_filename, "rb") as svg_file:
33
- # svg_bytes = svg_file.read()
34
-
35
- # except subprocess.CalledProcessError:
36
- # logger.error('[PyquilCircuitExportTask] Fail to convert to svg')
37
- # return None
38
-
39
- # finally:
40
-
41
- # logger.info('[PyquilCircuitExportTask] Cleaning up temporary files')
42
-
43
- # files_to_cleanup = [
44
- # "quantikz.tex", # LaTeX source file
45
- # "quantikz.pdf", # Generated PDF file
46
- # "quantikz.svg", # Generated SVG file
47
- # "quantikz.aux", # Auxiliary file created during LaTeX compilation
48
- # "quantikz.log", # Log file created during LaTeX compilation
49
- # ]
50
- # # Clean up each file if it exists
51
- # for file in files_to_cleanup:
52
- # try:
53
- # os.remove(file)
54
- # logger.info(f'[PyquilCircuitExportTask] Successfully removed: {file}')
55
- # except FileNotFoundError:
56
- # logger.error(f'[PyquilCircuitExportTask] File not found: {file}')
57
-
58
-
59
-
60
- # return svg_bytes
61
-
62
- return None