Upgrade Notes
- `dwave.cloud.utils` module has been split into the following submodules: `dwave.cloud.utils.cli`, `dwave.cloud.utils.coders`, `dwave.cloud.utils.decorators`, `dwave.cloud.utils.dist`, `dwave.cloud.utils.exception`, `dwave.cloud.utils.http`, `dwave.cloud.utils.logging`, `dwave.cloud.utils.qubo`, and `dwave.cloud.utils.time`.
First reason for doing this was code clean-up (including adding type annotations), but a more important reason is that this will enable import time optimization in the future. And that's why we break backwards compatibility by not importing everything back into the top-level utils namespace.
The utils module is considered Ocean-internal as is, so this move shouldn't affect user's code.
<!-- -->
- Positional arguments in `dwave.cloud.Client` constructor, deprecated in 0.10.0, are removed in 0.12.0. Use keyword arguments instead.
<!-- -->
- Alias keys `samples` and `occurrences` (for `solutions` and `num_occurrences`) in the results dict of `dwave.cloud.computation.Future.result()`, deprecated in 0.8.0, are now finally removed in 0.12.0. We'll try to keep the result dict as close to raw data returned by SAPI as possible. Postprocessed data is instead available via `dwave.cloud.computation.Future` properties.
New Features
- Add support for `binary-ref` answer encoding format, where answer data is not immediately present in the answer, but on an URI referenced in the answer response.
<!-- -->
- Add `dwave.cloud.computation.Future.answer_data` property to hold the answer data of a resolved future. A call to `.answer_data` will block until computation future is resolved.
<!-- -->
- Add `dwave.cloud.api.models.UnstructuredProblemAnswerBinaryRef` model, a subclass of `ProblemAnswer` for `binary-ref` answers, and a method for downloading answer data (resolving binary-ref), `dwave.cloud.api.resources.Problems.get_answer_data`.
<!-- -->
- Add support for nonlinear unstructured solvers with `dwave.cloud.solver.NLSolver`.
<!-- -->
- Add request/response logging to `AuthFlow`/`OAuth2Session`.
<!-- -->
- Add basic support for structured logs (JSON output).
<!-- -->
- Enable log format control with `DWAVE_LOG_FORMAT` env variable (set to `"json"` for structured output.
Bug Fixes
- Fix a possible race condition when multiple threads try to resolve remote computation results. A special case of this occurs on binary answer download from a reference link. See [\624](https://github.com/dwavesystems/dwave-cloud-client/issues/624).
<!-- -->
- Log failing request/response details in the low-level API client.
<!-- -->
- Suppress logging output from the cloud-client by default (as recommended for libraries).
<!-- -->
- Format log record date/time according to ISO 8601.