Releases: dwavesystems/dwave-ocean-sdk
8.1.0
Highlights
-
Add Python 3.13 support and drop Python 3.8 support.
-
Remove
dwave-drivers
anddwave.system.VirtualGraphComposite
. -
Drop
{greedy,neal,tabu}
namespaces in favor ofdwave.samplers.{greedy,neal,tabu}
. -
dwavebinarycsp
is deprecated as of this release and will be removed from dwave-ocean-sdk version 10.
Changelog
dimod
0.12.17 ➞ 0.12.18
New Features
- Add
SampleSet.wait_id()
as a proxy to the underlying QPU result
future, when sample set is constructed from such a future. See
#1392. - Add
multi_knapsack()
generator function todimod.generators
. - Add
quadratic_knapsack()
generator function todimod.generators
.
Upgrade Notes
- Drop support for Python 3.8.
Bug Fixes
- Fix warnings caused by using deprecated type aliases.
dwave-cloud-client
0.13.1 ➞ 0.13.2
New Features
-
Add Python 3.13 support.
-
Add
--raw
output mode to get-token CLI commands. See #598.
Upgrade Notes
-
Remove support for dimod 0.9.x. Upgrade dimod to 0.10.0+. See #595.
-
Upgrade your python to 3.9+. We no longer support python 3.8 and below.
Deprecation Notes
- Client utility function
dwave.cloud.coders.bqm_as_file()
is deprecated in favor ofdimod.BQM.to_file()
(available in dimod 0.10.0+) and will be removed in dwave-cloud-client 0.15.0.
Bug Fixes
- Update sample set creation in
dwave.cloud.computation.Future
to support dimod 0.12.18+. Previously,wait_id()
method used to be added to thefrom_future
-created sample sets in the cloud-client, and now theSampleSet
interface propagateswait_id
from the future by default. See dimod#1392 and dwave-system#540.
dwave-gate
0.3.2 ➞ 0.3.3
New Features
- Support Python 3.13
Upgrade Notes
- Remove support for Python 3.8
dwave-hybrid
0.6.12 ➞ 0.6.13
New Features
-
Add Python 3.13 support. See #298.
-
Add support for zephyr lattices on zephyr solvers. Improve handling of unyielded edges, improving performance for lower yield processors. See #297.
Fixes
Upgrade Notes
-
Drop Python 3.8 support and refresh CI. #298.
-
Drop support for
dimod<0.12
anddwave-systems<1.16
. See #299 and #301.
dwave-inspector
0.5.1 ➞ 0.5.2
New Features
- Add support for Python 3.13.
Upgrade Notes
-
Drop support for Python 3.8.
-
Drop support for
dwave-cloud-client<0.12
. See #183.
dwave-networkx
0.8.15 ➞ 0.8.16
New Features
-
Add four colorings for Zephyr and Pegasus, and a two coloring for Chimera. See #243.
-
Add Python 3.13 support. See #246.
Bug Fixes
-
Fix documentation warnings. See #241.
-
Fix Zephyr layout coords. See #236.
-
Fix docstrings for graph relabeling and sublattice mapping functionality missing from reference documentation. See #238.
Upgrade Notes
- Drop Python 3.8 support. See #246.
dwave-optimization
0.3.0 ➞ 0.4.2
New Features
-
Add capacitated vehicle routing problem with time windows generator.
See #104. -
Reduce the number of symbols in the model returned by
job_shop_scheduling()
generator. -
Add
Array::integral()
,Array::max()
, andArray::min()
overloads for all existing C++ nodes. -
Add C++
is_integer()
function. -
Support Python 3.13.
-
Model.add_constraints()
now returns the symbol for the constraint. -
Fully support scalar (0-dimensional) indices for advanced indexing
operations, e.g.A[i, :, j, :]
wherei
andj
are nodes with
scalar output. Previously, this would work only if the final output
of the indexing operation was also scalar. -
Add C++
DisjointListsNode::set_state()
method which allows for
setting the state of disjoint lists directly. -
Add C++
XorNode
and PythonXor
symbol.Xor
propagates the
logical exclusive-or of its two predecessors element-wise. See #125. -
Add C++
AnyNode
. See #148. -
Add
Any
symbol andArraySymbol.any()
method. See #148. -
Change the formulation of the
job_shop_scheduling()
generator to
remove redundant list variables and replace them with a disjunctive
non-overlapping constraint between each pair of jobs on the
machines. -
Raise clearer error messages when trying to use out-of-bounds
indices. -
Add C++
Graph::remove_unused_nodes()
method to remove nodes that
are not used in the objective or constraints. See #41. -
Add Python
Model.remove_unused_symbols()
method to remove nodes
that are not used in the objective or constraints. See #41. -
Improve the move/copy behavior of C++
ArrayIterator
. -
Add C++ index raveling-unraveling utilities functions.
-
Add C++
PartialReduceNode
. -
Add Python
PartialSum
symbol and addedaxis
keyword in
ArraySymbol.sum()
function. -
Implement C++
BinaryOpNode::sizeinfo()
overload. -
Add C++
ModulusNode
and PythonModulus
symbol.Modulus
propagates the modulus of its two predecessors element-wise. Modulus
symbols may be created with either the%
operator or themod()
function indwave.optimization.mathematical
. See #156.
Upgrade Notes
-
Using advanced indexing nodes with indexing arrays that have a
higher dimension than one (e.g.A[:, i, :, j]
wherei
andj
are 2d arrays) has been disabled. Previously, it was possible to
construct models that used this functionality, but the behavior of
the model during state initialization and propagation may not have
been correct. -
Remove redundant list variables in the
job_shop_scheduling()
generator and add disjunctive non-overlapping constraints between
each pair of jobs on the machines. -
Drop support for Python 3.8.
-
Change C++
ArrayIterator
to no longer have ownership of its fill
value when masked. -
Remove
vartypes.hpp
. TheVartype
enum was not used by any other
classes or functions.
Bug Fixes
-
Fix combined indexing. Previously indexing an array symbol by a
mixture of arrays, integers, and non-empty slices would always
result in an error. -
Update
AdvancedIndexingNode
to check the indices of its indexing
arrays to prevent out-of-bounds access. -
Fix the case of using scalar indices in an advanced indexing
operation where the indices were not grouped, e.g.A[:, i, :, j]
,
which was technically unsupported but no errors were raised. This
could also lead to segfaults during state initialization or
propagation. -
Update C++
UnaryOpNode
to correctly handle dynamic predecessors. -
Fix the possibility of creating a dangling reference when using a
masked C++ArrayIterator
. -
Implement missing overloads for
NaryMaximumNode::max()
,
NaryMaximumNode::min()
, andNaryMaximumNode::integral()
. -
Implement missing overloads for
NaryMinimumNode::max()
,
NaryMinimumNode::min()
, andNaryMinimumNode::integral()
. -
Fix two bugs in advanced indexing node propogation in the case of a
non-const main array with dynamic indexers, e.g.A[x]
whereA
is
a 1d integer decision variable andx
is a list. The first bug
could cause segfaults during propagation, and the second could lead
to incorrect output if both arrays were changed during propagation. -
Update the logic in the
capacitated_vehicle_routing_with_time_windows()
generator function
to correctly account for asymmetric time-distance matrices. -
Fix the type information for
ArraySymbol.__abs__()
. -
Fix serializing models with binary operations over dynamic
predecessors. Previously it was not possible to estimate the state
size which caused serialization to fail.
dwave-preprocessing
0.6.6 ➞ 0.6.7
New Features
- Support Python 3.13.
Bug Fixes
- Fix
SpinReversalTransformComposite
's handling of child samplers
that alter the variable order. Previously the spin reversal
transforms would not be correctly unapplied.
See [#142](...
8.0.1
Changelog
dwave-cloud-client
0.13.0 ➞ 0.13.1
New Features
-
Configuration constants like default region and default API endpoints are now available in a new module
dwave.cloud.config.constants
.Configuration-related exceptions are now available in a new module
dwave.cloud.config.exceptions
.dwave.cloud.config
module (with submodules) is now free from dependencies on other submodules, and it's safe to be imported in any cloud-client context.
Deprecation Notes
- Use of
dwave.cloud.api.constants
to access default configuration constants is deprecated indwave-cloud-client==0.13.1
in favor of a new config moduledwave.cloud.config.constants
, and will be disabled indwave-cloud-client==0.14.0
.
Bug Fixes
- Fix a circular import error. See #669.
Package versions
dimod==0.12.17
dwave-cloud-client==0.13.1
dwave-gate==0.3.2
dwave-greedy==0.3.0
dwave-hybrid==0.6.12
dwave-inspector==0.5.1
dwave-neal==0.6.0
dwave-networkx==0.8.15
dwave-optimization==0.3.0
dwave-preprocessing==0.6.6
dwave-samplers==1.3.0
dwave-system==1.26.0
dwave-tabu==0.5.0
dwavebinarycsp==0.3.0
minorminer==0.2.15
penaltymodel==1.1.0
8.0.0
Changelog
dimod
0.12.16 ➞ 0.12.17
New Features
-
Allow
BinaryQuadraticModel.contract_variables()
to contract variables without an interaction. Previously it raised aValueError
. -
Add
power_r()
generator function todimod.generators
. The weights of the generated Ising problems follow a power-law distribution with respect to their magnitude. -
Add
bin_packing
generator function todimod.generators
. -
Add
labels
keyword argument toConstrainedQuadraticModel.iter_constraint_data()
andConstrainedQuadraticModel.iter_violations()
methods. Thelabels
keyword argument allows a user to generate the data/violations for a subset of the constraints. See #1381. -
Add
knapsack
generator function todimod.generators
. -
Support Python 3.13.
-
Add
quadratic_assignment
generator function todimod.generators
.
dwave-cloud-client
0.12.1 ➞ 0.13.0
Prelude
- Solver metadata is now cached on disk, and validated using conditional requests, resulting in faster
Client
/Sampler
initialization. - Problem status is now observed using long polling, resulting in shorter delays between problem solved and solution downloaded.
- Problem data is now compressed for upload, resulting in faster problem submit on slower networks.
- Problem preprocessing time during submit is cut in half.
- Best case median QPU sample time now ranges from 260ms to 330ms.
New Features
-
Enable QPU problem data compression on upload using
deflate
content encoding.Compression is controlled with a new config option,
compress_qpu_problem_data
, defaulting to true, and it can be turned off either in config file or viaClient()
kwarg. See #622. -
Add long polling as problem status/answer polling strategy.
We add the following config options:
poll_strategy
("backoff"
is the current default,"long-polling"
is the new strategy),poll_wait_time
, andpoll_pause
. See #648. -
Add
timeout
keyword argument toapi.resources.Problems.get_problem_status()
andapi.resources.Problems.get_problem_statuses()
methods.Use it to enable long polling on problem status API endpoint. The connection is closed (server-side) when at least one problem completes, or the
timeout
(in seconds) elapses, whatever comes first. See #649. -
Add support for retrieving filtered solver configuration to
dwave.cloud.api.resources.Solvers
methods. See #644. -
Add API response caching support to
dwave.cloud.api
interface. Cache is validated using a conditional request based onETag
. See #645. -
Poll for problem-status update using long-polling strategy by default. See #662.
Long-polling strategy enables faster status-change propagation to the client, especially for longer jobs, or during heavy QPU usage.
-
Speed-up function calls that dispatch events by short-circuiting the dispatch in case no event handlers are registered. See #660.
-
Add
timeout
keyword argument toapi.resources.Problems.get_problem()
method.Use it to enable long polling on problem fetch API endpoint. The connection is closed (server-side) when the problem completes, or the
timeout
(in seconds) elapses, whatever comes first. In case problem completed in time, problem answer is returned in addition to problem status (which is always returned). See #657. -
Enable regions metadata API cache control in
dwave.cloud.regions.get_regions()
by switching toapi.Regions
built-in caching session. See #647. -
Speed-up JSON encoding and decoding by switching to
orjson
. See #423. -
Parse
Cache-Control
header field if present in API response, and use it to guide local caching policy.This means
dwave.cloud.api.DWaveAPIClient
anddwave.cloud.api.resource
classes now respect origin server response caching policy. See #646. -
Cache solver metadata on disk, using conditional requests for cache validation (update).
Static and dynamic parts of solver metadata are fetched and stored separately, to enable efficient caching.
See #613.
-
Lazily import
Client
/Solver
/Future
in the top-level namespace,dwave.cloud
. Direct imports are preferred, e.g.from dwave.cloud.client import Client
, but the widely-used way (from dwave.cloud import Client
) is still supported for backwards compatibility.Similarly we now lazily import old namespaces with client type as submodule, e.g.
dwave.cloud.qpu
.The main benefit of such lazy imports is import performance, as "heavy" symbols are only imported when explicitly needed/asked for. See #643.
-
Speed-up imports by slightly decoupling submodules. See #643.
-
Speed-up
dwave.cloud.utils.qubo.active_qubits
utility function by ~50%, anddwave.cloud.coders.encode_problem_as_qp
by 20-30%. See #661. -
Speed-up QPU problem sampling when problem submitted as BQM by 40%. For best performance, keep linear and quadratic biases in
dict
s. See #661. -
Cache dynamic solver metadata for up to 15 minutes, unless defined differently by API cache control response header. See #663.
Upgrade Notes
-
Short polling with exponential backoff is not used by default anymore, but it is still available. If for some reason you want to use it, set:
poll_strategy = backoff
configuration parameter in your config file, or the keyword argument in calls to
Client()
orClient.from_config()
. See #662. -
Config attributes previously available directly on
Client
instance, deprecated indwave-cloud-client==0.11.0
, are removed indwave-cloud-client==0.13.0
.Use config model (
dwave.cloud.config.models.ClientConfig
) available asClient.config
to access client configuration instead.Path to most attributes translates directly. For example,
Client.region
is now available asClient.config.region
. One attribute has been renamed (Client.default_solver
is nowClient.config.solver
), and allClient.poll_*
config options are consolidated underClient.config.polling_schedule.*
. SimilarlyClient.http_retry_*
options are now available underClient.config.request_retry.*
. See #664.
Deprecation Notes
-
dwave.cloud.utils.coders.NumpyEncoder
is deprecated and will be removed indwave-cloud-client==0.14.0
. Useorjson.dumps()
withOPT_SERIALIZE_NUMPY
option instead. See #652. -
Shorthand import paths for specialized Clients (for
qpu
,sw
andhybrid
) are deprecated indwave-cloud-client==0.12.2
and will be removed indwave-cloud-client==0.14.0
. Instead, use the full import path, e.g.from dwave.cloud.client.qpu import Client
, instead offrom dwave.cloud.qpu import Client
. See #643.
Bug Fixes
-
Defer SQLite connect in
@cached.ondisk()
until actually needed. Also, verify cache thread/process-safety and forking support. See #642. -
Fix
get_cache_dir()
to not create the cache directory by default. Creation is now optional and controlled withcreate
argument. This makes it consistent with other config path functions. See #642. -
Fix possible race condition during cache directory create. See homebase#37, #642.
-
During solver metadata filtering, treat solver
status
as a dynamic field. This is to handle an edge case when solver is markedoffline
, but it's still available via API. See #663.
dwave-hybrid
0.6.11 ➞ 0.6.12
New Features
- Add support for cubic lattice embeddings on Zephyr to
make_origin_embedding
. See #295.
Bug Fixes
-
Remove ambiguous xrefs to reduce build warnings. See #294.
-
Improve cubic lattice embedding on Zephyr, strengthen tests. See #296.
dwave-inspector
0.5.0.post0 ➞ 0.5.1
New Features
- Add support for
dwave-cloud-client~=0.13.0
.
dwave-optimization
0.2.0 ➞ 0.3.0
New Features
-
Add
Symbol.id()
method to return the identity of the underlying node. -
Add bin packing generator.
-
Add support for exponentiation of
ArraySymbol
...
7.1.0
Changelog
dimod
0.12.15 ➞ 0.12.16
New Features
-
Add
dimod/typing.pdx
. This allows users tocimport
common C types into other namespaces. -
Support NumPy 2.0. Also, no longer require NumPy at build-time.
-
Reduce the size of manylinux wheels.
Upgrade Notes
-
Remove Cython fused types
dimod.cyutilities.SignedInteger
,dimod.cyutilities.UnsignedInteger
,dimod.cyutilities.Integer
, anddimod.cyutilities.ConstInteger
,dimod.cyutilities.Numeric
, anddimod.cyutilities.ConstNumeric
. Use the types indimod.typing
instead. -
Remove Cython fused types
dimod.discrete.cydiscrete_quadratic_model.Unsigned
,dimod.discrete.cydiscrete_quadratic_model.Integral32plus
,dimod.discrete.cydiscrete_quadratic_model.Numeric
, anddimod.discrete.cydiscrete_quadratic_model.Numeric32plus
. Use the types indimod.typing
instead. -
Don't include debug info in built
.so
files.
dwave-cloud-client
0.12.0 ➞ 0.12.1
New Features
-
Add some basic benchmarks (use airspeed velocity/asv).
-
Add
dwave.cloud.testing.mocks.hybrid_cqm_solver_data()
, a mock metadata generator for the CQM hybrid solver. -
Add
dwave.cloud.coders.decode_qp_problem
, a decoder of quadratic unconstrained binary problems in SAPI's"qp"
format. -
Add
qpu_zephyr_solver_data
generator for mock QPU solvers with Zephyr topology.
Bug Fixes
-
Update
dwave.cloud.testing.mocks.hybrid_*_solver_data()
generators to include the full list of solver properties (albeit with mock/dummy values). -
Fix a regression bug introduced during utils module refactor and keep using
importlib_metadata
forentry_points()
access. See #631.
dwave-gate
0.3.1 ➞ 0.3.2
New Features
- Support, and build with, NumPy 2.0
Bug Fixes
-
Updates the circuit so that conditional parametric gates are evaluated in place when appended to the active circuit, fixing an issue where changes to these gates post application are not propagated to the circuit.
-
Remove PyQIR version check as it's been added as an optional dependency. A supported version can now be installed directly with
pip install dwave-gate[qir]
.
dwave-optimization
0.1.0 ➞ 0.2.0
New Features
-
Add C++
NaryOpNode(std::span<Node*>)
andNaryOpNode(std::span<Array*>)
constructors. -
Add
Model.num_edges()
method. See #28. -
Add quadratic assignment problem generator. See #29.
-
Add C++ method to rotate elements in a disjoint list.
-
Add support for
<,>,==,!=,<=,>=
operators betweenConstant
and array-like objects. -
Add support for
bool(constant)
,int(constant)
, andnot constant
whenconstant
is an instance ofConstant
encoding
a single scalar value. -
Make
repr()
of symbols unique to the underlying node, rather than to the Python symbol. See #52. -
Allow
dwave.optimization.generators.traveling_salesperson()
to accept an asymmetric distance matrix. -
Allow
dwave.optimization.generators.flow_shop_scheduling()
to accept non-integer processing times. -
Implement
ArraySymbol.__iadd__()
andArraySymbol.__imul__()
. The+=
operator will now return aNaryAdd
symbol. The*=
operator will now return aNaryMultiply
symbol. -
Implement
NaryAdd.__iadd__()
. In-place addition with aNaryAdd
symbol will no longer create a new symbol. -
Implement
NaryAdd.__imul__()
. In-place multiplication with aNaryMultiply
symbol will no longer create a new symbol. -
Add missing
typing
information todwave.optimization.add()
,dwave.optimization.maximum()
,dwave.optimization.minimum()
, anddwave.optimization.multiply()
. -
Support NumPy 2.0. Also, no longer require NumPy at build-time.
-
Speed up
Model.iter_symbols()
and other symbol iteration methods.
Upgrade Notes
-
Raise a
ValueError
when callingbool()
on anArraySymbol
. -
dwave.optimization.add()
,dwave.optimization.maximum()
,dwave.optimization.minimum()
, anddwave.optimization.multiply()
no longer accept a tuple of symbols as inputs. -
dwave.optimization.logical_and()
anddwave.optimization.logical_or()
arguments have been renamed. -
Remove
.from_ptr()
cdef
method from all of the symbol classes.
Bug Fixes
-
Fix
ArraySymbol.all()
for empty array symbols. See #43. -
Add missing
copy()
override for C++DisjointBitSetsNode
states. -
Fix
Symbol.to_networkx()
to no longer be compiler-dependant. See #18. -
Fix
dwave.optimization.generators.job_shop_scheduling()
for problems with the number of jobs is different than the number of machines. -
Return
NotImplemented
fromArraySymbol
operator methods for unknown types. -
Fix return type of
Symbol.maybe_equals()
to be integer instead of boolean. See #23.
dwave-preprocessing
0.6.5 ➞ 0.6.6
New Features
-
Speed up the removal of small biases in presolve.
-
Support NumPy 2.0. Also, no longer require NumPy at build-time.
dwave-samplers
1.2.0 ➞ 1.3.0
New Features
- Support, and build with, NumPy 2.0
Upgrade Notes
-
Require
dimod>=0.12.13
. -
Require
NetworkX>=3.0
.
minorminer
0.2.14 ➞ 0.2.15
Fixes
-
Refresh build files and reduce the size of built wheels
-
Replace broken docs badge with PyPI versions
-
Add reference to clique paper in README
Package versions
dimod==0.12.16
dwave-cloud-client==0.12.1
dwave-gate==0.3.2
dwave-greedy==0.3.0
dwave-hybrid==0.6.11
dwave-inspector==0.5.0.post0
dwave-neal==0.6.0
dwave-networkx==0.8.15
dwave-optimization==0.2.0
dwave-preprocessing==0.6.6
dwave-samplers==1.3.0
dwave-system==1.25.0
dwave-tabu==0.5.0
dwavebinarycsp==0.3.0
minorminer==0.2.15
penaltymodel==1.1.0
# exclude pyqubo until it supports py312
# pyqubo==1.4.0
7.0.0
Changelog
dimod
0.12.14 ➞ 0.12.15
New Features
-
Add C++
QuadraticModelBase::remove_interactions()
method. -
Add
dimod.generators.random_binary_paint_shop_problem()
binary paint shop problem generator. -
Add an abstract method
QuadraticViewsMixin.add_quadratic()
. -
Add a method
QuadraticViewsMixin.add_quadratic_from()
to add quadratic interactions. This method is intended to be used as follows:ConstrainedQuadraticModel.objective.add_quadratic_from()
, similarly toConstrainedQuadraticModel.objective.add_linear_from()
. -
Add
check_overlaps
keyword argument toConstrainedQuadraticModel.add_discrete()
, see #1364.
Upgrade Notes
- All sublcasses of
QuadraticViewsMixin
, includingObjectiveView
,QuadraticModel
andBinaryQuadraticModel
, now require to have the methodadd_quadratic()
.
dwave-cloud-client
0.11.4 ➞ 0.12.0
New Features
-
Add support for
binary-ref
answer encoding format, where answer data is not immediately present in the answer, but on an URI referenced in the answer response. -
Add
dwave.cloud.computation.Future.answer_data
property to hold the answer data of a resolved future. A call to.answer_data
will block until computation future is resolved. -
Add
dwave.cloud.api.models.UnstructuredProblemAnswerBinaryRef
model, a subclass ofProblemAnswer
forbinary-ref
answers, and a method for downloading answer data (resolving binary-ref),dwave.cloud.api.resources.Problems.get_answer_data
. -
Add support for nonlinear unstructured solvers with
dwave.cloud.solver.NLSolver
. -
Add request/response logging to
AuthFlow
/OAuth2Session
. -
Add basic support for structured logs (JSON output).
-
Enable log format control with
DWAVE_LOG_FORMAT
env variable (set to"json"
for structured output.
Upgrade Notes
-
dwave.cloud.utils
module has been split into the following submodules:dwave.cloud.utils.cli
,dwave.cloud.utils.coders
,dwave.cloud.utils.decorators
,dwave.cloud.utils.dist
,dwave.cloud.utils.exception
,dwave.cloud.utils.http
,dwave.cloud.utils.logging
,dwave.cloud.utils.qubo
, anddwave.cloud.utils.time
.First reason for doing this was code clean-up (including adding type annotations), but a more important reason is that this will enable import time optimization in the future. And that's why we break backwards compatibility by not importing everything back into the top-level utils namespace.
The utils module is considered Ocean-internal as is, so this move shouldn't affect user's code.
-
Positional arguments in
dwave.cloud.Client
constructor, deprecated in 0.10.0, are removed in 0.12.0. Use keyword arguments instead. -
Alias keys
samples
andoccurrences
(forsolutions
andnum_occurrences
) in the results dict ofdwave.cloud.computation.Future.result()
, deprecated in 0.8.0, are now finally removed in 0.12.0. We'll try to keep the result dict as close to raw data returned by SAPI as possible. Postprocessed data is instead available viadwave.cloud.computation.Future
properties.
Bug Fixes
-
Fix a possible race condition when multiple threads try to resolve remote computation results. A special case of this occurs on binary answer download from a reference link. See #624.
-
Log failing request/response details in the low-level API client.
-
Suppress logging output from the cloud-client by default (as recommended for libraries).
-
Format log record date/time according to ISO 8601.
dwave-networkx
0.8.14 ➞ 0.8.15
New Features
- Add support for Python 3.12
Upgrade Notes
- Drop support for Python 3.7
Bug Fixes
- Fix undefined variables for color maps. See #232.
dwave-optimization
0.1.0
Prelude
- The first release of
dwave-optimization
.
dwave-system
1.24.0 ➞ 1.25.0
New Features
- Add
LeapHybridNLSampler
. See dwavesystems/dwave-system#518.
Bug Fixes
-
Update
MockDWaveSampler
for fast anneal. See dwavesystems/dwave-system#520. -
Remove conditional aggregation from
ReverseBatchStatesComposite
. See dwavesystems/dwave-system#517.
minorminer
0.2.13 ➞ 0.2.14
New Features
rectangle-packer
is now included in the source rather than being a dependency.
Package versions
dimod==0.12.15
dwave-cloud-client==0.12.0
dwave-greedy==0.3.0
dwave-hybrid==0.6.11
dwave-inspector==0.5.0.post0
dwave-neal==0.6.0
dwave-networkx==0.8.15
dwave-optimization==0.1.0
dwave-preprocessing==0.6.5
dwave-samplers==1.2.0
dwave-system==1.25.0
dwave-tabu==0.5.0
dwavebinarycsp==0.3.0
minorminer==0.2.14
penaltymodel==1.1.0
# exclude pyqubo until it supports py312
# pyqubo==1.4.0
# extras: all
dwave-gate==0.3.1
6.10.0
Changelog
dwave-cloud-client
0.11.3 ➞ 0.11.4
New Features
-
Add
revoke_token
method todwave.cloud.auth.flow.AuthFlow
to enable revocation of OAuth 2.0 refresh/access tokens. See #600. -
Add
dwave auth revoke
CLI command to enable revocation of OAuth 2.0 refresh/access tokens from command line. See #600.
Bug Fixes
- Preemptively set upper bounds on dependencies to prevent future breaks on older installed versions in the wild. Also, correct lower bounds for requests and urllib3. See #612.
dwave-inspector
0.4.4 ➞ 0.5.0
New Features
-
Add support for fast anneal protocol. Display the new solver parameter
fast_anneal
and the new solver propertyfast_anneal_time_range
in the visualizer. See #170 -
Replace builtin JSON encoder with
orjson
, achieving 2-5x speed-up of problem and solver API endpoints. -
Replace
WSGIAsyncServer
withdwave.cloud.auth.server.BackgroundAppServer
, a more robust and stable multi-threaded server. By using a multi-threaded server we improve the visualizer app load time, as browsers can download static files and make API requests in parallel now. See #165.
Upgrade Notes
-
dwave.inspector.utils.NumpyJSONProvider
is removed and no longer available. Useorjson.dumps
withoption=orjson.OPT_SERIALIZE_NUMPY
instead. -
Minimal version of
dwave-cloud-client
required is now 0.11.0 to support #165 and fix #164.
Bug Fixes
-
Omit legacy solver parameters, like
num_spin_reversal_transforms
and postprocessing params (postprocess
,beta
,chains
) from the visualizer. See #166 and #168. -
Improve performance of the inspector server by postprocessing solver data inplace, saving one deep copy of solver metadata (~600kB for Advantage) on each API request of solver data.
dwave-system
1.23.0 ➞ 1.24.0
New Features
- Conversion from flux_biases (units of Phi0) to h (unitless) and vice-versa. See dwavesystems/dwave-system#513.
Bug Fixes
- Adapt
MockLeapHybridSolver
to work with cloud-client 0.11.3+. See dwavesystems/dwave-system#515.
Package versions
dimod==0.12.14
dwave-cloud-client==0.11.4
dwave-greedy==0.3.0
dwave-hybrid==0.6.11
dwave-inspector==0.5.0
dwave-neal==0.6.0
dwave-networkx==0.8.14
dwave-preprocessing==0.6.5
dwave-samplers==1.2.0
dwave-system==1.24.0
dwave-tabu==0.5.0
dwavebinarycsp==0.3.0
minorminer==0.2.13
penaltymodel==1.1.0
# exclude pyqubo until it supports py312
# pyqubo==1.4.0
# extras: all
dwave-gate==0.3.1
6.9.0
Changelog
dwave-cloud-client
0.11.2 ➞ 0.11.3
Bug Fixes
-
Use fixed authorization success URL, without any authorization query parameters appended (to minimize exposure), as they are not needed on the authorization server's success page.
-
Improve CSRF protection on localhost redirect URI during authorization code exchange. Previously,
state
was verified only if supplied. Now it's mandatory. Please note this is an additional CSRF protection on top of the PKCE, just in case PKCE is not supported (or properly implemented) server-side. -
Fix PKCE support in
dwave.cloud.auth.flow.AuthFlow
by properly includingcode_verifier
in fetch token (code exchange) requests. See #605. -
Remove circular references in
dwave.cloud.computation.Future
to enable easier garbage collection and lower memory footprint. See #601. -
Use a consistent
User-Agent
value for all API and non-API requests made byClient
,api.Client
andauth.flow
client. -
Speed-up
User-Agent
string construction significantly (10ms to 5us).
dwave-hybrid
0.6.10 ➞ 0.6.11
New Features
-
Add Python 3.12 support. See dwavesystems/dwave-hybrid#289.
-
Add support for Kings graph in large neighborhood search. See dwavesystems/dwave-hybrid#290.
-
Enable optional metadata tracking in LNLS (
LatticeLNLS
andLatticeLNLSSampler
). See dwavesystems/dwave-hybrid#292.
Fixes
-
Fix docs build. See dwavesystems/dwave-hybrid#291.
-
Use more specific assertions and
assertEqual
. See dwavesystems/dwave-hybrid#293.
Upgrade Notes
- Drop Python 3.7 support and refresh CI. See dwavesystems/dwave-hybrid#288.
Package versions
dimod==0.12.14
dwave-cloud-client==0.11.3
dwave-greedy==0.3.0
dwave-hybrid==0.6.11
dwave-inspector==0.4.4
dwave-neal==0.6.0
dwave-networkx==0.8.14
dwave-preprocessing==0.6.5
dwave-samplers==1.2.0
dwave-system==1.23.0
dwave-tabu==0.5.0
dwavebinarycsp==0.3.0
minorminer==0.2.13
penaltymodel==1.1.0
# exclude pyqubo until it supports py312
# pyqubo==1.4.0
# extras: all
dwave-gate==0.3.1
6.8.0
Changelog
dimod
0.12.13 ➞ 0.12.14
New Features
- Add C++
dimod::abc::QuadraticModelBase::remove_variables()
method
and accompanying overloads. - Speed up C++
dimod::Expression::remove_variables()
method.
dwavebinarycsp
0.2.0 ➞ 0.3.0
New Features
- Add testing and support for Python 3.11 and 3.12.
- Add support for and test with NetworkX 3.x.
Upgrade Notes
- Drop support for Python 3.7.
dwave-preprocessing
0.6.4 ➞ 0.6.5
New Features
- Build with dimod 0.12.14. This speeds up the removal of small biases in presolve.
dwave-system
1.22.0 ➞ 1.23.0
New Features
- NetworkX is no longer a direct dependency. See dwavesystems/dwave-system#504.
Deprecation Notes
- Deprecate
common_working_graph()
. It will be removed in dwave-system 2.0. Usenetworkx.intersection()
instead.
penaltymodel
1.0.2 ➞ 1.1.0
New Features
- Add testing and support for Python 3.11 and 3.12.
- Add support for and test with NetworkX 3.x.
Upgrade Notes
- Drop support for Python 3.7.
6.7.1
Changelog
dwave-cloud-client
0.11.1 ➞ 0.11.2
New Features
-
Add Python 3.12 support.
-
Add
dwave.cloud.utils.get_distribution
as a replacement forpkg_resources.get_distribution
unavailable in Python 3.12.
dwave-inspector
0.4.3 ➞ 0.4.4
New Features
- Add Python 3.12 support.
dwave-system
1.21.0 ➞ 1.22.0
New Features
-
Add support for Python 3.12.
-
Update the properties of the
MockDWaveSampler
to be more realistic. See dwavesystems/dwave-system#503.
minorminer
0.2.12 ➞ 0.2.13
New Features
-
Build wheels for Python 3.12.
-
Build C++ extensions with Cython 3.
pyqubo
Upgrade Notes
- Removed as a dependancy until it adds support for Python 3.12.
Package versions
dimod==0.12.13
dwave-cloud-client==0.11.2
dwave-greedy==0.3.0
dwave-hybrid==0.6.10
dwave-inspector==0.4.4
dwave-neal==0.6.0
dwave-networkx==0.8.14
dwave-preprocessing==0.6.4
dwave-samplers==1.2.0
dwave-system==1.22.0
dwave-tabu==0.5.0
dwavebinarycsp==0.2.0
minorminer==0.2.13
penaltymodel==1.0.2
# exclude pyqubo until it supports py312
# pyqubo==1.4.0
# extras: all
dwave-gate==0.3.1
6.7.0
Changelog
dimod
0.12.12 ➞ 0.12.13
New Features
-
Build wheels for Python 3.12.
-
Build C++ extensions with Cython 3.
dwave-cloud-client
0.11.0 ➞ 0.11.1
New Features
-
Add optional Leap authorization step to
dwave setup
CLI. During setup, we now install optional contributed packages, authorize Ocean to access Leap (--auth
and--oob
flags), and finally create the configuration file, optionally retrieving SAPI token from Leap API (if authorized) for the currently active Leap project, or project specified with--project
option. See #591. -
Add
--skip-valid
option todwave auth login
CLI. When used, authorization flow will be skipped if Leap access token is valid or if it can be refreshed. -
Prefer QPU solvers in
dwave ping
, unless overridden by user/config. See #592 -
Redirect user back to a Leap info page when auth redirect flow successfully completes. Similarly, redirect user to a Leap error page in case of an auth error.
dwave-preprocessing
0.6.3 ➞ 0.6.4
New Features
-
Build C++ extensions with Cython 3.
-
Build wheels for Python 3.12.
dwave-samplers
1.1.0 ➞ 1.2.0
New Features
-
Build C++ extensions with Cython 3.
-
Build wheels for Python 3.12.
Upgrade Notes
- No longer build wheels for Python 3.7.
dwave-gate
0.3.0 ➞ 0.3.1
New Features
-
Add support and build wheels for Python 3.12.
-
Build C++ extensions with Cython 3.
Package versions
dimod==0.12.13
dwave-cloud-client==0.11.1
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.4
dwave-samplers==1.2.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.1