Releases: dwavesystems/dwave-ocean-sdk
9.3.0
Changelog
dwave-cloud-client 0.14.3 ➞ 0.14.4
Bug Fixes
- Correctly filter secrets from structured logs. See #739.
dwave-hybrid 0.6.14 ➞ 0.6.15
New Features
-
Add Python 3.14 support. See #308.
-
Add
origin_embeddingsas argument for LNLS reference example. See #309.
Bug Fixes
- Fix
exclude_dimsincorrect enumeration. See #309.
Upgrade Notes
- Drop support for Python 3.9. See #308.
dwave-optimization 0.6.9 ➞ 0.6.11
New Features
- Add the
MatrixMultiplicationsymbol and corresponding method
matmul. Thematmulmethod follows the behavior of NumPy's
matmul, meaning that it works with matrices, vectors, and higher
order arrays. - Add
Tanhsymbol to support hyperbolic tangent. See #445. - Add C++
TanhNodeto support hyperbolic tangent. - Add Python
broadcast_shapes()function. - Add
subtract()function. - Add
equal()function. - Add
less_equal()function. - Automatically broadcast when using binary operators with array
symbols. - Add
dwave.optimization.typingmodule. - Allow array symbols to have a state-dependent shape while not having
a state-dependent size. For example, an array with shape(n, 0)
will always have a size of0, but the shape is state-dependent.
Arrays with a state-dependent size always have a state-depenent
shape. - Add C++
is_contiguous()function. - Add
predict()function todwave.optimization.generators. The
predict()function accepts a fitted
sklearn.neural_network.MLPCLassifieror
sklearn.neural_network.MLPRegressorand a symbol representingX,
and returns a symbol encoding the prediction of the estimator.
Upgrade Notes
- Opt
ArraySymbolout of NumPy interoperability. This means that
trying to use anArraySymbolwith most NumPy functions/operators
will fail. Prefer to use the functions in
dwave.optimization.mathematical. - Rename C++
broadcast_shape()tobroadcast_shapes()for
consistency with NumPy. - Change the definition of
ArrayNode::dynamic()to returntrueif
ArrayNode::shape()[0] < 0. That is, if the shape is
state-dependent. PreviouslyArrayNode::dynamic()returned true if
the size was state-dependent. - Remove C++
Array::is_contiguous()protected method.
Bug Fixes
- Fix type promotion when using NumPy arrays as the left-hand-side of
operations withArraySymbol. - Fix the maximum possible value reported by
SetNode::max().
Previously it would erroneously return a value derived from the
maximum subset size. - Fix
BinaryOpNodeat C++ level so that it does not
accept predecessors that have different, broadcastable shape if they
have the same size. - Disallow broadcasting a fixed size array to a dynamic shape with
BroadcastTosymbol. - Support broadcasting arrays to a shape with a
0in one or more
dimensions with theBroadcastTosymbol. - Fix reductions over empty dynamic arrays.
- Fix basic indexing that results in empty dynamic arrays.
- Fix
BroadcastToNode::contiguous()method, previously it would
always report that the node was not contiguous. - Provide a meaningful error message when attempting to make a dynamic
ConstantNodeat the C++ level. - Provide a meaningful error message when attempting to make a dynamic
NumberNode at the C++ level.
Package versions
dimod==0.12.21
dwave-cloud-client==0.14.4
dwave-gate==0.3.5
dwave-hybrid==0.6.15
dwave-inspector==0.5.5
dwave-networkx==0.8.18
dwave-optimization==0.6.11
dwave-preprocessing==0.6.11
dwave-samplers==1.7.0
dwave-system==1.34.0
minorminer==0.2.21
penaltymodel==1.3.0
9.2.0
Changelog
dwave-gate 0.3.4 ➞ 0.3.5
New Features
- Add support for Python 3.14. See #58.
Upgrade Notes
- Drop support for Python 3.9. See #58.
dwave-optimization 0.6.7 ➞ 0.6.9
New Features
- Add
ArraySymbol.info()method for information about the values an
array might take. - Add set union operation to C++
ValuesInfoclass. DisjointListssymbols are now indexable, returning the
correspondingDisjointList(singular) symbol for the given index.
This allows the method of creating disjoint lists on the model to be
simplified, returning only aDisjointListssymbol instead of a
tuple of the symbol and a list ofDisjointListsymbols. A new
methodModel.disjoint_lists_symbol()has been added to the Model
class which implements this.- Added
IsInsymbol/node which computes the element-wise containment
of one symbol with another. - Support equality and inequality comparison to
std::default_sentinelfor C++BufferIterator. - Implement
BufferIterator::operator+=and
BufferIterator::operator+for multi-increments. - Make
ARangesymbol aware of theSizesymbol. See
#390. - Added
Transposesymbol/node which computes the transpose of a
symbol. - Consolidate C++
ReduceNodeandPartialReduceNodeinto a single
node type. - Support reductions over multiple axes for all reduce operations. See
#347. - Add
Rollsymbol and correspondingroll()function. See
#423. - Support
Modulussymbol in expressions used inAccumulateZip.
Upgrade Notes
- Drop support for Python 3.9.
Deprecation Notes
- The
Model.disjoint_lists()method has been deprecated. Use
Model.disjoint_lists_symbol()instead. - Make
PartialProdandPartialSumsymbols aliases forProdand
Sum.
Bug Fixes
- Fixed issue (#409) in how ARangeNode calculated its sizeinfo.min and
sizeinfo.max. - Fix an issue with
AccumulateZipwhen given an expression that
contains unbounded input symbols. For some expressions, this would
result in malformed data being propagated through the expression on
initialization, which could then affect all subsequent propagations. - Fix
BroadcastTosymbol's diff creation. Previously it would
sometimes propagate the wrong information when broadcasting
high-demensional arrays. - Make the C++
deduplicate_diff_viewa non-template class. Rather,
make the constructor templated. This avoids a potential recursion
when usingdeduplicate_diff_viewin some concepts. - Change C++ function
broadcast_shape()correctly throw an error
when an attempt to broadcast a dynamically sized shape would result
in an invalid result. See
#429. - Fix
BinaryNode::shape(const State&)and
BinaryNode::size(const State&)so that they do not propagate the
wrong shape/size when both predecessors have the same shape. - Fix
Reducesymbol's bounds when given a dynamic predecessor that
is always empty.
Package versions
dimod==0.12.21
dwave-cloud-client==0.14.3
dwave-gate==0.3.5
dwave-hybrid==0.6.14
dwave-inspector==0.5.5
dwave-networkx==0.8.18
dwave-optimization==0.6.9
dwave-preprocessing==0.6.11
dwave-samplers==1.7.0
dwave-system==1.34.0
minorminer==0.2.21
penaltymodel==1.3.0
9.1.0
Changelog
dwave-cloud-client 0.14.0 ➞ 0.14.3
New Features
-
Add Python 3.14 support.
-
Implement
close()method and context protocol support onAuthFlowandLeapAuthFlowclasses. -
Implement minimal cache control through Ocean config interface (config files, environment variables, constructor keyword arguments).
Client caching is now controlled with
cache_enabled/cache_homeconfiguration parameters andDWAVE_CACHE_ENABLED/DWAVE_CACHE_HOMEenvironment variables.Caching is disabled by default in the low-level interfaces (
ClientConfigconfiguration model,dwave.cloud.api.*models, clients and resources, e.g.api.Solvers,api.Regions, etc.), but enabled in the high-levelClientinterface.See #614.
Upgrade Notes
- Upgrade your python to 3.10+. We no longer support python 3.9 and below.
Deprecation Notes
Solver.is_vfycproperty is deprecated since dwave-cloud-client 0.14.1 and will be removed in 0.15.0. Note that Leap QPU solvers in general don't support thevfyc(virtual full-yield chip) property anymore.
Bug Fixes
-
Workaround for SAPI returning invalid v3 solver representation of problems submitted using v2 representation (with Ocean < 9). When
Client.retrieve_answer()receives a solver identity withgraph_idmissing, we fall back to a partial solver match (based on name only). See #727. -
Fix resource leaks during diskcache/sqlite database use in
CachingSessionMixin,LeapAuthFlowand@cached. See #731. -
Fix answer retrieval for problems with
nullfor solver version (as returned by SAPI). See #736.
dwave-optimization 0.6.4 ➞ 0.6.7
New Features
- Add support for
booldtype to the C++BufferIterator. - Add new
dwave-optimization/common.hppfor compiler support and
backports from C++23. - Add new
dwave-optimization/fraction.hppfor C++fractionclass. - Add support for broadcasting array symbols to new shapes. This
includes:- A
BroadcastTosymbol. - New
broadcast_to()andbroadcast_symbols()functions. - A C++
BroadcastToNode.
- A
- Support reshaping dynamically sized symbols when the size of each
"row" in the new shape evenly divides the size of each "row" in
the original shape. - Add
CosandSinsymbols to support trigonometric sine and
cosine. - Add C++
CosNodeandSinNodeto support trigonometric sine and
cosine. - Added
SoftMaxsymbol/node which returns the softmax of its
predecessor. - Make
dwave.optimization.symbolsa sub-package rather than a sub-module. - Index-wise bounds added to
NumberNode. Available to bothIntegerNodeand
BinaryNode.
Upgrade Notes
- Remove
dwave-optimization/utils.hppheader. - Move C++
double_kahanimplementation behind the compilation
barrier.
Bug Fixes
- Fix
SetNode::assign()method. Previously it would sometimes
propagate incorrect updates when assigned a smaller state. - Fix setting or mutating
Model.objective. Until dwave-optimization
0.6.4, it was possible to set the objective of aModeldirectly.
However, in 0.6.4 and 0.6.5 doing so would result in that change not
being reflected in serialized models. This fix restores support for
setting or mutatingModel.objectivedirectly.
dwave-preprocessing 0.6.10 ➞ 0.6.11
New Features
- Add support for Python 3.14.
Upgrade Notes
- Drop support for Python 3.9.
dwave-samplers 1.6.0 ➞ 1.7.0
New Features
- Add support for Python 3.14.
Upgrade Notes
- Drop support for Python 3.9.
dwave-system 1.33.0 ➞ 1.34.0
New Features
-
Add support for Python 3.14.
-
Add
.wait_idmethod to a future returned byLeapHybridNLSampler. See #602.
Upgrade Notes
-
Drop support for Python 3.9.
-
Remove
vfycsolver property andmax_answerssolver parameter fromDWaveMockSamplerto reflect the current state of solver properties returned by SAPI. See #600.
Bug Fixes
- Fix handling of initial_state kwarg for the sampling routine: instead of handling this parameter incorrectly an warning is thrown (parameter not mocked), as per other unsupported arguments. See #587.
minorminer 0.2.19 ➞ 0.2.21
New Features
-
New coloring features for subgraph matching (nodes or directed edges can be assigned labels with the
node_labelsandedge_labelsarguments tosubgraph.find_subgraph). See #272. -
Add additional new argument
as_embeddingtosubgraph.find_subgraphto return a dict with iterable values similar to other embedding tools. See #272. -
Add support for Python 3.14. See #276.
-
Add
seedargument tosubgraph.find_subgraphto randomize algorithm. See #273. -
Add support for non-injective homomorphisms in
subgraph.find_embeddingthrough newinjectivityargument. See #273. -
Add the ability to interrupt
subgraph.find_subgraphwith ctrl-c. See #275.
Upgrade Notes
- Drop support for Python 3.9. See #276.
Bug Fixes
-
Argument list made explicit rather than over-reliance on
kwargs. See #273. -
Proper support for nodes without incident edges. See #273.
Package versions
dimod==0.12.21
dwave-cloud-client==0.14.3
dwave-gate==0.3.4
dwave-hybrid==0.6.14
dwave-inspector==0.5.5
dwave-networkx==0.8.18
dwave-optimization==0.6.7
dwave-preprocessing==0.6.11
dwave-samplers==1.7.0
dwave-system==1.34.0
minorminer==0.2.21
penaltymodel==1.3.0
9.0.0
Highlights
-
Solver identification has changed with SAPI solver representation v3. See
dwave-cloud-clientchanges below for details. -
dwavebinarycsp, deprecated in Ocean 8.1 is now removed in Ocean 9. -
penaltymodelis deprecated and will be removed in Ocean 10.
Changelog
dimod 0.12.20 ➞ 0.12.21
New Features
- Add support for Python 3.14.
Bug Fixes
- Fix
Variables._relabel()method. Previously when given a superset
of labels that happen to correspond to valid indices the wrong
relabelling would sometimes be applied. See also
#1408.
dwave-cloud-client 0.13.6 ➞ 0.14.0
Prelude
Solver identification has changed with SAPI solver representation v3. Instead of a unique string id, each solver is now uniquely referenced by a more descriptive identity dictionary. Each solver still has a name, but to uniquely identify a specific working graph of a structured solver (QPU), graph_id has to be used. Hybrid (unstructured) solvers are still uniquely identified by their name.
New Features
-
Allow
solverto be specified using the new solver identity string representation.The new format is supported in a config file:
[my-experiment] solver = Advantage_system6.4;graph_id=01dae5a273environment variable:
DWAVE_API_SOLVER='Advantage_system6.4;graph_id=01dae5a273'as an argument to the
dwaveCLI:dwave solvers -s 'Advantage_system6.4;graph_id=01dae5a273'or as the client constructor argument:
from dwave.cloud import Client with Client.from_config(solver='Advantage_system6.4;graph_id=01dae5a273') as client: solver = client.get_solver() assert(solver.name == 'Advantage_system6.4') assert(solver.graph_id == '01dae5a273')Note: specifying your solver via name only is still possible. In that case, working graph version is not constrained.
See #714.
- Pass-through unused keyword arguments in
dwave.cloud.utils.http.BaseUrlSessionMixinconstructor. This enables mixing with session mixins fromdwave.cloud.api.clientin any order.
- Enable
DWaveAPIClientto properly cache different API response representation versions by reordering session mixins. Caching layer is now below the API version handling, hence capturing changes from the versioning layer.
- Facilitate cached content validation and parsing by caching the response content type as part of metadata in
dwave.cloud.api.client.CachingSessionMixin.
-
Make
SolverIdentitystring representation more explicit. Version components are now clearly identified, avoiding ambiguity and enabling reverse lookups (i.e. conversion between string representation and solver identity structure).Add
SolverIdentity.from_id()factory that creates solver identity model off its string representation.See #713.
-
Implement support for SAPI v3 solver representation format. Use it by default.
Use
Solver.identityinstead ofSolver.idto uniquely reference a specific solver and its version.See #696.
-
Feature-based solver filtering via
Client.get_solver()andClient.get_solvers()has been extended to support the newidentityfield (dict),version(dict) andgraph_id(string). For example:client.get_solvers(name='Advantage_system6.4', graph_id='01dae5a273') client.get_solvers(graph_id='01dae5a273') client.get_solvers(version__graph_id='01dae5a273') client.get_solvers(identity__version={'graph_id': '01dae5a273'}) client.get_solvers(category='qpu', order_by='graph_id') client.get_solver(id='Advantage_system6.4;graph_id=01dae5a273')
- Add
SolverVersionandSolverIdentitytodwave.cloud.api.models. They both compare with adict, and serialize with.dict()for convenience.
- Speed-up
StructuredSolverconstruction by deferring initialization of large data members.nodes,edgesandundirected_edgesare now cached properties, constructed on first access. See #706.
- Add
dwave cachegroup of commands for listing cache directories used by the cloud-client, displaying additional information about the cache, as well as purging it. See #719.
-
Add support for Leap deprecation messages to
dwave.cloud.client.Clientanddwave.cloud.api.client.DWaveAPIClient.Deprecation messages received are raised as Python warnings using a new category,
dwave.cloud.api.exceptions.ResourceDeprecationWarningand logged using theWARNINGlog level.See #721.
-
Enable the previous client close behavior to wait for all remote jobs to finish.
Waiting for all jobs to finish and their results to be downloaded before shutting down the client is now the new default. To close the client as fast as possible (immediately preventing status polls and answer downloads), set the
waitargument to false:Client.close(wait=False).See #712.
Upgrade Notes
- Switch to using solver's
identitystructure in place of the legacy stringid.
Solver.datatype changed from a raw dict (as returned by SAPI) to thedwave.cloud.api.models.SolverConfigurationmodel. This is mostly a backwards-compatible change, since getter/setter interface is supported.
- The type of
solverargument todwave.cloud.api.resources.Problemsmethods (submit_problemandlist_problems) changed from a string, to aSolverIdentitymodel.
-
dwave.cloud.Client.get_regions()which has been deprecated since cloud-client 0.11.0, is now removed in favor ofdwave.cloud.regions.get_regions(). Usage example available in the docs.The main benefit of
get_regionsas a stand-alone function is thatClientdoesn't have to be instantiated (and configured to use the default region), just to be able to fetch the list of regions.
-
We removed (previously deprecated) aliases for client types.
Replace your
Clientimports fromdwave.cloud.{type}with imports fromdwave.cloud.client.{type}(typebeingqpu,sworhybrid).
- Remove API constants deprecated in 0.13.1 and moved to
dwave.cloud.config.constantsfromdwave.cloud.api.constants:DEFAULT_METADATA_API_ENDPOINT,DEFAULT_REGION,DEFAULT_SOLVER_API_ENDPOINT,DEFAULT_LEAP_API_ENDPOINT.
dwave.cloud.utils.coders.NumpyEncoderis now removed in favor oforjson.dumps()used with theOPT_SERIALIZE_NUMPYflag. We first deprecatedNumpyEncoderin dwave-cloud-client 0.12.2.
Deprecation Notes
Solver.idis deprecated in favor ofSolver.identity. Solver "ID" is not available anymore, so it's constructed on the fly from theidentityfield, with the uniqueness assumption preserved.
solver_idargument indwave.cloud.api.resources.Solvers.get_solver()is deprecated in favor ofsolver_name.
Bug Fixes
- Fix tests to never (accidentally) contact 3rd-party mock sites nor depend on their functionality. See #707.
- Make answer field optional on the
dwave.cloud.api.models.ProblemInfomodel in order to support problems not completed (e.g. pending or failed). See #703.
- Preserve
Content-Typeof a response cached withCachingSessionMixin.
dwave-inspector 0.5.4 ➞ 0.5.5
New Features
- Implement support for the new solver identity concept available as of
dwave-cloud-client>=0.14.0.
Upgrade Notes
- Drop support for
dwave-cloud-client<0.13.0.
dwave-optimization 0.6.2 ➞ 0.6.4
New Features
- Update the C++
ConstantNodeconstructors to acceptconst double*
rather thandouble*. - Add the
Extractsymbol and node, following the behavior of
numpy.extract. See
#272. - Allow BinaryOpNode (which Add, And, Multiply, etc. rely on) to
accept two dynamic-sized predecessors, as long as they have an
equivalent shape as determined by theirsizeinfo(). - Add
.lower_bound(),.upper_bound(), and.integral()methods to
theInputsymbol. - The Where node/symbol now supports the case of all three
predecessors being dynamic, as long as they have the same shape and
size. - Add
ArgSortsymbol/node which returns a stable argsort of its
predecessor. - Add
expression()decorator for constructing expressions. - Add the
AccumulateZipsymbol and correspondingAccumulateZipNode
node in the C++. This symbol computes an arbitrary accumulate
operation on 1-d arrays, similar tonumpy.ufunc.accumulate, except
that it takes any number of operands/predecessors. The accumulate
operation is supplied by the user and encoded as anExpression. - The
Constantsymbol is now able to pass ownership of the
corresponding numpy array to theConstantNodewhich prevents the
...
8.4.0
Changelog
dwave-cloud-client 0.13.4 ➞ 0.13.6
New Features
-
Return uploaded problem data id as part of
Sampleset.info(theproblem_data_idkey). See #466. -
Convert
requests.Sessionsubclasses indwave.cloud.api.clientto mixins.BaseUrlSessionMixin,LoggingSessionMixin,PayloadCompressingSessionMixin,VersionedAPISessionMixinandCachingSessionMixincan now be combined and used independently of each other. -
Enforce supported API response version on base client methods (problem submit, status poll, problem cancel, answer download). In case of unsupported API response, an
InvalidAPIResponseErrorexception is raised. See #697.
Bug Fixes
- Handle inconsistent cache in
CachingSession(partial eviction edge case). See #691.
Upgrade Notes
- Switch from pkgutil-style namespace package to native namespace package (PEP 420). While native namespace packages and pkgutil-style namespace packages are largely compatible, we recommend using only native ones going forward.
Deprecation Notes
- The following
requests.Sessionsubclasses are deprecated in favor of their mixin variants:LoggingSession,PayloadCompressingSession,VersionedAPISession,CachingSession. They'll be removed in dwave-cloud-client 0.15.0.
dwave-gate 0.3.3 ➞ 0.3.4
Upgrade Notes
- Switch from pkgutil-style namespace package to native namespace package (PEP 420). While native namespace packages and pkgutil-style namespace packages are largely compatible, we recommend using only native ones going forward. See #56.
dwave-inspector 0.5.3 ➞ 0.5.4
Upgrade Notes
- Switch from pkgutil-style namespace package to native namespace package (PEP 420). While native namespace packages and pkgutil-style namespace packages are largely compatible, we recommend using only native ones going forward.
dwave-networkx 0.8.17 ➞ 0.8.18
New Features
- Add
draw_parallel_embeddings(). See #247.
Bug Fixes
- Fix typos in source graph error messages. See #252.
dwave-optimization 0.6.0 ➞ 0.6.2
New Features
-
Add C++
BSplineNodeand PythonBSplinesymbol.BSplinepropagates the bspline interpolation values of its predecessor element-wise given the bspline constants (degree, knots and coefficients). -
Add C++
ExpNodeand PythonExpsymbol.Exppropagates the base-e exponential values of its predecessor element-wise. See #282. -
Add
Inputsymbol and correspondingInputNodenode in the C++. This symbol is meant to function as a "placeholder" in a model. -
Improve the error messages returned by
ListVariable.set_state()andSetVariable.set_state(). -
Add C++
CollectionNode::assign()method. -
Add
absolutefunction as an alias for the built-inabs. -
Add Python
safe_divide()function andSafeDividesymbol. Also add C++SafeDivideNode. See #290. -
Add overloads to C++ methods
Graph::commit(),Graph::propagate(), andGraph::revert()that commit, propagate, or revert respectively all nodes in the graph. -
Add a default constructor for C++
BinaryNode.
Upgrade Notes
- Rename the first argument
ListVariable.set_state()andSetVariable.set_state()fromstatetovalues.
Bug Fixes
-
Make C++
dwave::optimization::functionalobjects more consistent with the standard library by adding overloads for other numeric types and marking most operations asconstexpr. -
Fix iteration over
ArraySymbols. Now iteration works correctly forArraySymbols with more than one dimension and a fixed size. OtherArraySymbols now raise aTypeError. See #287.
dwave-preprocessing 0.6.8 ➞ 0.6.9
New Features
- Propagate
SampleSet.infofrom child sampler inSpinReversalTransformCompositein the unambiguous case of a single spin reversal transform. See dimod#111, dwave-system#564 and #147.
Upgrade Notes
- Switch from pkgutil-style namespace package to native namespace package (PEP 420). While native namespace packages and pkgutil-style namespace packages are largely compatible, we recommend using only native ones going forward. See #155.
dwave-samplers 1.5.0 ➞ 1.6.0
Upgrade Notes
- Switch from pkgutil-style namespace package to native namespace package (PEP 420). While native namespace packages and pkgutil-style namespace packages are largely compatible, we recommend using only native ones going forward.
dwave-system 1.30.0 ➞ 1.32.0
New Features
-
Add problem info to the NL sampler result. See #565.
-
Add
anneal_schedule_with_offset()function. See #568. -
Add
energy_scales_custom_schedule()function. See #570. -
Add
ParallelEmbeddingComposite, a generalization of theTilingCompositethat can handle bigger and non-Chimera source graphs on any structured graph supported byDWaveSampler(including Zephyr). See #569.
Deprecation Notes
TilingCompositeis deprecated in favor ofParallelEmbeddingCompositeand it will be removed in dwave-system 2.0. See #577.
Upgrade Notes
- Switch from pkgutil to native namespace package. See #571.
Bug Fixes
- Fix
DWaveCliqueSamplersometimes creating out-of-range biases. See #572.
minorminer 0.2.18 ➞ 0.2.19
New Features
- Allow lattice type and lattice dimensions to be passed as options for
find_sublattice_embeddings(). See #266.
Bug Fixes
- Fix
find_sublattice_embeddings()to not produce non-disjoint embeddings whenuse_tile_embedding=Trueis set. See #265.
Package versions
dimod==0.12.20
dwave-cloud-client==0.13.6
dwave-gate==0.3.4
dwave-hybrid==0.6.14
dwave-inspector==0.5.4
dwave-networkx==0.8.18
dwave-optimization==0.6.2
dwave-preprocessing==0.6.9
dwave-samplers==1.6.0
dwave-system==1.32.0
dwavebinarycsp==0.3.1
minorminer==0.2.19
penaltymodel==1.2.0
8.3.0
Changelog
dimod 0.12.18 ➞ 0.12.20
New Features
-
Use
dictrather thancollections.OrderedDictto capture the inputs inTrackingComposite. See also #1395. -
Add
dimod.Scopedabstract base class for components that allocate scope-bound resources. -
Implement
dimod.Scopedinterface ondimod.Sampleranddimod.Composite. See dwave-system#555. -
Add
quadratic_multi_knapsackgenerator function todimod.generators.
Bug Fixes
- Fix inheritance in
ComposedSamplerandComposedPolySamplerso that composite attributes override sampler attributes. See #1402.
dwave-cloud-client 0.13.3 ➞ 0.13.4
New Features
-
Add
output_fileparameter todwave.cloud.utils.logging.configure_logging()to simplify logging to a file. -
Add
dwave.cloud.api.models.ProblemJob.from_info()helper factory method that constructs a problem job model from problem info model. -
Allow
dwave.cloud.api.resources.Problems.submit_problem()to accept a problem described by aProblemJobmodel, with individual attributes optionally modified by keyword arguments.
dwave-hybrid 0.6.13 ➞ 0.6.14
New Features
- Restructure and update references for unified documentation. See #305.
dwave-inspector 0.5.2 ➞ 0.5.3
New Features
- Restructure and update references for unified documentation. See #185.
dwave-networkx 0.8.16 ➞ 0.8.17
New Features
- Restructure and update references for unified documentation. See #250.
dwave-optimization 0.5.1 ➞ 0.6.0
New Features
-
Add C++
Array::minmax()method that accepts acacheargument. This method can avoid a potentially expensive depth first search through the node graph. See #182. -
Add C++
ExpitNodeand PythonExpitsymbol.Expitpropagates the logistic sigmoid values of its predecessor element-wise. -
Add C++
ARangeNodeand PythonARangesymbol andarange()function. -
Add C++
LogNodeand PythonLogsymbol.Logpropagates the natural logarithm of its predecessor element-wise. -
Add virtual
Node::deterministic_state()C++ method. This method allows nodes to communicate whether or not their state is uniquely derived from its predecessors. -
Add support for serialization format version 1.0. This format is more efficient for storing the states of fixed-size array symbols. It also supports saving the states of nondeterministic intermediate array symbols.
-
Add
substitutekeyword argument toModel.from_file(). -
Add
atleast_1d(),atleast_2d(),hstack(), andvstack()functions. See #240. -
Add
LinearProgram(linear program) symbol and related derivative symbols. -
Add
linprog()function. This function accepts array symbols representing a linear program and returns array symbols giving the result.
Upgrade Notes
-
The C++
Array::min()andArray::max()methods are no longervirtual, but instead call the more generalArray::minmax()method. Subclasses ofArrayshouldoverridetheArray::minmax()method instead. -
Change
stack()andconcatenate()functions handling of single array inputs. They are no longer passed through; the functions now raise an error instead.
Bug Fixes
-
Fix
ConcatenateNodepropagation. Previously in some cases it would record the wrong update index. -
Fix bug in basic indexing propagation that may have caused some updates from the predecessor array to not get propagated when the start of the indexing operation was offset from the start of the predecessor array. This would happen only when the predecessor array is statically sized or the start and stop of the domain are both positive.
-
Fix the C++
ConcatenateNode::minmax()method. Previously it would not pass thecacheargument to its predecessors. -
Correctly update the state of the mask when reverting a
PutNode.
dwave-preprocessing 0.6.7 ➞ 0.6.8
New Features
- All
dwave.preprocessing.composites.*are now scoped (implementdimod.Scopedbehavior), i.e. they can be used as a context manager.
Bug Fixes
- Fix inheritance in
SpinReversalTransformCompositeso that composite attributes override sampler attributes. See #150.
dwave-samplers 1.4.0 ➞ 1.5.0
New Features
-
Add
PathIntegralAnnealingSampler, aSimulatedAnnealingSamplerstyle wrapper for the dwave-pimc repository. This supports simulation of path-integral dynamics and equilibrium sampling of quantum Boltzmann distributions (King et al., 2021). -
Add
RotorModelAnnealingSampler, aSimulatedAnnealingSamplerstyle code for rotor model simulation. This supports a standard classical algorithm for approximation of spin dynamics (Shin et al., 2014).
Bug Fixes
- Add all keyword args of
SimulatedAnnealingSampler.sampletoSimulatedAnnealingSampler.parameters. This allows effective use ofdimod.Sampler.remove_unknown_kwargs.
dwave-system 1.29.0 ➞ 1.30.0
New Features
-
Make samplers and composites scoped. See #555.
-
Restructure and update references for unified documentation. See #560.
-
Add multiparameter pseudolikelihood estimation, include background susceptibility. See #562.
-
Support
dwave-optimizationversions 0.6 and 0.7. See #559.
minorminer 0.2.17 ➞ 0.2.18
New Features
-
Minor improvements in
parallel_embeddingsandfeasibilityutility modules. See #259. -
Restructure and update references for unified documentation. See #262.
Bug Fixes
- Remove obsolete doxygen configuration. See #263.
Package versions
dimod==0.12.20
dwave-cloud-client==0.13.4
dwave-gate==0.3.3
dwave-hybrid==0.6.14
dwave-inspector==0.5.3
dwave-networkx==0.8.17
dwave-optimization==0.6.0
dwave-preprocessing==0.6.8
dwave-samplers==1.5.0
dwave-system==1.30.0
dwavebinarycsp==0.3.1
minorminer==0.2.18
penaltymodel==1.2.0
8.2.0
Changelog
dwave-cloud-client 0.13.2 ➞ 0.13.3
New Features
-
Add
PayloadCompressingSession, arequests.Sessionsubclass 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
SolverAPIClientandapi.Problemsviacompress_qpu_problem_dataconfig 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
UseAfterCloseErrorexception.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 allowsUpdateto be used withstd::ranges::stable_sort(). -
Add a new Cython extension type,
_Graph. The_Graphclass is responsible for managing a C++dwave::optimization::Graph. Also makeModela Python class that inherits from_Graph, rather than a Cython extension type. -
Add C++
DivideNodeand PythonDividesymbol, and overriding__truediv__.Dividepropagates the division of its predecessors element-wise. Note that predecessors of Divide must be either strictly positive or strictly negative. -
Add C++
SquareRootNodeand PythonSquareRootsymbol.SquareRootpropagates the square-root(s) of its predecessor element-wise. -
Add
constand non-constversions of C++ array iterators. -
Make C++ array iterators random access iterators. Previously they were bidirectional iterators.
-
Move C++
Graphconstructor 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::Viewclass. Specifically, implementArray::View::at(),Array::View::back()andArray::View::empty(). Also makeArray::Viewsemi-regular. -
Add C++
RintNodeand PythonRintsymbol.Rintpropagates the values of its predecessor rounded to the nearest integer element-wise. -
Add Python
stacksymbol. See #191. -
Add C++
PutNode. -
Generalize C++
ConstantNoderange constructors to work with all ranges rather than just with vectors. -
Add
Putsymbol andput()function. See #202. -
Add random overloads for C++
DynamicArrayTestingNode::grow()andDynamicArrayTestingNode::set(). -
Add C++
PartialProdNode. -
Add
PartialProdsymbol. -
Add
axiskeyword 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++
ArrayOutputMixinclass. -
Rework C++
ReshapeNodeconstructors to be more general. -
Support inferring the shape of one axis when reshaping array symbols by providing
-1for the dimension's shape. -
Support reshaping non-contiguous array symbols.
-
Add C++
CopyNode. See #16. -
Add
Copysymbol. 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_Graphhas most of the functionality that aModeldid, although most of the symbol construction methods have been kept onModel. -
The
dwave::optimization::ArrayIteratorclass 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++Decisionclass and all subclasses. -
Remove C++
DynamicArrayTestingNode::random_moves()method. -
Rework C++
NumberNode::initialize_state()overloads for better consistency. -
Remove
RngAdaptorclass.
Bug Fixes
-
Fix
from dwave.optimization.symbols import *. -
Fix typo in error message. See #193.
-
Previously,
Constantsymbols 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 aConstantsymbol 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_28wheels 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
futureimports 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
8.1.0
Highlights
-
Add Python 3.13 support and drop Python 3.8 support.
-
Remove
dwave-driversanddwave.system.VirtualGraphComposite. -
Drop
{greedy,neal,tabu}namespaces in favor ofdwave.samplers.{greedy,neal,tabu}. -
dwavebinarycspis 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
--rawoutput 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.Futureto 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 theSampleSetinterface propagateswait_idfrom 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.12anddwave-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, :]whereiandjare 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++
XorNodeand PythonXorsymbol.Xorpropagates the
logical exclusive-or of its two predecessors element-wise. See #125. -
Add C++
AnyNode. See #148. -
Add
Anysymbol 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
PartialSumsymbol and addedaxiskeyword in
ArraySymbol.sum()function. -
Implement C++
BinaryOpNode::sizeinfo()overload. -
Add C++
ModulusNodeand PythonModulussymbol.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]whereiandj
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++
ArrayIteratorto no longer have ownership of its fill
value when masked. -
Remove
vartypes.hpp. TheVartypeenum 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
AdvancedIndexingNodeto 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++
UnaryOpNodeto 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]whereAis
a 1d integer decision variable andxis 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.configmodule (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.constantsto access default configuration constants is deprecated indwave-cloud-client==0.13.1in 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_packinggenerator function todimod.generators. -
Add
labelskeyword argument toConstrainedQuadraticModel.iter_constraint_data()andConstrainedQuadraticModel.iter_violations()methods. Thelabelskeyword argument allows a user to generate the data/violations for a subset of the constraints. See #1381. -
Add
knapsackgenerator function todimod.generators. -
Support Python 3.13.
-
Add
quadratic_assignmentgenerator 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/Samplerinitialization. - 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
deflatecontent 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
timeoutkeyword 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.Solversmethods. See #644. -
Add API response caching support to
dwave.cloud.apiinterface. 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
timeoutkeyword 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.Regionsbuilt-in caching session. See #647. -
Speed-up JSON encoding and decoding by switching to
orjson. See #423. -
Parse
Cache-Controlheader field if present in API response, and use it to guide local caching policy.This means
dwave.cloud.api.DWaveAPIClientanddwave.cloud.api.resourceclasses 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/Futurein 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_qubitsutility function by ~50%, anddwave.cloud.coders.encode_problem_as_qpby 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
dicts. 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 = backoffconfiguration parameter in your config file, or the keyword argument in calls to
Client()orClient.from_config(). See #662. -
Config attributes previously available directly on
Clientinstance, 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.configto access client configuration instead.Path to most attributes translates directly. For example,
Client.regionis now available asClient.config.region. One attribute has been renamed (Client.default_solveris 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.NumpyEncoderis deprecated and will be removed indwave-cloud-client==0.14.0. Useorjson.dumps()withOPT_SERIALIZE_NUMPYoption instead. See #652. -
Shorthand import paths for specialized Clients (for
qpu,swandhybrid) are deprecated indwave-cloud-client==0.12.2and 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 withcreateargument. 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
statusas 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...