Skip to content

Commit

Permalink
Merge pull request #183 from randomir/drop-support-for-cloud-client-p…
Browse files Browse the repository at this point in the history
…re-0.12

Drop support for old cloud-clients (pre-0.12)
  • Loading branch information
randomir authored Nov 15, 2024
2 parents a66aa25 + 96c8d06 commit e9426a8
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 54 deletions.
26 changes: 1 addition & 25 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -308,33 +308,9 @@ workflows:
parameters:
python-version: *python-versions
system-client-version:
- "dwave-system~=1.3.0 dwave-cloud-client==0.8.3 pydantic~=1.0"
- "dwave-system~=1.8.0 dwave-cloud-client==0.8.7 pydantic~=1.0"
- "dwave-system~=1.9.0 dwave-cloud-client==0.9.0 pydantic~=1.0"
- "dwave-system~=1.0 dwave-cloud-client~=0.12.0"
- "dwave-system~=1.0 dwave-cloud-client~=0.13.0"
- "dwave-system~=1.0"
exclude:
# dwave-system>=1.11 required for py310
- python-version: "3.10"
system-client-version: "dwave-system~=1.3.0 dwave-cloud-client==0.8.3 pydantic~=1.0"
- python-version: "3.10"
system-client-version: "dwave-system~=1.8.0 dwave-cloud-client==0.8.7 pydantic~=1.0"
- python-version: "3.10"
system-client-version: "dwave-system~=1.9.0 dwave-cloud-client==0.9.0 pydantic~=1.0"
# dwave-system>=1.16 required for py311
- python-version: "3.11"
system-client-version: "dwave-system~=1.3.0 dwave-cloud-client==0.8.3 pydantic~=1.0"
- python-version: "3.11"
system-client-version: "dwave-system~=1.8.0 dwave-cloud-client==0.8.7 pydantic~=1.0"
- python-version: "3.11"
system-client-version: "dwave-system~=1.9.0 dwave-cloud-client==0.9.0 pydantic~=1.0"
# dwave-cloud-client>=0.11.2 required for py312+
- python-version: "3.12"
system-client-version: "dwave-system~=1.3.0 dwave-cloud-client==0.8.3 pydantic~=1.0"
- python-version: "3.12"
system-client-version: "dwave-system~=1.8.0 dwave-cloud-client==0.8.7 pydantic~=1.0"
- python-version: "3.12"
system-client-version: "dwave-system~=1.9.0 dwave-cloud-client==0.9.0 pydantic~=1.0"
context: *ctx-build

- test-macos:
Expand Down
24 changes: 6 additions & 18 deletions dwave/inspector/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import enum
import logging

from dwave.cloud.utils import set_loglevel
from dwave.cloud.utils.logging import configure_logging

from dwave.inspector.config import config
from dwave.inspector.server import app_server
Expand All @@ -28,25 +28,13 @@
from dwave.inspector.package_info import __version__, __author__, __description__
from dwave.inspector.utils import RichDisplayURL # bring back into top-level namespace

# expose the root logger to simplify access
logger = logging.getLogger(__name__)

# TODO: replace with `dwave.cloud.utils.logging.configure_logging` when we increase
# the cloud-client lower bound to 0.12.0
def _configure_logging(logger, loglevel):
"""Configure `logger` root logger."""
# TODO: move to dwave "common utils" module

formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)s %(threadName)s %(message)s')
handler = logging.StreamHandler()
handler.setFormatter(formatter)

logger.addHandler(handler)

set_loglevel(logger, loglevel)
# expose the root logger to simplify access and configure it from the env var
logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())

# configure root logger
_configure_logging(logger, config.log_level)
if config.log_level:
configure_logging(logger, level=config.log_level)


# enable inspector data capture on import!
Expand Down
9 changes: 4 additions & 5 deletions dwave/inspector/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@

