Skip to content

zones_validator

zones_validator

zones_validator(zones_config: Path) -> None

Validate x264/x265 zones configuration file.

Source code in src/encode_utils_cli/zones_validator.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@click.command()
@click.argument(
    "zones_config",
    type=click.Path(exists=True, dir_okay=False, path_type=Path),
)
def zones_validator(zones_config: Path) -> None:
    """Validate x264/x265 zones configuration file."""
    text = zones_config.read_text()

    targe_lines = [
        line
        for line in text.splitlines()
        if line and not line.isspace() and not line.lstrip().startswith("#")
    ]

    for line in targe_lines:
        if error_zones := [
            zone
            for zone in line.split(": ")[1].split("/")
            if not Schema(Regex(r"^\d+,\d+,b=\d\.\d+$")).is_valid(zone)
        ]:
            click.echo(f"{line} <- {error_zones}")