ai2_kit.core.script module

ai2_kit.core.script module#

class ai2_kit.core.script.BashScript(*, template: Optional[BashTemplate], steps: Sequence[Union[str, BashStep]])[source]#

Bases: BaseModel

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'steps': FieldInfo(annotation=Sequence[Union[str, ai2_kit.core.script.BashStep]], required=True), 'template': FieldInfo(annotation=Union[BashTemplate, NoneType], required=True)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

render()[source]#
steps: Sequence[Union[str, BashStep]]#
template: Optional[BashTemplate]#
class ai2_kit.core.script.BashStep(*, cmd: Union[str, List[str]], cwd: Optional[str] = None, checkpoint: Optional[str] = None, exit_on_error: bool = True)[source]#

Bases: BaseModel

checkpoint: Optional[str]#
cmd: Union[str, List[str]]#
cwd: Optional[str]#
exit_on_error: bool#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'checkpoint': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'cmd': FieldInfo(annotation=Union[str, List[str]], required=True), 'cwd': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'exit_on_error': FieldInfo(annotation=bool, required=False, default=True)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

render()[source]#
class ai2_kit.core.script.BashTemplate(*, shebang: str = '#!/bin/bash', header: str = '', setup: str = '', teardown: str = '')[source]#

Bases: BaseModel

header: str#
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'header': FieldInfo(annotation=str, required=False, default=''), 'setup': FieldInfo(annotation=str, required=False, default=''), 'shebang': FieldInfo(annotation=str, required=False, default='#!/bin/bash'), 'teardown': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

setup: str#
shebang: str#
teardown: str#
ai2_kit.core.script.eoe_step(cmd: str)[source]#

exit on error step

ai2_kit.core.script.exit_on_error_statment(v='__EXITCODE__')[source]#
ai2_kit.core.script.make_gpu_parallel_steps(step_groups: List[Union[Sequence[Union[str, BashStep]], BashStep, str]])[source]#