Skip to content

Releases: dwavesystems/dwave-ocean-sdk

9.3.0

22 Jan 20:39
db86901

Choose a tag to compare

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_embeddings as argument for LNLS reference example. See #309.

Bug Fixes

  • Fix exclude_dims incorrect 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 MatrixMultiplication symbol and corresponding method
    matmul. The matmul method follows the behavior of NumPy's
    matmul, meaning that it works with matrices, vectors, and higher
    order arrays.
  • Add Tanh symbol to support hyperbolic tangent. See #445.
  • Add C++ TanhNode to 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.typing module.
  • 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 of 0, 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 to dwave.optimization.generators. The
    predict() function accepts a fitted
    sklearn.neural_network.MLPCLassifier or
    sklearn.neural_network.MLPRegressor and a symbol representing X,
    and returns a symbol encoding the prediction of the estimator.

Upgrade Notes

  • Opt ArraySymbol out of NumPy interoperability. This means that
    trying to use an ArraySymbol with most NumPy functions/operators
    will fail. Prefer to use the functions in
    dwave.optimization.mathematical.
  • Rename C++ broadcast_shape() to broadcast_shapes() for
    consistency with NumPy.
  • Change the definition of ArrayNode::dynamic() to return true if
    ArrayNode::shape()[0] < 0. That is, if the shape is
    state-dependent. Previously ArrayNode::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 with ArraySymbol.
  • Fix the maximum possible value reported by SetNode::max().
    Previously it would erroneously return a value derived from the
    maximum subset size.
  • Fix BinaryOpNode at 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
    BroadcastTo symbol.
  • Support broadcasting arrays to a shape with a 0 in one or more
    dimensions with the BroadcastTo symbol.
  • 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
    ConstantNode at 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

11 Dec 19:55
f638704

Choose a tag to compare

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++ ValuesInfo class.
  • DisjointLists symbols are now indexable, returning the
    corresponding DisjointList (singular) symbol for the given index.
    This allows the method of creating disjoint lists on the model to be
    simplified, returning only a DisjointLists symbol instead of a
    tuple of the symbol and a list of DisjointList symbols. A new
    method Model.disjoint_lists_symbol() has been added to the Model
    class which implements this.
  • Added IsIn symbol/node which computes the element-wise containment
    of one symbol with another.
  • Support equality and inequality comparison to
    std::default_sentinel for C++ BufferIterator.
  • Implement BufferIterator::operator+= and
    BufferIterator::operator+ for multi-increments.
  • Make ARange symbol aware of the Size symbol. See
    #390.
  • Added Transpose symbol/node which computes the transpose of a
    symbol.
  • Consolidate C++ ReduceNode and PartialReduceNode into a single
    node type.
  • Support reductions over multiple axes for all reduce operations. See
    #347.
  • Add Roll symbol and corresponding roll() function. See
    #423.
  • Support Modulus symbol in expressions used in AccumulateZip.

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 PartialProd and PartialSum symbols aliases for Prod and
    Sum.

