launcher.cli¶
BaseCliArgs ¶
Bases: BaseSettings
Base class for CLI arguments using Pydantic for validation and configuration.
Attributes:
Name | Type | Description |
---|---|---|
data_dir |
PathLike
|
The data directory where to save the data. |
repository_dir |
Optional[PathLike]
|
The repository root directory. |
create_directories |
CliImplicitFlag[bool]
|
Whether to create necessary directory structure. |
debug_mode |
CliImplicitFlag[bool]
|
Whether to run in debug mode. |
allow_dirty |
CliImplicitFlag[bool]
|
Whether to allow running with a dirty repository. |
skip_hardware_validation |
CliImplicitFlag[bool]
|
Whether to skip hardware validation. |
subject |
Optional[str]
|
The name of the subject. If None, will be prompted later. |
task_logic_path |
Optional[PathLike]
|
Path to the task logic schema. If None, will be prompted later. |
rig_path |
Optional[PathLike]
|
Path to the rig schema. If None, will be prompted later. |
validate_init |
CliExplicitFlag[bool]
|
Whether to validate the launcher state during initialization. |
temp_dir |
PathLike
|
Directory used for launcher temp files. |
group_by_subject_log |
CliExplicitFlag[bool]
|
Whether to group data logging by subject. |
Example
Create CLI args from command line¶
args = BaseCliArgs()
Create with specific values¶
args = BaseCliArgs( data_dir="/path/to/data", debug_mode=True, subject="mouse_001" )
Access properties¶
print(f"Data directory: {args.data_dir}") print(f"Debug mode: {args.debug_mode}")
settings_customise_sources
classmethod
¶
settings_customise_sources(
settings_cls: Type[BaseSettings],
init_settings: PydanticBaseSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> Tuple[PydanticBaseSettingsSource, ...]
Customizes the order of settings sources for the CLI.
Defines the priority order for configuration sources, with initialization settings taking precedence, followed by YAML files, environment variables, dotenv files, and finally file secrets.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
settings_cls
|
Type[BaseSettings]
|
The settings class |
required |
init_settings
|
PydanticBaseSettingsSource
|
Initial settings source |
required |
env_settings
|
PydanticBaseSettingsSource
|
Environment variable settings source |
required |
dotenv_settings
|
PydanticBaseSettingsSource
|
Dotenv settings source |
required |
file_secret_settings
|
PydanticBaseSettingsSource
|
File secret settings source |
required |
Returns:
Type | Description |
---|---|
Tuple[PydanticBaseSettingsSource, ...]
|
Tuple[PydanticBaseSettingsSource, ...]: Ordered tuple of settings sources |
Example
This method is automatically called by Pydantic¶
when creating a BaseCliArgs instance. Settings are loaded¶
in this priority order:¶
1. init_settings (constructor arguments)¶
2. YAML config files¶
3. Environment variables¶
4. .env files¶
5. File secrets¶
args = BaseCliArgs(data_dir="/override/path") # init_settings
Source code in src/clabe/launcher/cli.py
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
|