second commit
This commit is contained in:
39
env/lib/python3.11/site-packages/m3u8/version_matching.py
vendored
Normal file
39
env/lib/python3.11/site-packages/m3u8/version_matching.py
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
from typing import List
|
||||
|
||||
from m3u8 import protocol
|
||||
from m3u8.version_matching_rules import VersionMatchingError, available_rules
|
||||
|
||||
|
||||
def get_version(file_lines: List[str]):
|
||||
for line in file_lines:
|
||||
if line.startswith(protocol.ext_x_version):
|
||||
version = line.split(":")[1]
|
||||
return float(version)
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def valid_in_all_rules(
|
||||
line_number: int, line: str, version: float
|
||||
) -> List[VersionMatchingError]:
|
||||
errors = []
|
||||
for rule in available_rules:
|
||||
validator = rule(version, line_number, line)
|
||||
|
||||
if not validator.validate():
|
||||
errors.append(validator.get_error())
|
||||
|
||||
return errors
|
||||
|
||||
|
||||
def validate(file_lines: List[str]) -> List[VersionMatchingError]:
|
||||
found_version = get_version(file_lines)
|
||||
if found_version is None:
|
||||
return []
|
||||
|
||||
errors = []
|
||||
for number, line in enumerate(file_lines):
|
||||
errors_in_line = valid_in_all_rules(number, line, found_version)
|
||||
errors.extend(errors_in_line)
|
||||
|
||||
return errors
|
Reference in New Issue
Block a user