import dimod
import dwave.cloud.computation
# note: import from utils.qubo submodule when we increase cc lower bound to 0.12
from dwave.cloud.utils import reformat_qubo_as_ising, uniform_get, active_qubits
from dwave.cloud.utils.qubo import reformat_qubo_as_ising, active_qubits
from dwave.cloud.events import add_handler
from dwave.cloud.solver import StructuredSolver
from dwave.embedding import embed_bqm
Expand Down Expand Up @@ -429,7 +428,7 @@ def from_qmi_response(problem, response, embedding_context=None, warnings=None,
# visualizer accepts decoded lists (and nulls instead of NaNs)
problem_data = {
"format": "qp", # SAPI non-conforming (nulls vs nans)
"lin": [uniform_get(linear, v, 0 if v in active else None)
"lin": [linear.get(v, 0 if v in active else None)
for v in solver._encoding_qubits],
"quad": [quadratic.get((q1,q2), 0) + quadratic.get((q2,q1), 0)
for (q1,q2) in solver._encoding_couplers
Expand Down Expand Up @@ -553,7 +552,7 @@ def from_bqm_response(bqm, embedding_context, response, warnings=None,
linear, quadratic, offset = bqm_embedded.to_ising()
problem_data = {
"format": "qp", # SAPI non-conforming (nulls vs nans)
"lin": [uniform_get(linear, v, 0 if v in active else None)
"lin": [linear.get(v, 0 if v in active else None)
for v in solver._encoding_qubits],
"quad": [quadratic.get((q1,q2), 0) + quadratic.get((q2,q1), 0)
for (q1,q2) in solver._encoding_couplers
Expand Down Expand Up @@ -719,7 +718,7 @@ def expand_sample(sample):
linear, quadratic, offset = bqm_embedded.to_ising()
problem_data = {
"format": "qp", # SAPI non-conforming (nulls vs nans)
"lin": [uniform_get(linear, v, 0 if v in active_variables_set else None)
"lin": [linear.get(v, 0 if v in active_variables_set else None)
for v in solver._encoding_qubits],
"quad": [quadratic.get((q1,q2), 0) + quadratic.get((q2,q1), 0)
for (q1,q2) in solver._encoding_couplers
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
upgrade:
- |
Drop support for ``dwave-cloud-client<0.12``.
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Flask>=2.2,<4

dimod>=0.10.0
dwave-system>=1.3.0
dwave-cloud-client>=0.11.0,<0.14.0
dwave-cloud-client>=0.12.0,<0.14.0
numpy # comes with dimod, but be explicit
orjson>=3.10.0

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
install_requires = [
'dimod>=0.10.0',
'dwave-system>=1.3.0',
'dwave-cloud-client>=0.11.0,<0.14.0',
'dwave-cloud-client>=0.12.0,<0.14.0',
'Flask>=2.2,<4',
'numpy',
'orjson>=3.10.0',
Expand Down
8 changes: 4 additions & 4 deletions tests/test_adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@

import dimod
from dwave.cloud.solver import UnstructuredSolver
from dwave.system import DWaveSampler, FixedEmbeddingComposite
from dwave.system.testing import MockDWaveSampler
from dwave.cloud.utils.qubo import reformat_qubo_as_ising
from dwave.embedding import embed_bqm
from dwave.embedding.utils import edgelist_to_adjacency
from dwave.cloud.utils import reformat_qubo_as_ising, uniform_get
from dwave.system import DWaveSampler, FixedEmbeddingComposite
from dwave.system.testing import MockDWaveSampler

from dwave.inspector.adapters import (
from_qmi_response, from_bqm_response, from_bqm_sampleset, from_objects,
Expand Down Expand Up @@ -124,7 +124,7 @@ def verify_data_encoding(self, problem, response, solver, params, data, embeddin
active_variables = response['active_variables']
problem_data = {
"format": "qp",
"lin": [uniform_get(linear, v, 0 if v in active_variables else None)
"lin": [linear.get(v, 0 if v in active_variables else None)
for v in solver._encoding_qubits],
"quad": [quadratic.get((q1,q2), 0) + quadratic.get((q2,q1), 0)
for (q1,q2) in solver._encoding_couplers
Expand Down

0 comments on commit e9426a8

Please sign in to comment.