1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# Copyright 2020 The Abseil Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Contains type annotations for _argument_parser.py."""
from typing import Text, TypeVar, Generic, Iterable, Type, List, Optional, Sequence, Any
import enum
_T = TypeVar('_T')
_ET = TypeVar('_ET', bound=enum.Enum)
class ArgumentSerializer(Generic[_T]):
def serialize(self, value: _T) -> Text: ...
# The metaclass of ArgumentParser is not reflected here, because it does not
# affect the provided API.
class ArgumentParser(Generic[_T]):
def parse(self, argument: Text) -> Optional[_T]: ...
def flag_type(self) -> Text: ...
# Using bound=numbers.Number results in an error: b/153268436
_N = TypeVar('_N', int, float)
class NumericParser(ArgumentParser[_N]):
def is_outside_bounds(self, val: _N) -> bool: ...
def parse(self, argument: Text) -> _N: ...
def convert(self, argument: Text) -> _N: ...
class FloatParser(NumericParser[float]):
def __init__(self, lower_bound:Optional[float]=None,
upper_bound:Optional[float]=None) -> None:
...
class IntegerParser(NumericParser[int]):
def __init__(self, lower_bound:Optional[int]=None,
upper_bound:Optional[int]=None) -> None:
...
class BooleanParser(ArgumentParser[bool]):
...
class EnumParser(ArgumentParser[Text]):
def __init__(self, enum_values: Sequence[Text], case_sensitive: bool=...) -> None:
...
class EnumClassParser(ArgumentParser[_ET]):
def __init__(self, enum_class: Type[_ET], case_sensitive: bool=...) -> None:
...
@property
def member_names(self) -> Sequence[Text]: ...
class BaseListParser(ArgumentParser[List[Text]]):
def __init__(self, token: Text, name:Text) -> None: ...
# Unlike baseclass BaseListParser never returns None.
def parse(self, argument: Text) -> List[Text]: ...
class ListParser(BaseListParser):
def __init__(self) -> None:
...
class WhitespaceSeparatedListParser(BaseListParser):
def __init__(self, comma_compat: bool=False) -> None:
...
class ListSerializer(ArgumentSerializer[List[Text]]):
list_sep = ... # type: Text
def __init__(self, list_sep: Text) -> None:
...
class EnumClassListSerializer(ArgumentSerializer[List[Text]]):
def __init__(self, list_sep: Text, **kwargs: Any) -> None:
...
class CsvListSerializer(ArgumentSerializer[List[Any]]):
def __init__(self, list_sep: Text) -> None:
...
class EnumClassSerializer(ArgumentSerializer[_ET]):
def __init__(self, lowercase: bool) -> None:
...
|