Parser Reference¶
Parser¶
- class apolo_sdk.Parser¶
A set of parsing helpers, useful for building helper dataclasses from string representations.
- volume(volume: str) Volume[source]¶
Parse volume string into
Volumeobject.The string is a three fields separated by colon characters (
:):<storage-uri:container-path[:ro]>.storage-uri is a URL on local storage, e.g.
storage:folderpoints on<user-root>/folderdirectory.container-path is a path inside a job where storage-url is mounted.
Optional ro means that storage-url is mounted in read-only mode. Writable mode is used if ro is omitted.
- Raise:
ValueErrorif volume has invalid format.
- local_image(image: str) LocalImage[source]¶
Parse image string into
LocalImage.The string should fit to the following pattern:
name[:tag], e.g."ubuntu:latest".- Raise:
ValueErrorif image has invalid format.
- remote_image(image: str) RemoteImage[source]¶
Parse image string into
RemoteImage.The string should fit to
name[:tag]orimage:name[tag]patterns, e.g."ubuntu:latest"orimage:my-image:latest. The former is used for public DockerHub images, the later is for Apolo image registry.- Raise:
ValueErrorif image has invalid format.
- envs(env: Sequence[str], env_file: Sequence[str] = ()) EnvParseResult[source]¶
Parse a sequence of env variables and a sequence of env_file file names.
- Parameters:
env (Sequence[str]) – Sequence of env variable specification. Each element can be either: - ENV_NAME. Current system env variable value will be used. Defaults to empty string. - ENV_NAME=VALUE. Given value will be used.
env_file (Sequence[str]) – Sequence of
.envfiles to use. File content processed same way as env parameter.
- Returns:
EnvParseResultwith parsing result
- volumes(volume: Sequence[str]) VolumeParseResult[source]¶
Parse a sequence of volume definition into a tuple of three mappings - first one for all regular volumes, second one for volumes using secrets and third for disk volumes.
- Parameters:
env (Sequence[str]) – Sequence of volumes specification. Each element can be either: - STORAGE_URI:MOUNT_PATH:RW_FLAG. - SECRET_URI:MOUNT_PATH. - DISK_URI:MOUNT_PATH:RW_FLAG.
- Returns:
VolumeParseResultwith parsing result
- str_to_uri(uri: str, *, allowed_schemes: Iterable[str] = (), cluster_name: str | None = None, short: bool = False) URL[source]¶
Parse a string into normalized
URLfor future usage by SDK methods.- Parameters:
uri (str) – an URI (
'storage:folder/file.txt') or local file path ('/home/user/folder/file.txt') to parse.allowed_schemes (Iterable[str]) – an iterable of accepted URI schemes, e.g.
('file', 'storage'). No scheme check is performed by default.cluster_name (Optional[str]) – optional cluster name, the default cluster is used if not specified.
short (bool) – if
True, return short URL (without cluster and user names if possible).Falseby default.
- Returns:
URLwith parsed URI.- Raises:
ValueError – if
uriis invalid or provides a scheme not enumerated byallowed_schemesargument.
- uri_to_path(uri: URL, *, cluster_name: str | None = None) Path[source]¶
-
- Raises:
ValueError – if
urihas no'file:'scheme.
- normalize_uri(uri: URL, *, allowed_schemes: Iterable[str] = (), cluster_name: str | None = None, short: bool = False) URL[source]¶
Normalize
uriaccording to current user name, cluster and allowed schemes.Normalized form has two variants:
Long form: cluster and user names are always present, e.g. storage://cluster/user/dir/file.txt.
Short form: cluster and user are omitted if they are equal to default values given from client.config.cluster_name and client.config.username, e.g. storage:dir/file.txt.
- Parameters:
uri (URL) – an URI to normalize.
allowed_schemes (Iterable[str]) – an iterable of accepted URI schemes, e.g.
('file', 'storage'). No scheme check is performed by default.cluster_name (Optional[str]) – optional cluster name, the default cluster is used if not specified.
short (bool) – if
True, return short URL (without cluster and user names if possible).Falseby default.
- Returns:
URLwith normalized URI.- Raises:
ValueError – if
uriis invalid or provides a scheme not enumerated byallowed_schemesargument.