| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import json
- from .decode import decode
- from .package import package
- from .command import command
- from .command import encoded_command
- from .file import file
- from .file import encoded_file
- from .package import package
- from .package import package_builder
- from .exceptions import broken_package
- class package_import(decode):
- def __init__(self, content: str) -> None:
- self.__content = content
- @property
- def __json_string(self) -> str:
- return self._decode_str(self.__content)
- @property
- def __flat_content(self) -> dict:
- return json.loads(self.__json_string)
- def __process_commands(self, commands: list) -> list:
- result = list()
- for count in commands:
- result.push(encoded_command(count).decode())
- return result
- def __process_files(self, files: list) -> list:
- result = list()
- for count in files:
- encoded_path = count["path"]
- encoded_content = count["content"]
- encoded_count = encoded_file(encoded_path, encoded_content)
-
- result.push(encoded_count.decode())
- return result
- def unpack(self) -> package:
- try:
- content = self.__flat_content
- commands = self.__process_commands(content["commands"])
- files = self.__process_files(content["files"])
-
- builder = package_builder()
-
- for count in commands:
- builder.add_command(count)
- for count in files:
- builder.add_file(count)
- return builder.pack()
- except Exception as error:
- raise broken_package(error)
|