Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom exceptions for task job validation #237

Open
github-actions bot opened this issue Nov 16, 2022 · 0 comments
Open

Custom exceptions for task job validation #237

github-actions bot opened this issue Nov 16, 2022 · 0 comments
Assignees
Labels

Comments

@github-actions
Copy link
Contributor

Custom exceptions for task job validation

assert os.path.exists(self.output_directory) # CLEAR EXPORT PATH

assert not os.path.exists(self.output_file_path) # NO OVERWRITE

# TODO: Custom exceptions for task job validation

logger.setLevel(settings["worker"]["loglevel"])


def class_from_args(class_name, arg_dict: dict):
    fieldSet = {f.name for f in fields(class_name) if f.init}
    filteredArgDict = {k: v for k, v in arg_dict.items() if k in fieldSet}
    return class_name(**filteredArgDict)


@dataclass(frozen=True, init=True)
class TaskJob:

    settings: SettingsManager
    project: ProjectMetadata
    source: SourceMetadata

    output_file_path: str
    output_file_name: str
    output_directory: str
    input_level: str

    def __post_init__(self):

        # TODO: Custom exceptions for task job validation

        assert os.path.exists(self.source.file_path)  # SOURCE ACCESSIBLE
        assert os.path.exists(self.output_directory)  # CLEAR EXPORT PATH
        assert not os.path.exists(self.output_file_path)  # NO OVERWRITE
        assert self.input_level in ["in_range=full", "in_range=video"]


def ensure_logs_output_path(job: TaskJob):
    """
    Ensure log folder is writable, get path.

b1031cb58d36c4c23e081f0303ff0614567946e4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant