@@ -144,7 +144,7 @@ class BaseConfig:
144
144
fact_cache : str | None = field (metadata = {MetaValues .TRANSMIT : False }, default = None )
145
145
fact_cache_type : str = 'jsonfile'
146
146
host_cwd : str | None = None
147
- ident : str | None = field ( metadata = { MetaValues . TRANSMIT : False }, default = None )
147
+ ident : str | None = None
148
148
json_mode : bool = False
149
149
keepalive_seconds : int | None = field (metadata = {MetaValues .TRANSMIT : False }, default = None )
150
150
passwords : dict [str , str ] | None = None
@@ -167,10 +167,22 @@ class BaseConfig:
167
167
_CONTAINER_ENGINES = ('docker' , 'podman' )
168
168
169
169
def __post_init__ (self ) -> None :
170
+ """
171
+ Completes object initialization after the Dataclass __init__() call is complete.
172
+
173
+ Finish initialization by setting other attribute defaults and normalize the path attributes
174
+ by setting absolute paths. Also make sure that the private_data_dir and artifact directories
175
+ exist, creating them if necessary.
176
+
177
+ The Runner, Transmitter, Worker and Processor objects all depend, in some manner, on this
178
+ path normalization being completed when they are initialized (mostly for private_data_dir).
179
+
180
+ BaseConfig and RunnerConfig both make use of the ArtifactLoader object that is created here.
181
+ """
170
182
# pylint: disable=W0613
171
183
172
184
self .command : list [str ] = []
173
- self .registry_auth_path : str
185
+ self .registry_auth_path : str = ""
174
186
self .container_name : str = "" # like other properties, not accurate until prepare is called
175
187
if self .container_image is None :
176
188
self .container_image = ''
0 commit comments