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

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

Callable[[Path], str]の別名です。

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

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

static relative_path(relpath: Path) Callable[[Path], str]

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

パラメータ

relpath -- 他のパスが関連するベースパス。

戻り値

PATH_TO_ARCHIVE_NAME_CALLABLE

static flatten_path(filepath: Path) str

filepath のベース名を返す PATH_TO_ARCHIVE_NAME_CALLABLE

パラメータ

filepath -- 変換のための Path

戻り値

ファイル名。

static make_archive(archive: Union[Path, ZipFile, str], files: Iterable[Path], path_to_name: Callable[[Path], str]) Path

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

パラメータ
  • archive -- Path または ZipFile アーカイブ。 Path またはストリングが渡されると、この名前の ZipFile が上書き (w) モード、および ZIP_DEFLATED の圧縮方法で作成されます。

  • files -- アーカイブに追加するファイルの繰り返し可能なリスト。 ファイルは実行の際に利用可能であること。

  • path_to_name -- アーカイブ名をパス名に変換できる機能。簡便なメソッド relative_path() and flatten_path() があります。

戻り値

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

static stable_checksum(archive: Path) str

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

パラメータ

archive -- チェックサムを行うための zipfile のパス。

static standard_checksum(archive: Path) str

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

注釈

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

パラメータ

archive -- チェックサムを数えるファイル。

classmethod update_archive(archive: Union[Path, str], version: str, checksum: str, *, name: Optional[str] = None, destdir: Optional[Union[Path, str]] = None, clean: bool = True, keep: bool = False, logger: Optional[Logger] = 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 の実装