Source code for bethesda_structs.archive

# Copyright (c) 2018 Stephen Bunn <stephen@bunn.io>
# MIT License <https://choosealicense.com/licenses/mit/>

from .bsa import BSAArchive
from .btdx import BTDXArchive
from ._common import BaseArchive

AVAILABLE_ARCHIVES = (BSAArchive, BTDXArchive)


[docs]def get_archive(filepath: str) -> BaseArchive: """Get an instance of the first archive that can handle a given file. Args: filepath (str): The path of the file to handle Returns: BaseArchive: The base archive Examples: This method simply returns the first encountered archive that can handle a given file. >>> FILEPATH = "" # absolute filepath to some BSA >>> archive = bethesda_structs.archive.get_archve(FILEPATH) >>> archive BSAArchive(filepath=PosixPath(...)) """ for arch in AVAILABLE_ARCHIVES: if arch.can_handle(filepath): return arch.parse_file(filepath)