Changelog
dwave-cloud-client
0.13.2 ➞ 0.13.3
New Features
-
Add
PayloadCompressingSession
, arequests.Session
subclass that adds support for payload compression on the fly todwave.cloud.api.client.DWaveAPIClient
. See #654. -
Support compression of QPU problem data on upload in
SolverAPIClient
andapi.Problems
viacompress_qpu_problem_data
config option. -
More robust
Client.close()
.Client use after close is now disabled. An attempt to submit a problem, poll for a status, or download an answer will now result in an
UseAfterCloseError
exception.Also, solvers and computations now only weakly reference the client, so they don't block client resources cleanup.
See #217.
-
Disable client use while
Client.close()
is in progress by failing withUseAfterCloseError
. Also, make sure the close operation is thread-safe. A follow-up to #680.
Upgrade Notes
- Remove
Client.session
, an undocumented and unused client attribute. If still needed, can be replaced withClient.create_session()
.
dwave-optimization
0.4.2 ➞ 0.5.1
New Features
-
Implement C++
operator<=>(const Update&, const Update&)
andoperator==(const Update&, const Update&)
. This allowsUpdate
to be used withstd::ranges::stable_sort()
. -
Add a new Cython extension type,
_Graph
. The_Graph
class is responsible for managing a C++dwave::optimization::Graph
. Also makeModel
a Python class that inherits from_Graph
, rather than a Cython extension type. -
Add C++
DivideNode
and PythonDivide
symbol, and overriding__truediv__
.Divide
propagates the division of its predecessors element-wise. Note that predecessors of Divide must be either strictly positive or strictly negative. -
Add C++
SquareRootNode
and PythonSquareRoot
symbol.SquareRoot
propagates the square-root(s) of its predecessor element-wise. -
Add
const
and non-const
versions of C++ array iterators. -
Make C++ array iterators random access iterators. Previously they were bidirectional iterators.
-
Move C++
Graph
constructor and assignment operator definitions into thedwave-optimization/graph.hpp
. -
Explicitly disallow copy construction and copy assignment for C++
Graph
. -
Add some convenience methods to C++
Array::View
class. Specifically, implementArray::View::at()
,Array::View::back()
andArray::View::empty()
. Also makeArray::View
semi-regular. -
Add C++
RintNode
and PythonRint
symbol.Rint
propagates the values of its predecessor rounded to the nearest integer element-wise. -
Add Python
stack
symbol. See #191. -
Add C++
PutNode
. -
Generalize C++
ConstantNode
range constructors to work with all ranges rather than just with vectors. -
Add
Put
symbol andput()
function. See #202. -
Add random overloads for C++
DynamicArrayTestingNode::grow()
andDynamicArrayTestingNode::set()
. -
Add C++
PartialProdNode
. -
Add
PartialProd
symbol. -
Add
axis
keyword argument toArraySymbol.prod()
method. -
Add integral, max and min to
ConcatenateNode
. See #192. -
Support both lvalue and rvalue ranges in the constructor of the C++
ArrayOutputMixin
class. -
Rework C++
ReshapeNode
constructors to be more general. -
Support inferring the shape of one axis when reshaping array symbols by providing
-1
for the dimension's shape. -
Support reshaping non-contiguous array symbols.
-
Add C++
CopyNode
. See #16. -
Add
Copy
symbol. See #16.
Upgrade Notes
-
Remove C++
Update::equals(const Update&)
method in favour ofoperator==(const Update&, const Update&)
. -
It is no longer possible to
from dwave.optimization.model cimport Model
. Instead, importers shouldfrom dwave.optimization.model cimport _Graph
. A_Graph
has most of the functionality that aModel
did, although most of the symbol construction methods have been kept onModel
. -
The
dwave::optimization::ArrayIterator
class has been moved. It can now be found as a nested class in theArray
, i.e.dwave::optimization::Array::const_iterator
.
Deprecation Notes
-
Remove
::default_move()
method from the C++Decision
class and all subclasses. -
Remove C++
DynamicArrayTestingNode::random_moves()
method. -
Rework C++
NumberNode::initialize_state()
overloads for better consistency. -
Remove
RngAdaptor
class.
Bug Fixes
-
Fix
from dwave.optimization.symbols import *
. -
Fix typo in error message. See #193.
-
Previously,
Constant
symbols could be created from data that contained NaNs or infinite float values. Since these values, especially NaN, can cause issues during propagation when not expected, they could cause the model to exhibit incorrect behavior. As such, providing these values to initialize aConstant
symbol is now disallowed. -
Add missing C++
ReshapeNode::max()
,::min()
, and::integral()
methods. Thereby allowing reshaped arrays to be used as indices.
dwave-system
1.28.0 ➞ 1.29.0
New Features
-
Add support for context manager protocol to all samplers. See #91, #556.
The recommended way to use DWaveSampler is now from a runtime context:
with DWaveSampler() as sampler: sampler.sample_ising(...)
Alternatively, call the close() method to terminate the sampler resources:
sampler = DWaveSampler() ... sampler.close()
minorminer
0.2.15 ➞ 0.2.16
New Features
-
Add support for generating multiple disjoint embeddings of a source graph onto D-Wave graph topologies.
-
Add efficient methods and heuristics for determining embedding feasibility.
Upgrade Notes
-
Provide
manylinux_2_28
wheels instead ofmanylinux2014
. -
Matlab support was deprecated as of version 0.2.8 and removed in the current version.
Bug Fixes
-
Fixed bug in the layout module to correctly work for some edge cases.
-
Remove unnecessary
future
imports due to Python 2 not being supported.
Package versions
dimod==0.12.18
dwave-cloud-client==0.13.3
dwave-gate==0.3.3
dwave-hybrid==0.6.13
dwave-inspector==0.5.2
dwave-networkx==0.8.16
dwave-optimization==0.5.1
dwave-preprocessing==0.6.7
dwave-samplers==1.4.0
dwave-system==1.28.0
dwavebinarycsp==0.3.1
minorminer==0.2.17
penaltymodel==1.2.0