1# Copyright 2020 The Abseil Authors. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14"""This modules contains type annotated stubs for DEFINE functions.""" 15 16 17from absl.flags import _argument_parser 18from absl.flags import _flag 19from absl.flags import _flagvalues 20 21import enum 22 23from typing import Text, List, Any, TypeVar, Optional, Union, Type, Iterable, overload 24 25_T = TypeVar('_T') 26_ET = TypeVar('_ET', bound=enum.Enum) 27 28 29def DEFINE( 30 parser: _argument_parser.ArgumentParser[_T], 31 name: Text, 32 default: Any, 33 help: Optional[Text], 34 # Explicitly replacing ... with _flagvalues.FLAGS causes pytype to 35 # not like the syntax. 36 flag_values : _flagvalues.FlagValues = ..., 37 serializer: Optional[_argument_parser.ArgumentSerializer[_T]] = None, 38 module_name: Optional[Text] = None, 39 **args: Any) -> _flagvalues.FlagHolder[Optional[_T]]: 40 ... 41 42 43 44def DEFINE_flag( 45 flag: _flag.Flag[_T], 46 flag_values: _flagvalues.FlagValues = ..., 47 module_name: Optional[Text] = None) -> _flagvalues.FlagHolder[Optional[_T]]: 48 ... 49 50@overload 51def DEFINE_string( 52 name: Text, 53 default: None, 54 help: Optional[Text], 55 flag_values: _flagvalues.FlagValues = ..., 56 **args: Any) -> _flagvalues.FlagHolder[Optional[Text]]: 57 ... 58 59@overload 60def DEFINE_string( 61 name: Text, 62 default: Text, 63 help: Optional[Text], 64 flag_values: _flagvalues.FlagValues = ..., 65 **args: Any) -> _flagvalues.FlagHolder[Text]: 66 ... 67 68@overload 69def DEFINE_boolean( 70 name : Text, 71 default: None, 72 help: Optional[Text], 73 flag_values: _flagvalues.FlagValues = ..., 74 module_name: Optional[Text] = None, 75 **args: Any) -> _flagvalues.FlagHolder[Optional[bool]]: 76 ... 77 78@overload 79def DEFINE_boolean( 80 name : Text, 81 default: Union[Text, bool, int], 82 help: Optional[Text], 83 flag_values: _flagvalues.FlagValues = ..., 84 module_name: Optional[Text] = None, 85 **args: Any) -> _flagvalues.FlagHolder[bool]: 86 ... 87 88@overload 89def DEFINE_float( 90 name: Text, 91 default: None, 92 help: Optional[Text], 93 lower_bound: Optional[float] = None, 94 upper_bound: Optional[float] = None, 95 flag_values: _flagvalues.FlagValues = ..., 96 **args: Any) -> _flagvalues.FlagHolder[Optional[float]]: 97 ... 98 99@overload 100def DEFINE_float( 101 name: Text, 102 default: Union[float, Text], 103 help: Optional[Text], 104 lower_bound: Optional[float] = None, 105 upper_bound: Optional[float] = None, 106 flag_values: _flagvalues.FlagValues = ..., 107 **args: Any) -> _flagvalues.FlagHolder[float]: 108 ... 109 110 111@overload 112def DEFINE_integer( 113 name: Text, 114 default: None, 115 help: Optional[Text], 116 lower_bound: Optional[int] = None, 117 upper_bound: Optional[int] = None, 118 flag_values: _flagvalues.FlagValues = ..., 119 **args: Any) -> _flagvalues.FlagHolder[Optional[int]]: 120 ... 121 122@overload 123def DEFINE_integer( 124 name: Text, 125 default: Union[int, Text], 126 help: Optional[Text], 127 lower_bound: Optional[int] = None, 128 upper_bound: Optional[int] = None, 129 flag_values: _flagvalues.FlagValues = ..., 130 **args: Any) -> _flagvalues.FlagHolder[int]: 131 ... 132 133@overload 134def DEFINE_enum( 135 name : Text, 136 default: None, 137 enum_values: Iterable[Text], 138 help: Optional[Text], 139 flag_values: _flagvalues.FlagValues = ..., 140 module_name: Optional[Text] = None, 141 **args: Any) -> _flagvalues.FlagHolder[Optional[Text]]: 142 ... 143 144@overload 145def DEFINE_enum( 146 name : Text, 147 default: Text, 148 enum_values: Iterable[Text], 149 help: Optional[Text], 150 flag_values: _flagvalues.FlagValues = ..., 151 module_name: Optional[Text] = None, 152 **args: Any) -> _flagvalues.FlagHolder[Text]: 153 ... 154 155@overload 156def DEFINE_enum_class( 157 name: Text, 158 default: None, 159 enum_class: Type[_ET], 160 help: Optional[Text], 161 flag_values: _flagvalues.FlagValues = ..., 162 module_name: Optional[Text] = None, 163 case_sensitive: bool = ..., 164 **args: Any) -> _flagvalues.FlagHolder[Optional[_ET]]: 165 ... 166 167@overload 168def DEFINE_enum_class( 169 name: Text, 170 default: Union[_ET, Text], 171 enum_class: Type[_ET], 172 help: Optional[Text], 173 flag_values: _flagvalues.FlagValues = ..., 174 module_name: Optional[Text] = None, 175 case_sensitive: bool = ..., 176 **args: Any) -> _flagvalues.FlagHolder[_ET]: 177 ... 178 179 180@overload 181def DEFINE_list( 182 name: Text, 183 default: None, 184 help: Text, 185 flag_values: _flagvalues.FlagValues = ..., 186 **args: Any) -> _flagvalues.FlagHolder[Optional[List[Text]]]: 187 ... 188 189@overload 190def DEFINE_list( 191 name: Text, 192 default: Union[Iterable[Text], Text], 193 help: Text, 194 flag_values: _flagvalues.FlagValues = ..., 195 **args: Any) -> _flagvalues.FlagHolder[List[Text]]: 196 ... 197 198@overload 199def DEFINE_spaceseplist( 200 name: Text, 201 default: None, 202 help: Text, 203 comma_compat: bool = False, 204 flag_values: _flagvalues.FlagValues = ..., 205 **args: Any) -> _flagvalues.FlagHolder[Optional[List[Text]]]: 206 ... 207 208@overload 209def DEFINE_spaceseplist( 210 name: Text, 211 default: Union[Iterable[Text], Text], 212 help: Text, 213 comma_compat: bool = False, 214 flag_values: _flagvalues.FlagValues = ..., 215 **args: Any) -> _flagvalues.FlagHolder[List[Text]]: 216 ... 217 218@overload 219def DEFINE_multi( 220 parser : _argument_parser.ArgumentParser[_T], 221 serializer: _argument_parser.ArgumentSerializer[_T], 222 name: Text, 223 default: None, 224 help: Text, 225 flag_values:_flagvalues.FlagValues = ..., 226 module_name: Optional[Text] = None, 227 **args: Any) -> _flagvalues.FlagHolder[Optional[List[_T]]]: 228 ... 229 230@overload 231def DEFINE_multi( 232 parser : _argument_parser.ArgumentParser[_T], 233 serializer: _argument_parser.ArgumentSerializer[_T], 234 name: Text, 235 default: Union[Iterable[_T], _T, Text], 236 help: Text, 237 flag_values:_flagvalues.FlagValues = ..., 238 module_name: Optional[Text] = None, 239 **args: Any) -> _flagvalues.FlagHolder[List[_T]]: 240 ... 241 242@overload 243def DEFINE_multi_string( 244 name: Text, 245 default: None, 246 help: Text, 247 flag_values: _flagvalues.FlagValues = ..., 248 **args: Any) -> _flagvalues.FlagHolder[Optional[List[Text]]]: 249 ... 250 251@overload 252def DEFINE_multi_string( 253 name: Text, 254 default: Union[Iterable[Text], Text], 255 help: Text, 256 flag_values: _flagvalues.FlagValues = ..., 257 **args: Any) -> _flagvalues.FlagHolder[List[Text]]: 258 ... 259 260@overload 261def DEFINE_multi_integer( 262 name: Text, 263 default: None, 264 help: Text, 265 lower_bound: Optional[int] = None, 266 upper_bound: Optional[int] = None, 267 flag_values: _flagvalues.FlagValues = ..., 268 **args: Any) -> _flagvalues.FlagHolder[Optional[List[int]]]: 269 ... 270 271@overload 272def DEFINE_multi_integer( 273 name: Text, 274 default: Union[Iterable[int], int, Text], 275 help: Text, 276 lower_bound: Optional[int] = None, 277 upper_bound: Optional[int] = None, 278 flag_values: _flagvalues.FlagValues = ..., 279 **args: Any) -> _flagvalues.FlagHolder[List[int]]: 280 ... 281 282@overload 283def DEFINE_multi_float( 284 name: Text, 285 default: None, 286 help: Text, 287 lower_bound: Optional[float] = None, 288 upper_bound: Optional[float] = None, 289 flag_values: _flagvalues.FlagValues = ..., 290 **args: Any) -> _flagvalues.FlagHolder[Optional[List[float]]]: 291 ... 292 293@overload 294def DEFINE_multi_float( 295 name: Text, 296 default: Union[Iterable[float], float, Text], 297 help: Text, 298 lower_bound: Optional[float] = None, 299 upper_bound: Optional[float] = None, 300 flag_values: _flagvalues.FlagValues = ..., 301 **args: Any) -> _flagvalues.FlagHolder[List[float]]: 302 ... 303 304 305@overload 306def DEFINE_multi_enum( 307 name: Text, 308 default: None, 309 enum_values: Iterable[Text], 310 help: Text, 311 flag_values: _flagvalues.FlagValues = ..., 312 **args: Any) -> _flagvalues.FlagHolder[Optional[List[Text]]]: 313 ... 314 315@overload 316def DEFINE_multi_enum( 317 name: Text, 318 default: Union[Iterable[Text], Text], 319 enum_values: Iterable[Text], 320 help: Text, 321 flag_values: _flagvalues.FlagValues = ..., 322 **args: Any) -> _flagvalues.FlagHolder[List[Text]]: 323 ... 324 325@overload 326def DEFINE_multi_enum_class( 327 name: Text, 328 default: None, 329 enum_class: Type[_ET], 330 help: Text, 331 flag_values: _flagvalues.FlagValues = ..., 332 module_name: Optional[Text] = None, 333 **args: Any) -> _flagvalues.FlagHolder[Optional[List[_ET]]]: 334 ... 335 336@overload 337def DEFINE_multi_enum_class( 338 name: Text, 339 default: Union[Iterable[_ET], _ET, Text], 340 enum_class: Type[_ET], 341 help: Text, 342 flag_values: _flagvalues.FlagValues = ..., 343 module_name: Optional[Text] = None, 344 **args: Any) -> _flagvalues.FlagHolder[List[_ET]]: 345 ... 346 347 348 349def DEFINE_alias( 350 name: Text, 351 original_name: Text, 352 flag_values: _flagvalues.FlagValues = ..., 353 module_name: Optional[Text] = None) -> _flagvalues.FlagHolder[Any]: 354 ... 355 356 357 358def declare_key_flag(flag_name: Text, 359 flag_values: _flagvalues.FlagValues = ...) -> None: 360 ... 361 362 363 364def adopt_module_key_flags(module: Any, 365 flag_values: _flagvalues.FlagValues = ...) -> None: 366 ... 367 368 369 370def disclaim_key_flags() -> None: 371 ... 372