Open JoelPasvolsky opened 5 years ago
Generally, feature filtering in the cloud client is insensitive to actual feature name and/or availability. For example if tomorrow we add a boolean feature called joels_favourite
to only one solver, you can still use the oldest version of the client (that supports feature-based solver filtering) to fetch your favourite solver with:
client.get_solver(joels_favourite=True)
The exception to this general rule are derived (inferred) features, like lower_noise
here. The full list of derived properties is available via dwave solvers [--solver filter]
CLI command, e.g.:
$ dwave solvers --solver DW_2000Q_5
...
Derived properties:
avg_load: 0.0
lower_noise: True
name: DW_2000Q_5
num_active_qubits: 2030
online: True
qpu: True
software: False
The reason I added lower_noise
as a derived property is to make queries simpler, but you can always use something that relies on intrinsic solver properties only:
client.get_solver(tags__contains="lower_noise")
With that being said, it does make sense to change the message to something like ~ "property unknown or solver not available".
Thanks, that makes sense
Currently, if users specify a feature for selection that has not yet been added to their version of cloud-client, they get an error message "SolverNotFoundError: Solver with the requested features not available". Because users will often lag a version or two from the latest cloud-client, they will often see this when trying newly added features, such as tag "lower_noise". But it's not that a solver with the feature is unavailable, it's that their current version of cloud-client doesn't recognize the filter and needs to be updated. So replacing this error message in the next version of cloud-client will be helpful going forward.