mantik.remote_file_service.abstract_file_service

Attributes

FilePath

LOCAL_FS_BASE_PATH_ENV_VAR

REMOTE_FS_BASE_PATH_ENV_VAR

REMOTE_FS_TYPE_ENV_VAR

Classes

AbstractFileService

Abstract class to define methods used for (remote) file handling.

Directory

File

FileMeta

Module Contents

class mantik.remote_file_service.abstract_file_service.AbstractFileService(local_base_path: str = '.')[source]

Bases: abc.ABC

Abstract class to define methods used for (remote) file handling.

This interface must be easily implementable with common file transfer methods (FTP, boto/S3, GNU filesystem, pathlib + python IO …).

absolute_local_fs = '/'[source]
abstract change_permissions(target: FilePath, new_permissions: FileMeta) None[source]

Change metadata (permissions) of a file.

Note: bash chmod

abstract copy_directory(source: FilePath, target: FilePath) Directory[source]

Copy directory.

Note: bash cp

abstract copy_file(source: FilePath, target: FilePath) File[source]

Copy file.

Note: bash cp

abstract create_directory(target: FilePath) Directory[source]

Make a new directory.

Note: bash mkdir

abstract create_file_if_not_exists(target: FilePath) File[source]

Create (empty) file if not exists.

Note: bash touch

abstract exists(target=FilePath) bool[source]

Return if file exists

classmethod from_env(connection_id: uuid.UUID | None = None) AbstractFileService[source]
Abstractmethod:

Instantiate with environment variables.

Credentials are either fetched from mantik api or passed in through end vars.

classmethod is_remote(target: FilePath) bool[source]
Abstractmethod:

Return if a path is remote or not

abstract list_directory(target: FilePath) List[Directory | File][source]

List content of directory.

Note: bash ls

classmethod localise_path(target: FilePath) FilePath[source]
Abstractmethod:

Localize a remote path

relative_local_fs = '.'[source]
abstract remove_directory(target: FilePath) None[source]

Remove a directory.

Note: bash rm -r

abstract remove_file(target: FilePath) None[source]

Remove file or directory.

Note: bash rm

property user: str[source]
Abstractmethod:

Return current user.

class mantik.remote_file_service.abstract_file_service.Directory[source]

Bases: File

children: List[Directory | File][source]
class mantik.remote_file_service.abstract_file_service.File[source]
is_remote: bool[source]
metadata: FileMeta[source]
path: FilePath[source]
class mantik.remote_file_service.abstract_file_service.FileMeta[source]
last_changed: datetime.datetime[source]
mode: str[source]
owner: str[source]
mantik.remote_file_service.abstract_file_service.FilePath[source]
mantik.remote_file_service.abstract_file_service.LOCAL_FS_BASE_PATH_ENV_VAR = 'MANTIK_LOCAL_FS_BASE_PATH'[source]
mantik.remote_file_service.abstract_file_service.REMOTE_FS_BASE_PATH_ENV_VAR = 'MANTIK_REMOTE_FS_BASE_PATH'[source]
mantik.remote_file_service.abstract_file_service.REMOTE_FS_TYPE_ENV_VAR = 'REMOTE_FS_TYPE'[source]