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
の変換用機能タイプ。
- ARCHIVE_NAME_TEMPLATE = '{name}_{version}_{checksum}{archfmt}'
update_archive()
のファイル名で使われるテンプレート。
- static relative_path(relpath: Path) Callable[[Path], str]
各パス名を
relpath
下の関連フォームに変換する callable を作成。- パラメータ
relpath -- 他のパスが関連するベースパス。
- 戻り値
- 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()
andflatten_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