xcc.Settings

class Settings(_env_file: Optional[Union[pathlib.Path, str]] = '<object object>', _env_file_encoding: Optional[str] = None, _secrets_dir: Optional[Union[pathlib.Path, str]] = None, *, REFRESH_TOKEN: str = None, ACCESS_TOKEN: str = None, HOST: str = 'platform.strawberryfields.ai', PORT: int = 443, TLS: bool = True)[source]

Bases: pydantic.env_settings.BaseSettings

Represents the configuration for connecting to the Xanadu Cloud.

The location where this configuration is saved depends on the current operating system. Specifically,

  • Windows: C:\Users\%USERNAME%\AppData\Local\Xanadu\xanadu-cloud\.env

  • MacOS: /home/$USER/Library/Application\ Support/xanadu-cloud/.env

  • Linux: /home/$USER/.config/xanadu-cloud/.env

Example:

The following example shows how to use the Settings class to load and save a Xanadu Cloud configuration. To begin, loading a configuration is as simple as instantiating a settings object:

>>> import xcc
>>> settings = xcc.Settings()
>>> settings
REFRESH_TOKEN=None ACCESS_TOKEN=None HOST='platform.strawberryfields.ai' PORT=443 TLS=True

Now, individual options can be accessed or assigned through their corresponding attribute:

>>> settings.PORT
443
>>> settings.PORT = 80
>>> settings.PORT
80

Note

Several aggregate representations of options are also available, such as

>>> settings.dict()
{'REFRESH_TOKEN': None, 'ACCESS_TOKEN': None, ..., 'TLS': True}
>>> settings.json()
'{"REFRESH_TOKEN": null, "ACCESS_TOKEN": null, ..., "TLS": true}'

Finally, saving a configuration can be done by invoking Settings.save():

>>> settings.save()

REFRESH_TOKEN

JWT refresh token that can be used to fetch access tokens from the Xanadu Cloud.

ACCESS_TOKEN

JWT access token that can be used to authenticate requests to the Xanadu Cloud.

HOST

Hostname of the Xanadu Cloud server.

PORT

Port of the Xanadu Cloud server.

TLS

Whether to use HTTPS for requests to the Xanadu Cloud.

REFRESH_TOKEN: Optional[str]

JWT refresh token that can be used to fetch access tokens from the Xanadu Cloud.

ACCESS_TOKEN: Optional[str]

JWT access token that can be used to authenticate requests to the Xanadu Cloud.

HOST: str

Hostname of the Xanadu Cloud server.

PORT: int

Port of the Xanadu Cloud server.

TLS: bool

Whether to use HTTPS for requests to the Xanadu Cloud.

construct([_fields_set])

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data.

copy(*[, include, exclude, update, deep])

Duplicate a model, optionally choose which fields to include, exclude and change.

dict(*[, include, exclude, by_alias, ...])

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

from_orm(obj)

json(*[, include, exclude, by_alias, ...])

Generate a JSON representation of the model, include and exclude arguments as per dict().

parse_file(path, *[, content_type, ...])

parse_obj(obj)

parse_raw(b, *[, content_type, encoding, ...])

save()

Saves the current settings to the .env file.

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

update_forward_refs(**localns)

Try to update ForwardRefs on fields based on this Model, globalns and localns.

validate(value)

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, update: DictStrAny = None, deep: bool = False) Model

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns

new model instance

dict(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, by_alias: bool = False, skip_defaults: bool = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod from_orm(obj: Any) Model
json(*, include: Union[AbstractSetIntStr, MappingIntStrAny] = None, exclude: Union[AbstractSetIntStr, MappingIntStrAny] = None, by_alias: bool = False, skip_defaults: bool = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, **dumps_kwargs: Any) unicode

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod parse_file(path: Union[str, pathlib.Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model
classmethod parse_obj(obj: Any) Model
classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model
save() None[source]

Saves the current settings to the .env file.

classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') DictStrAny
classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) unicode
classmethod update_forward_refs(**localns: Any) None

Try to update ForwardRefs on fields based on this Model, globalns and localns.

classmethod validate(value: Any) Model