blob: 9b4a3d3a1426272563aeafbf25054a95b87b6d67 [file] [log] [blame] [edit]
# 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 Flag class."""
import copy
import functools
from absl.flags import _argument_parser
import enum
from typing import Text, TypeVar, Generic, Iterable, Type, List, Optional, Any, Union, Sequence
_T = TypeVar('_T')
_ET = TypeVar('_ET', bound=enum.Enum)
class Flag(Generic[_T]):
name = ... # type: Text
default = ... # type: Any
default_unparsed = ... # type: Any
default_as_str = ... # type: Optional[Text]
help = ... # type: Text
short_name = ... # type: Text
boolean = ... # type: bool
present = ... # type: bool
parser = ... # type: _argument_parser.ArgumentParser[_T]
serializer = ... # type: _argument_parser.ArgumentSerializer[_T]
allow_override = ... # type: bool
allow_override_cpp = ... # type: bool
allow_hide_cpp = ... # type: bool
using_default_value = ... # type: bool
allow_overwrite = ... # type: bool
allow_using_method_names = ... # type: bool
def __init__(self,
parser: _argument_parser.ArgumentParser[_T],
serializer: Optional[_argument_parser.ArgumentSerializer[_T]],
name: Text,
default: Any,
help_string: Optional[Text],
short_name: Optional[Text] = ...,
boolean: bool = ...,
allow_override: bool = ...,
allow_override_cpp: bool = ...,
allow_hide_cpp: bool = ...,
allow_overwrite: bool = ...,
allow_using_method_names: bool = ...) -> None:
...
@property
def value(self) -> Optional[_T]: ...
def parse(self, argument: Union[_T, Text, None]) -> None: ...
def unparse(self) -> None: ...
def _parse(self, argument: Any) -> Any: ...
def __deepcopy__(self, memo: dict) -> Flag: ...
def _get_parsed_value_as_string(self, value: Optional[_T]) -> Optional[Text]:
...
def serialize(self) -> Text: ...
def flag_type(self) -> Text: ...
class BooleanFlag(Flag[bool]):
def __init__(self,
name: Text,
default: Any,
help: Optional[Text],
short_name: Optional[Text]=None,
**args: Any) -> None:
...
class EnumFlag(Flag[Text]):
def __init__(self,
name: Text,
default: Any,
help: Optional[Text],
enum_values: Sequence[Text],
short_name: Optional[Text] = ...,
case_sensitive: bool = ...,
**args: Any):
...
class EnumClassFlag(Flag[_ET]):
def __init__(self,
name: Text,
default: Any,
help: Optional[Text],
enum_class: Type[_ET],
short_name: Optional[Text]=None,
**args: Any):
...
class MultiFlag(Flag[List[_T]]):
...
class MultiEnumClassFlag(MultiFlag[_ET]):
def __init__(self,
name: Text,
default: Any,
help_string: Optional[Text],
enum_class: Type[_ET],
**args: Any):
...