diff options
author | Tristan van Berkom <tristan@codethink.co.uk> | 2020-12-01 17:12:37 +0900 |
---|---|---|
committer | Tristan van Berkom <tristan@codethink.co.uk> | 2020-12-07 17:51:13 +0900 |
commit | f10feb3d024cb1b8becda17b6d25919d5042ad55 (patch) | |
tree | 4dcc9b9d36cbd0ccce84c0f1825d1e8923bbbecc | |
parent | 4828aa399f621e3cdafdc57c8c8030f955c11b18 (diff) | |
download | buildstream-f10feb3d024cb1b8becda17b6d25919d5042ad55.tar.gz |
node.pyi: Adding missing forward declarations
In order to use types from the Node family with mypy, we need to
have the methods we use on those types defined.
-rw-r--r-- | src/buildstream/node.pyi | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/buildstream/node.pyi b/src/buildstream/node.pyi index 854f4bde6..059bec2b8 100644 --- a/src/buildstream/node.pyi +++ b/src/buildstream/node.pyi @@ -1,4 +1,4 @@ -from typing import Generic, List, Mapping, Optional, Sequence, TypeVar +from typing import overload, Generic, List, Mapping, Optional, Sequence, TypeVar, Dict, Any from ._project import Project @@ -10,11 +10,36 @@ class ProvenanceInformation: ... class Node: def clone(self) -> "Node": ... def get_provenance(self) -> ProvenanceInformation: ... + def strip_node_info(self) -> Dict[str, Any]: ... class MappingNode(Node, Generic[TNode]): def __init__(self, file_index: int, line: int, column: int, value: Mapping[str, TValidNodeValue]) -> None: ... def clone(self) -> MappingNode[TNode]: ... - def get_str_list(self, key: str, default: List[str] = None) -> List[str]: ... + def validate_keys(self, valid_keys: List[str]): ... + @overload + def get_str_list(self, key: str) -> List[str]: ... + @overload + def get_str_list(self, key: str, default: List[str]) -> List[str]: ... + @overload + def get_str_list(self, key: str, default: Optional[List[str]]) -> Optional[List[str]]: ... + @overload + def get_str(self, key: str) -> str: ... + @overload + def get_str(self, key: str, default: str) -> str: ... + @overload + def get_str(self, key: str, default: Optional[str]) -> Optional[str]: ... + @overload + def get_int(self, key: str) -> int: ... + @overload + def get_int(self, key: str, default: int) -> int: ... + @overload + def get_int(self, key: str, default: Optional[int]) -> Optional[int]: ... + @overload + def get_mapping(self, key: str) -> "MappingNode": ... + @overload + def get_mapping(self, key: str, default: "MappingNode") -> "MappingNode": ... + @overload + def get_mapping(self, key: str, default: Optional["MappingNode"]) -> Optional["MappingNode"]: ... class ScalarNode(Node): def as_str(self) -> str: ... @@ -25,6 +50,6 @@ class SequenceNode(Node, Generic[TNode]): def clone(self) -> "SequenceNode[TNode]": ... def _assert_symbol_name( - symbol_name: str, purpose: str, *, ref_node: Optional[Node] = None, allow_dashes: bool = True + symbol_name: str, purpose: str, *, ref_node: Optional[Node], allow_dashes: bool = True ) -> None: ... -def _new_synthetic_file(filename: str, project: Optional[Project] = None) -> MappingNode[TNode]: ... +def _new_synthetic_file(filename: str, project: Optional[Project]) -> MappingNode[TNode]: ... |