dwave.cloud.config.load_config

load_config(config_file=None, profile=None, client=None, endpoint=None, token=None, solver=None, proxy=None, headers=None)[source]

Load D-Wave Cloud Client configuration based on a configuration file.

Configuration values can be specified in multiple ways, ranked in the following order (with 1 the highest ranked):

  1. Values specified as keyword arguments in load_config(). These values replace values read from a configuration file, and therefore must be strings, including float values for timeouts, boolean flags (tested for “truthiness”), and solver feature constraints (a dictionary encoded as JSON).
  2. Values specified as environment variables.
  3. Values specified in the configuration file.

Configuration-file format is described in dwave.cloud.config.

If the location of the configuration file is not specified, auto-detection searches for existing configuration files in the standard directories of get_configfile_paths().

If a configuration file explicitly specified, via an argument or environment variable, does not exist or is unreadable, loading fails with ConfigFileReadError. Loading fails with ConfigFileParseError if the file is readable but invalid as a configuration file.

Similarly, if a profile explicitly specified, via an argument or environment variable, is not present in the loaded configuration, loading fails with ValueError. Explicit profile selection also fails if the configuration file is not explicitly specified, detected on the system, or defined via an environment variable.

Environment variables: DWAVE_CONFIG_FILE, DWAVE_PROFILE, DWAVE_API_CLIENT, DWAVE_API_ENDPOINT, DWAVE_API_TOKEN, DWAVE_API_SOLVER, DWAVE_API_PROXY, DWAVE_API_HEADERS.

Environment variables are described in dwave.cloud.config.

Parameters:
  • config_file (str/[str]/None/False/True, default=None) –

    Path to configuration file(s).

    If None, the value is taken from DWAVE_CONFIG_FILE environment variable if defined. If the environment variable is undefined or empty, auto-detection searches for existing configuration files in the standard directories of get_configfile_paths().

    If False, loading from file(s) is skipped; if True, forces auto-detection (regardless of the DWAVE_CONFIG_FILE environment variable).

  • profile (str, default=None) –

    Profile name (name of the profile section in the configuration file).

    If undefined, inferred from DWAVE_PROFILE environment variable if defined. If the environment variable is undefined or empty, a profile is selected in the following order:

    1. From the default section if it includes a profile key.
    2. The first section (after the default section).
    3. If no other section is defined besides [defaults], the defaults section is promoted and selected.
  • client (str, default=None) – Client type used for accessing the API. Supported values are qpu for dwave.cloud.qpu.Client and sw for dwave.cloud.sw.Client.
  • endpoint (str, default=None) – API endpoint URL.
  • token (str, default=None) – API authorization token.
  • solver (dict/str, default=None) –

    solver features, as a JSON-encoded dictionary of feature constraints, the client should use. See get_solvers() for semantics of supported feature constraints.

    If undefined, the client uses a solver definition from environment variables, a configuration file, or falls back to the first available online solver.

    For backward compatibility, solver name in string format is accepted and converted to {"name": <solver name>}.

  • proxy (str, default=None) – URL for proxy to use in connections to D-Wave API. Can include username/password, port, scheme, etc. If undefined, client uses the system-level proxy, if defined, or connects directly to the API.
  • headers (dict/str, default=None) –
    Header lines to include in API calls, each line formatted as
    Key: value, or a parsed dictionary.
Returns:

Mapping of configuration keys to values for the profile (section), as read from the configuration file and optionally overridden by environment values and specified keyword arguments. Always contains the client, endpoint, token, solver, and proxy keys.

Return type:

dict

Raises:
Examples

This example loads the configuration from an auto-detected configuration file in the home directory of a Windows system user.

>>> from dwave.cloud import config
>>> config.load_config()         # doctest: +SKIP
{'client': 'qpu',
 'endpoint': 'https://url.of.some.dwavesystem.com/sapi',
 'proxy': None,
 'solver': 'EXAMPLE_2000Q_SYSTEM_A',
 'token': 'DEF-987654321987654321987654321',
 'headers': None}
... # See which configuration file was loaded
>>> config.get_configfile_paths()             # doctest: +SKIP
['C:\Users\jane\AppData\Local\dwavesystem\dwave\dwave.conf']

Additional examples are given in dwave.cloud.config.