drover package¶
Submodules¶
drover.cli module¶
Command-line interface functionality for the Drover interface
-
drover.cli.main()¶ The main command-line entry point for the Drover interface
drover.io module¶
Generic functionality related to files and I/O
-
class
drover.io.ArchiveMapping(source_file_name: pathlib.Path, archive_file_name: pathlib.Path)¶ Bases:
objectA mapping between an archive file name and its corresponding source filesystem path
-
archive_file_name: Path = None¶
-
source_file_name: Path = None¶
-
-
class
drover.io.FunctionLayerMappings(function_mappings: Sequence[drover.io.ArchiveMapping] = <class 'list'>, function_digest: str = None, requirements_mappings: Sequence[drover.io.ArchiveMapping] = <class 'list'>, requirements_digest: str = None)¶ Bases:
objectA function and requirements layer mapping and digest container
-
function_digest: str = None¶
-
function_mappings¶ alias of
builtins.list
-
requirements_digest: str = None¶
-
requirements_mappings¶ alias of
builtins.list
-
-
drover.io.format_file_size(size_in_bytes: float) → str¶ Return a string representation of the specified size as its largest 2^10 representation
Examples
>>> format_file_size(2048) '2.00 KiB' >>> format_file_size(16252928.0) '15.50 MiB'
- Parameters
size_in_bytes – a size in bytes
Returns: a string representation of the specified size as its largest 2^10 representation
-
drover.io.get_digest(source_file_names: Sequence[pathlib.Path], block_size: int = 8192) → Optional[str]¶ Return a SHA256 hash composed from the content of all source files.
- Parameters
source_file_names – A sequence of source file paths
Returns: A SHA256 hash composed from the content of all source files.
-
drover.io.get_relative_file_names(source_path: pathlib.Path, exclude_patterns: Sequence[Pattern] = None) → Iterable[pathlib.Path]¶ Return an unsorted iterable of files recursively beneath the source path
- Parameters
source_path – a filesystem path from which to recursively iterate all files
exclude_patterns – an optional sequence of regular expressions which will be used to exclude files
Returns: an unsorted iterable of files recursively beneath the source path
-
drover.io.write_archive(archive_file_name: pathlib.Path, archive_mappings: Iterable[drover.io.ArchiveMapping]) → None¶ Write a zip file archive composed of the specified archive file mappings
- Parameters
archive_file_name – a writable file
archive_mappings – an iterable of mappings of filesystem file names to archive file names
drover.models module¶
Models for settings and Amazon Web Services interactions
-
class
drover.models.S3BucketFileVersion¶ Bases:
pydantic.main.BaseModel-
bucket_name: str = None¶
-
key: str = None¶
-
version_id: Optional[str] = None¶
-
-
class
drover.models.S3BucketPath¶ Bases:
pydantic.main.BaseModel-
bucket_name: str = None¶
-
prefix: str = None¶
-
region_name: str = None¶
-
-
class
drover.models.Stage(**kwargs)¶ Bases:
pydantic.main.BaseModel-
compatible_runtime: str = None¶
-
function_extra_paths: Sequence[Path] = None¶
-
function_file_patterns: Sequence[Pattern] = None¶
-
function_name: str = None¶
-
package_exclude_patterns: Sequence[Pattern] = None¶
-
region_name: str = None¶
-
requirements_layer_name: Optional[str] = None¶
-
supplemental_layer_arns: Sequence[str] = None¶
-
upload_bucket: Optional[S3BucketPath] = None¶
-
Module contents¶
drover: a command-line utility to deploy Python packages to Lambda functions
-
class
drover.Drover(settings: drover.models.Settings, stage: str, interactive: bool = False)¶ Bases:
objectAn interface to efficiently publish and update a Lambda function and requirements layer representation of a Python package directory
-
update(install_path: pathlib.Path) → None¶ Publish and/or update a Lambda function and/or requirements layer representation of a Python package directory
- Parameters
install_path – a Python package directory (e.g. via
pip install -t)
-
-
exception
drover.SettingsError¶ Bases:
RuntimeErrorBase settings error
-
exception
drover.UpdateError¶ Bases:
RuntimeErrorBase update error