| from dataclasses import dataclass |
| from typing import Any, ClassVar, Dict, List, Optional, Set |
| |
| from ..schema import SchemaValue, validate_dict |
| |
| """ |
| YAML filename for meta files |
| """ |
| META_YML_FILENAME = "META.yml" |
| |
| @dataclass |
| class MetaFile(): |
| """documented structure of META files. |
| Reference: https://github.com/web-platform-tests/wpt/pull/18434 |
| """ |
| |
| """a link to the specification covered by the tests in the directory""" |
| spec: Optional[str] = None |
| """a list of GitHub account username belonging to people who are notified when pull requests |
| modify files in the directory |
| """ |
| suggested_reviewers: Optional[List[str]] = None |
| |
| _optional_keys: ClassVar[Set[str]] = {"spec", "suggested_reviewers"} |
| |
| def __init__(self, obj: Dict[str, Any]): |
| validate_dict(obj, optional_keys=MetaFile._optional_keys) |
| self.spec = SchemaValue.from_union([SchemaValue.from_str, SchemaValue.from_none], obj.get("spec")) |
| self.suggested_reviewers = SchemaValue.from_union( |
| [lambda x: SchemaValue.from_list(SchemaValue.from_str, x), SchemaValue.from_none], |
| obj.get("suggested_reviewers")) |