Bug Fixes

  • Fixed issue (#409) in how ARangeNode calculated its sizeinfo.min and
    sizeinfo.max.
  • Fix an issue with AccumulateZip when 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 BroadcastTo symbol's diff creation. Previously it would
    sometimes propagate the wrong information when broadcasting
    high-demensional arrays.
  • Make the C++ deduplicate_diff_view a non-template class. Rather,
    make the constructor templated. This avoids a potential recursion
    when using deduplicate_diff_view in 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 Reduce symbol'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

06 Nov 00:29
686a8a8

Choose a tag to compare

Changelog

dwave-cloud-client 0.14.0 ➞ 0.14.3

New Features

  • Add Python 3.14 support.

  • Implement close() method and context protocol support on AuthFlow and LeapAuthFlow classes.

  • Implement minimal cache control through Ocean config interface (config files, environment variables, constructor keyword arguments).

    Client caching is now controlled with cache_enabled/cache_home configuration parameters and DWAVE_CACHE_ENABLED/DWAVE_CACHE_HOME environment variables.

    Caching is disabled by default in the low-level interfaces (ClientConfig configuration model, dwave.cloud.api.* models, clients and resources, e.g. api.Solvers, api.Regions, etc.), but enabled in the high-level Client interface.

    See #614.

Upgrade Notes

  • Upgrade your python to 3.10+. We no longer support python 3.9 and below.

Deprecation Notes

  • Solver.is_vfyc property 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 the vfyc (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 with graph_id missing, we fall back to a partial solver match (based on name only). See #727.

  • Fix resource leaks during diskcache/sqlite database use in CachingSessionMixin, LeapAuthFlow and @cached. See #731.

  • Fix answer retrieval for problems with null for solver version (as returned by SAPI). See #736.

dwave-optimization 0.6.4 ➞ 0.6.7

New Features

  • Add support for bool dtype to the C++ BufferIterator.
  • Add new dwave-optimization/common.hpp for compiler support and
    backports from C++23.
  • Add new dwave-optimization/fraction.hpp for C++ fraction class.
  • Add support for broadcasting array symbols to new shapes. This
    includes:
    • A BroadcastTo symbol.
    • New broadcast_to() and broadcast_symbols() functions.
    • A C++ BroadcastToNode.
  • 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 Cos and Sin symbols to support trigonometric sine and
    cosine.
  • Add C++ CosNode and SinNode to support trigonometric sine and
    cosine.
  • Added SoftMax symbol/node which returns the softmax of its
    predecessor.
  • Make dwave.optimization.symbols a sub-package rather than a sub-module.
  • Index-wise bounds added to NumberNode. Available to both IntegerNode and
    BinaryNode.

Upgrade Notes

  • Remove dwave-optimization/utils.hpp header.
  • Move C++ double_kahan implementation 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 a Model directly.
    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 mutating Model.objective directly.

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_id method to a future returned by LeapHybridNLSampler. See #602.

Upgrade Notes

  • Drop support for Python 3.9.

  • Remove vfyc solver property and max_answers solver parameter from DWaveMockSampler to 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_labels and edge_labels arguments to subgraph.find_subgraph). See #272.

  • Add additional new argument as_embedding to subgraph.find_subgraph to return a dict with iterable values similar to other embedding tools. See #272.

  • Add support for Python 3.14. See #276.

  • Add seed argument to subgraph.find_subgraph to randomize algorithm. See #273.

  • Add support for non-injective homomorphisms in subgraph.find_embedding through new injectivity argument. See #273.

  • Add the ability to interrupt subgraph.find_subgraph with 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

10 Sep 21:17
ac00e72

Choose a tag to compare

Highlights

  • Solver identification has changed with SAPI solver representation v3. See dwave-cloud-client changes below for details.

  • dwavebinarycsp, deprecated in Ocean 8.1 is now removed in Ocean 9.

  • penaltymodel is 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 solver to 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=01dae5a273
    

    environment variable:

    DWAVE_API_SOLVER='Advantage_system6.4;graph_id=01dae5a273'
    

    as an argument to the dwave CLI:

    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.BaseUrlSessionMixin constructor. This enables mixing with session mixins from dwave.cloud.api.client in any order.
  • Enable DWaveAPIClient to 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 SolverIdentity string 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.identity instead of Solver.id to uniquely reference a specific solver and its version.

    See #696.

  • Feature-based solver filtering via Client.get_solver() and Client.get_solvers() has been extended to support the new identity field (dict), version (dict) and graph_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 SolverVersion and SolverIdentity to dwave.cloud.api.models. They both compare with a dict, and serialize with .dict() for convenience.
  • Speed-up StructuredSolver construction by deferring initialization of large data members. nodes, edges and undirected_edges are now cached properties, constructed on first access. See #706.
  • Add dwave cache group 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.Client and dwave.cloud.api.client.DWaveAPIClient.

    Deprecation messages received are raised as Python warnings using a new category, dwave.cloud.api.exceptions.ResourceDeprecationWarning and logged using the WARNING log 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 wait argument to false: Client.close(wait=False).

    See #712.

Upgrade Notes

  • Switch to using solver's identity structure in place of the legacy string id.
  • Solver.data type changed from a raw dict (as returned by SAPI) to the dwave.cloud.api.models.SolverConfiguration model. This is mostly a backwards-compatible change, since getter/setter interface is supported.
  • The type of solver argument to dwave.cloud.api.resources.Problems methods (submit_problem and list_problems) changed from a string, to a SolverIdentity model.
  • dwave.cloud.Client.get_regions() which has been deprecated since cloud-client 0.11.0, is now removed in favor of dwave.cloud.regions.get_regions(). Usage example available in the docs.

    The main benefit of get_regions as a stand-alone function is that Client doesn'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 Client imports from dwave.cloud.{type} with imports from dwave.cloud.client.{type} (type being qpu, sw or hybrid).

  • Remove API constants deprecated in 0.13.1 and moved to dwave.cloud.config.constants from dwave.cloud.api.constants: DEFAULT_METADATA_API_ENDPOINT, DEFAULT_REGION, DEFAULT_SOLVER_API_ENDPOINT, DEFAULT_LEAP_API_ENDPOINT.
  • dwave.cloud.utils.coders.NumpyEncoder is now removed in favor of orjson.dumps() used with the OPT_SERIALIZE_NUMPY flag. We first deprecated NumpyEncoder in dwave-cloud-client 0.12.2.

Deprecation Notes

  • Solver.id is deprecated in favor of Solver.identity. Solver "ID" is not available anymore, so it's constructed on the fly from the identity field, with the uniqueness assumption preserved.
  • solver_id argument in dwave.cloud.api.resources.Solvers.get_solver() is deprecated in favor of solver_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.ProblemInfo model in order to support problems not completed (e.g. pending or failed). See #703.
  • Preserve Content-Type of a response cached with CachingSessionMixin.

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++ ConstantNode constructors to accept const double*
    rather than double*.
  • Add the Extract symbol 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 their sizeinfo().
  • Add .lower_bound(), .upper_bound(), and .integral() methods to
    the Input symbol.
  • 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 ArgSort symbol/node which returns a stable argsort of its
    predecessor.
  • Add expression() decorator for constructing expressions.
  • Add the AccumulateZip symbol and corresponding AccumulateZipNode
    node in the C++. This symbol computes an arbitrary accumulate
    operation on 1-d arrays, similar to numpy.ufunc.accumulate, except
    that it takes any number of operands/predecessors. The accumulate
    operation is supplied by the user and encoded as an Expression.
  • The Constant symbol is now able to pass ownership of the
    corresponding numpy array to the ConstantNode which prevents the
    ...
Read more

8.4.0

12 Jun 23:42

Choose a tag to compare

Changelog

dwave-cloud-client 0.13.4 ➞ 0.13.6

New Features

  • Return uploaded problem data id as part of Sampleset.info (the problem_data_id key). See #466.

  • Convert requests.Session subclasses in dwave.cloud.api.client to mixins. BaseUrlSessionMixin, LoggingSessionMixin, PayloadCompressingSessionMixin, VersionedAPISessionMixin and CachingSessionMixin can 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 InvalidAPIResponseError exception 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.Session subclasses 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++ BSplineNode and Python BSpline symbol. BSpline propagates the bspline interpolation values of its predecessor element-wise given the bspline constants (degree, knots and coefficients).

  • Add C++ ExpNode and Python Exp symbol. Exp propagates the base-e exponential values of its predecessor element-wise. See #282.

  • Add Input symbol and corresponding InputNode node in the C++. This symbol is meant to function as a "placeholder" in a model.

  • Improve the error messages returned by ListVariable.set_state() and SetVariable.set_state().

  • Add C++ CollectionNode::assign() method.

  • Add absolute function as an alias for the built-in abs.

  • Add Python safe_divide() function and SafeDivide symbol. Also add C++ SafeDivideNode. See #290.

  • Add overloads to C++ methods Graph::commit(), Graph::propagate(), and Graph::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() and SetVariable.set_state() from state to values.

Bug Fixes

  • Make C++ dwave::optimization::functional objects more consistent with the standard library by adding overloads for other numeric types and marking most operations as constexpr.

  • Fix iteration over ArraySymbols. Now iteration works correctly for ArraySymbols with more than one dimension and a fixed size. Other ArraySymbols now raise a TypeError. See #287.

dwave-preprocessing 0.6.8 ➞ 0.6.9

New Features

  • Propagate SampleSet.info from child sampler in SpinReversalTransformComposite in 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 the TilingComposite that can handle bigger and non-Chimera source graphs on any structured graph supported by DWaveSampler (including Zephyr). See #569.

Deprecation Notes

  • TilingComposite is deprecated in favor of ParallelEmbeddingComposite and 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 DWaveCliqueSampler sometimes 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 when use_tile_embedding=True is 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

26 Mar 18:55
9dfc755

Choose a tag to compare

Changelog

dimod 0.12.18 ➞ 0.12.20

New Features

  • Use dict rather than collections.OrderedDict to capture the inputs in TrackingComposite. See also #1395.

  • Add dimod.Scoped abstract base class for components that allocate scope-bound resources.

  • Implement dimod.Scoped interface on dimod.Sampler and dimod.Composite. See dwave-system#555.

  • Add quadratic_multi_knapsack generator function to dimod.generators.

Bug Fixes

  • Fix inheritance in ComposedSampler and ComposedPolySampler so that composite attributes override sampler attributes. See #1402.

dwave-cloud-client 0.13.3 ➞ 0.13.4

New Features

  • Add output_file parameter to dwave.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 a ProblemJob model, 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 a cache argument. This method can avoid a potentially expensive depth first search through the node graph. See #182.

  • Add C++ ExpitNode and Python Expit symbol. Expit propagates the logistic sigmoid values of its predecessor element-wise.

  • Add C++ ARangeNode and Python ARange symbol and arange() function.

  • Add C++ LogNode and Python Log symbol. Log propagates 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 substitute keyword argument to Model.from_file().

  • Add atleast_1d(), atleast_2d(), hstack(), and vstack() 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() and Array::max() methods are no longer virtual, but instead call the more general Array::minmax() method. Subclasses of Array should override the Array::minmax() method instead.

  • Change stack() and concatenate() functions handling of single array inputs. They are no longer passed through; the functions now raise an error instead.

Bug Fixes

  • Fix ConcatenateNode propagation. 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 the cache argument 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 (implement dimod.Scoped behavior), i.e. they can be used as a context manager.

Bug Fixes

  • Fix inheritance in SpinReversalTransformComposite so that composite attributes override sampler attributes. See #150.

dwave-samplers 1.4.0 ➞ 1.5.0

New Features

  • Add PathIntegralAnnealingSampler, a SimulatedAnnealingSampler style 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, a SimulatedAnnealingSampler style 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.sample to SimulatedAnnealingSampler.parameters. This allows effective use of dimod.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-optimization versions 0.6 and 0.7. See #559.

minorminer 0.2.17 ➞ 0.2.18

New Features

  • Minor improvements in parallel_embeddings and feasibility utility 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

24 Feb 23:22
25e282d

Choose a tag to compare

Changelog

dwave-cloud-client 0.13.2 ➞ 0.13.3

New Features

  • Add PayloadCompressingSession, a requests.Session subclass that adds support for payload compression on the fly to dwave.cloud.api.client.DWaveAPIClient. See #654.

  • Support compression of QPU problem data on upload in SolverAPIClient and api.Problems via compress_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 with UseAfterCloseError. 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 with Client.create_session().

dwave-optimization 0.4.2 ➞ 0.5.1

New Features

  • Implement C++ operator<=>(const Update&, const Update&) and operator==(const Update&, const Update&). This allows Update to be used with std::ranges::stable_sort().

  • Add a new Cython extension type, _Graph. The _Graph class is responsible for managing a C++ dwave::optimization::Graph. Also make Model a Python class that inherits from _Graph, rather than a Cython extension type.

  • Add C++ DivideNode and Python Divide 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 Python SquareRoot 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 the dwave-optimization/graph.hpp.

  • Explicitly disallow copy construction and copy assignment for C++ Graph.

  • Add some convenience methods to C++ Array::View class. Specifically, implement Array::View::at(), Array::View::back() and Array::View::empty(). Also make Array::View semi-regular.

  • Add C++ RintNode and Python Rint 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 and put() function. See #202.

  • Add random overloads for C++ DynamicArrayTestingNode::grow() and DynamicArrayTestingNode::set().

  • Add C++ PartialProdNode.

  • Add PartialProd symbol.

  • Add axis keyword argument to ArraySymbol.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 of operator==(const Update&, const Update&).

  • It is no longer possible to from dwave.optimization.model cimport Model. Instead, importers should from dwave.optimization.model cimport _Graph. A _Graph has most of the functionality that a Model did, although most of the symbol construction methods have been kept on Model.

  • The dwave::optimization::ArrayIterator class has been moved. It can now be found as a nested class in the Array, 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 a Constant 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 close() to all QPU and hybrid samplers. See #77, #554.

  • 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 of manylinux2014.

  • 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

8.1.0

06 Dec 17:38
bbdec03

Choose a tag to compare

Highlights

  • Add Python 3.13 support and drop Python 3.8 support.

  • Remove dwave-drivers and dwave.system.VirtualGraphComposite.

  • Drop {greedy,neal,tabu} namespaces in favor of dwave.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 to dimod.generators.
  • Add quadratic_knapsack() generator function to dimod.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 of dimod.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 the from_future-created sample sets in the cloud-client, and now the SampleSet interface propagates wait_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

  • Switch to dwave-samplers. See #299.

  • Fix flaky and slow tests. See #300 and #301.

Upgrade Notes

  • Drop Python 3.8 support and refresh CI. #298.

  • Drop support for dimod<0.12 and dwave-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(), and Array::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, :] where i and j 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 Python Xor symbol. Xor propagates the
    logical exclusive-or of its two predecessors element-wise. See #125.

  • Add C++ AnyNode. See #148.

  • Add Any symbol and ArraySymbol.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 added axis keyword in
    ArraySymbol.sum() function.

  • Implement C++ BinaryOpNode::sizeinfo() overload.

  • Add C++ ModulusNode and Python Modulus symbol. Modulus
    propagates the modulus of its two predecessors element-wise. Modulus
    symbols may be created with either the % operator or the mod()
    function in dwave.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] where i and j
    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. The Vartype 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(), and NaryMaximumNode::integral().

  • Implement missing overloads for NaryMinimumNode::max(),
    NaryMinimumNode::min(), and NaryMinimumNode::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] where A is
    a 1d integer decision variable and x 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](...
Read more

8.0.1

20 Sep 17:29

Choose a tag to compare

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 in dwave-cloud-client==0.13.1 in favor of a new config module dwave.cloud.config.constants, and will be disabled in dwave-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

11 Sep 19:33
eef9531

Choose a tag to compare

Changelog

dimod 0.12.16 ➞ 0.12.17

New Features

  • Allow BinaryQuadraticModel.contract_variables() to contract variables without an interaction. Previously it raised a ValueError.

  • Add power_r() generator function to dimod.generators. The weights of the generated Ising problems follow a power-law distribution with respect to their magnitude.

  • Add bin_packing generator function to dimod.generators.

  • Add labels keyword argument to ConstrainedQuadraticModel.iter_constraint_data() and ConstrainedQuadraticModel.iter_violations() methods. The labels keyword argument allows a user to generate the data/violations for a subset of the constraints. See #1381.

  • Add knapsack generator function to dimod.generators.

  • Support Python 3.13.

  • Add quadratic_assignment generator function to dimod.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 via Client() 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, and poll_pause. See #648.

  • Add timeout keyword argument to api.resources.Problems.get_problem_status() and api.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 on ETag. 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 to api.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 to api.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 and dwave.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%, and dwave.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 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 = backoff
    

    configuration parameter in your config file, or the keyword argument in calls to Client() or Client.from_config(). See #662.

  • Config attributes previously available directly on Client instance, deprecated in dwave-cloud-client==0.11.0, are removed in dwave-cloud-client==0.13.0.

    Use config model (dwave.cloud.config.models.ClientConfig) available as Client.config to access client configuration instead.

    Path to most attributes translates directly. For example, Client.region is now available as Client.config.region. One attribute has been renamed (Client.default_solver is now Client.config.solver), and all Client.poll_* config options are consolidated under Client.config.polling_schedule.*. Similarly Client.http_retry_* options are now available under Client.config.request_retry.*. See #664.

Deprecation Notes

  • dwave.cloud.utils.coders.NumpyEncoder is deprecated and will be removed in dwave-cloud-client==0.14.0. Use orjson.dumps() with OPT_SERIALIZE_NUMPY option instead. See #652.

  • Shorthand import paths for specialized Clients (for qpu, sw and hybrid) are deprecated in dwave-cloud-client==0.12.2 and will be removed in dwave-cloud-client==0.14.0. Instead, use the full import path, e.g. from dwave.cloud.client.qpu import Client, instead of from 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 with create 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 marked offline, 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...

Read more