waft.configuration.config_file.models module

Data models for configuration file handling.

class waft.configuration.config_file.models.UserConfiguredGroup(*, name: str, systems: List[UserConfiguredSystem])

Bases: BaseModel

Represents a group of systems from the config file

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
systems: List[UserConfiguredSystem]
class waft.configuration.config_file.models.UserConfiguredLocalSystem(*, name: str = 'local', username: str = <factory>, port: int = 22, hostname: str = 'localhost', warp_version: str | None = None, warp_upgrade_from_version: str | None = None, password: str | None = None, cloud_provider: ~waft.enums.CloudProvider | None = None, vm_spec: str | None = None, size: str | None = None, auto_delete: bool | None = True, proxy: str | None = None, proxy_details: ~waft.configuration.config_file.models.UserConfiguredProxy | None = None, description: str | None = None, resource_group: str | None = None)

Bases: UserConfiguredSystem

Local system is the class representing the literal local system

hostname: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
username: str
class waft.configuration.config_file.models.UserConfiguredProxy(*, name: str, hostname: str, username: str, port: int = 22)

Bases: BaseModel

Represents a proxy system

hostname: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str
port: int
username: str
class waft.configuration.config_file.models.UserConfiguredSystem(*, name: str, username: str, port: int = 22, hostname: str | None = None, warp_version: str | None = None, warp_upgrade_from_version: str | None = None, password: str | None = None, cloud_provider: CloudProvider | None = None, vm_spec: str | None = None, size: str | None = None, auto_delete: bool | None = True, proxy: str | None = None, proxy_details: UserConfiguredProxy | None = None, description: str | None = None, resource_group: str | None = None)

Bases: BaseModel

UserConfiguredSystem is the python object deserialized from the configuration file

auto_delete: bool | None
cloud_provider: CloudProvider | None
description: str | None
hostname: str | None
json() dict

Use Pydantic’s model_dump to serialize the system properly, converting enums to values

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(_UserConfiguredSystem__context) None

Validate configuration after model initialization.

name: str
password: str | None
port: int
proxy: str | None
proxy_details: UserConfiguredProxy | None
resource_group: str | None
size: str | None
username: str
validate_vm_configuration() None

Validates that vm_spec and cloud_provider both exist if one is specified.

vm_spec: str | None
warp_upgrade_from_version: str | None
warp_version: str | None