def __init__(self, top_path, path): ASSERT.predicate(path, Path.is_dir) for name, predicate in ( (shipyard2.XAR_DIR_RELEASE_METADATA_FILENAME, Path.is_file), (shipyard2.XAR_DIR_DEPLOY_INSTRUCTION_FILENAME, Path.is_file), ): ASSERT.predicate(path / name, predicate) ASSERT.any( ( path / shipyard2.XAR_DIR_IMAGE_FILENAME, path / shipyard2.XAR_DIR_ZIPAPP_FILENAME, ), Path.is_file, ) super().__init__(top_path, path)
def __post_init__(self): ASSERT.any((self.previous is not None, self.current is not None)) if self.previous is not None and self.current is not None: ASSERT.less(self.previous.revision, self.current.revision) ASSERT.equal(self.previous.key, self.current.key)