Source code
Revision control
Copy as Markdown
Other Tools
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.
"""
"""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"))