genvid.toolbox.PackageArchiver

class genvid.toolbox.PackageArchiver

ベースクラス: object

この class は Nomad の生成物として適したパッケージを作成するための機能をグルーピングします。

使用例:

import pathlib

dest = pathlib.Path("test.zip")
source = pathlib.Path("source")
packager = PackageArchiver()
path2name = packager.relative_path(source)
packager.make_archive(dest, source.rglob("*.*"), path2name)

バージョン 1.30.0 で追加.

PATH_TO_ARCHIVE_NAME_CALLABLE = typing.Callable[[pathlib.Path], str]

名前をアーカイブする pathlib.Path の変換用機能タイプ。

ARCHIVE_NAME_TEMPLATE = '{name}_{version}_{checksum}{archfmt}'

update_archive() のファイル名で使われるテンプレート。

static relative_path(relpath: pathlib.Path) → typing.Callable[[pathlib.Path], str]

各パス名を relpath 下の関連フォームに変換する callable を作成。

パラメータ:relpath – 他のパスが関連するベースパス。
戻り値:PATH_TO_ARCHIVE_NAME_CALLABLE
static flatten_path(filepath: pathlib.Path) → str

filepath のベース名を返す PATH_TO_ARCHIVE_NAME_CALLABLE

パラメータ:filepath – 変換のための Path
戻り値:ファイル名。
static make_archive(archive: typing.Union[pathlib.Path, zipfile.ZipFile, str], files: typing.Iterable[pathlib.Path], path_to_name: typing.Callable[[pathlib.Path], str]) → pathlib.Path

このメソッドは destination に Zip アーカイブを作成し、 path_to_name が返す名前で各ファイル files をアーカイブに追加します。

パラメータ:
  • archivePath または ZipFile アーカイブ。 Path またはストリングが渡されると、この名前の ZipFile が上書き (w) モード、および ZIP_DEFLATED の圧縮方法で作成されます。
  • files – アーカイブに追加するファイルの繰り返し可能なリスト。 ファイルは実行の際に利用可能であること。
  • path_to_name – アーカイブ名をパス名に変換できる機能。簡便なメソッド relative_path() and flatten_path() があります。
戻り値:

最終アーカイブの Path オブジェクト。

static stable_checksum(archive: pathlib.Path) → str

ファイル名と内容のみを基に Zip アーカイブからチェックサムを返します。

パラメータ:archive – チェックサムを行うための zipfile のパス。
static standard_checksum(archive: pathlib.Path) → str

引数で渡されるファイルのチェックサムを返します。

注釈

Zip のアーカイブには stable_checksum() の使用を推奨します。 速度は遅いですが、ファイルが作成される時チェックサムは独立しています。

パラメータ:archive – チェックサムを数えるファイル。
classmethod update_archive(archive: typing.Union[pathlib.Path, str], version: str, checksum: str, *, name: typing.Union[str, NoneType] = None, destdir: typing.Union[pathlib.Path, str, NoneType] = None, clean: bool = True, keep: bool = False, logger: typing.Union[logging.Logger, NoneType] = None)

想定されるイメージフォーマットに対応するように、バイナリアーカイブを更新します。

パラメータ:
  • archive – アーカイブファイルへのパス。
  • version – アーカイブのバージョン。
  • checksum – アーカイブ用に使用するチェックサム。standard_checksum()stable_checksum() の 2 つのメソッドは良い値を返します。
  • name – 新しいアーカイブに使用する名前。ない場合は、代わりに stem が使用されます。
  • destdir – 保存先ディレクトリ。デフォルトはオリジナルアーカイブと同じです。
  • clean – アーカイブの旧バージョンを消去 (同じ名前のもの) する。
  • keep – 元のアーカイブを保持します。 ほぼ毎回、異なる destdir で使用する必要があります。
  • logger – 使用するロガー。ない場合はデフォルトのロガーが作成されます。

バージョン 1.30.0 で追加.

class package_archive.PackageArchiver

genvid.toolbox.PackageArchiver の実装