6.6.0
Changelog
dwave-cloud-client
0.10.6 ➞ 0.11.0
New Features
-
Add Leap authorization-related group of CLI commands under
dwave auth
:login
,get <token-type>
,refresh
. See #565. -
Add Leap project CLI commands under new
dwave leap project
group:ls
,token
. -
Add
--auto
option todwave config create
to attempt SAPI token fetch from Leap API on configuration file create (if access already authorized withdwave auth login
). -
For OAuth 2.0 Authorization Code exchange flow, add support for both the redirect flow and the out-of-band flow. See #564.
-
Add a general-purpose, multi-threaded, WSGI application server,
dwave.cloud.auth.server.BackgroundAppServer
. This server can handle redirect URIs in the OAuth2 authorization code flow. See #563. -
Add
dwave.cloud.auth.server.SingleRequestAppServer
based ondwave.cloud.auth.server.BackgroundAppServer
to specifically handle only one (valid) request to the OAuth redirect URI (and self-terminate after that). -
Add
dwave.cloud.auth.creds.Credentials
, an on-disk credentials store. See #562. -
Add configuration options for defining Leap API endpoint:
leap_api_endpoint
option in configuration file or as keyword argument, andDWAVE_LEAP_API_ENDPOINT
environment variable. See #569. -
Add a configuration option for setting Leap OAuth 2.0 Ocean client id,
leap_client_id
. Primarily used for testing. -
Add OAuth 2.0 Authorization Code exchange flow to enable users to authorize Ocean SDK to access Leap API on their behalf. See #564.
-
Add wall time and QPU timing to
dwave sample
output. See #570. -
Add a per-call cached value maximum age (
maxage_
) for functions decorated with@cached
. -
Allow specifying cache key explicitly, instead of using all arguments of a function decorated with
@cached
. -
Add cache bypass control via
disable()
andenable()
on the decorated function. -
Add
@cached.disabled
context manager (and a function decorator) that temporarily disables cache within the context (i.e. the decorated function). See #503. -
Add
leap_api_endpoint
andsolver_api_endpoint
properties todwave.cloud.api.models.Region
. -
Move
dwave.cloud.Client.get_regions
todwave.cloud.regions.get_regions
in a newregions
submodule, and refactor for flexibility of use and better caching control. See #577. -
Add endpoints-from-region resolver,
dwave.cloud.regions.resolve_endpoints
. Previously, similar resolver was part of theClient
class. -
Add
--clique-size
/--size
/-k
options todwave sample
CLI command to help specify problem size (clique size) for random problems generated for unstructured solvers. -
Add Pydantic-based data model for cloud-client configuration,
dwave.cloud.config.models.ClientConfig
. -
Consolidate client runtime configuration options under
Client.config
, a data model defined withdwave.cloud.config.models.ClientConfig
and decouple config parsing fromdwave.cloud.Client
construction. See #504. -
Add
from_config()
family of factories todwave.cloud.api.client.DWaveAPIClient
and subclasses for SolverAPI, MetadataAPI and LeapAPI.from_config()
dispatches tofrom_config_model()
orfrom_config_file()
, depending on arguments. See #572. -
Use full client config for Metadata API access during region/endpoint resolution on
dwave.cloud.Client
construction. See #505. -
Add support for specifying connection read timeout separately from connect timeout. Previously, both read and connect timeouts were set to the same value, specified with the
request_timeout
configuration parameter. We now accept a(read, connect)
tuple for therequest_timeout
parameter. See #440. -
Add
--project
option todwave config create
, to be used in conjunction with--auto
/--auto-token
.When project is not specified, the configuration file is initialized with a SAPI token for the currently active Leap project.
Project can be specified via project name, code or ID.
-
Upgrade
dwave.cloud.api.models.*
to use Pydantic v2. See #555.
Upgrade Notes
-
Upgrade your python to 3.8+. We no longer support python 3.7 and below.
-
Method
from_client_config()
is removed fromdwave.cloud.api.resources.ResourceBase
, (affecting instantiation of its subclasses), in favor of a new methodfrom_config_model()
(or alternatively, a more generalfrom_config()
). Previously an instance of eitherdwave.cloud.Client
ordwave.cloud.api.DWaveAPIClient
was required, and now it's possible to use just the configuration, adwave.cloud.config.models.ClientConfig
object.To upgrade, replace
{ResourceBase}.from_client_config(cloud_client)
with{ResourceBase}.from_config_model(client.config)
, and{ResourceBase}.from_client_config(dwave_api_client)
with{ResourceBase}(dwave_api_client)
. -
@dwave.cloud.utils.cached
parametercache
has been renamed tostore
. -
API models now coerce Numpy types to Python types on validation (model instantiation), instead of holding
typing.Any
until serialization. -
Disk cache serialization changed from Python pickle to JSON. Currently, disk cache is used only for the list of Leap regions fetched from the Metadata API on
dwave.cloud.Client
instantiation. Upgrade should be seamless, as a new on-disk cache database file is created for each dwave-cloud-client version.
Deprecation Notes
-
Client method
get_regions
is deprecated in favor ofdwave.cloud.regions.get_regions
. -
Individual config options exposed as
dwave.cloud.Client
attributes are deprecated sincedwave-cloud-client==0.11.0
and will be removed indwave-cloud-client==0.12.0
. UseClient.config
data model instead.
Bug Fixes
-
Fix
@cached
instances isolation when using a shared storage (e.g. disk cache), viabucket
argument (cache key prefix). -
Fix random problem sampling on hybrid solvers via
dwave sample
CLI. See #557. -
Fix region/endpoint resolution during
dwave.cloud.Client
construction when insecure connection is required (config:permissive_ssl = On
) and/or a proxy is used (config:proxy = socks5://...
). Previously client construction would fail completely. See #507. -
Correctly set backoff_max time for retried requests when
urllib3>=2.0
is used. See #566.
dwave-inspector
0.4.2 ➞ 0.4.3
New Features
-
Handle web browser requests to the inspector server with problem ID missing by redirecting to the last problem show() was called for.
Besides being practical, this mitigates issues in some environments/setups with URL rewriters/proxies dropping URL path and/or query.
Upgrade Notes
- Upgrade your python to 3.8+. We no longer support python 3.7 and below.
dwave-system
1.20.0 ➞ 1.21.0
New Features
-
Add support for
dwave-cloud-client~=0.11.0
. See dwavesystems/dwave-system#500. -
Improve performance of BQM embedding. See dwavesystems/dwave-system#498.
Fixes
-
Fix
networkx
missing from requirements. See dwavesystems/dwave-system#494. -
Add time unit missing in docs. See dwavesystems/dwave-system#497.
Upgrade Notes
- Drop support for Python 3.7. See dwavesystems/dwave-system#499.
Package versions
dimod==0.12.12
dwave-cloud-client==0.11.0
dwave-greedy==0.3.0
dwave-hybrid==0.6.10
dwave-inspector==0.4.3
dwave-neal==0.6.0
dwave-networkx==0.8.14
dwave-preprocessing==0.6.3
dwave-samplers==1.1.0
dwave-system==1.21.0
dwave-tabu==0.5.0
dwavebinarycsp==0.2.0
minorminer==0.2.12
penaltymodel==1.0.2
pyqubo==1.4.0
# extras: all
dwave-gate==0.3.0