Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update signature of ConfigParser.get() #501

Merged
merged 14 commits into from
Aug 29, 2016
37 changes: 28 additions & 9 deletions stdlib/3/configparser.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# Based on http://docs.python.org/3.5/library/configparser.html and on
# reading configparser.py.

from typing import (MutableMapping, Mapping, Dict, Sequence, List,
Iterable, Iterator, Callable, Any, IO)
from typing import (MutableMapping, Mapping, Dict, Sequence, List, Union,
Iterable, Iterator, Callable, Any, IO, overload, Optional)
# Types only used in type comments only
from typing import Optional, Tuple # noqa

Expand Down Expand Up @@ -48,19 +48,19 @@ class ExtendedInterpolation(Interpolation):
pass


class ConfigParser(_parser):
class RawConfigParser(_parser):
def __init__(self,
defaults: _section = None,
dict_type: Mapping[str, str] = ...,
allow_no_value: bool = ...,
*,
delimiters: Sequence[str] = ...,
comment_prefixes: Sequence[str] = ...,
inline_comment_prefixes: Sequence[str] = None,
strict: bool = ...,
empty_lines_in_values: bool = ...,
default_section: str = ...,
interpolation: Interpolation = None,
converters: _converters = {}) -> None: ...
interpolation: Interpolation = None) -> None: ...

def __len__(self) -> int: ...

Expand All @@ -84,7 +84,7 @@ class ConfigParser(_parser):

def has_option(self, section: str, option: str) -> bool: ...

def read(self, filenames: Sequence[str],
def read(self, filenames: Union[str, Sequence[str]],
encoding: str = None) -> List[str]: ...

def read_file(self, f: Iterable[str], source: str = None) -> None: ...
Expand All @@ -94,11 +94,15 @@ class ConfigParser(_parser):
def read_dict(self, dictionary: Mapping[str, Mapping[str, Any]],
source: str = ...) -> None: ...

def getint(self, section: str, option: str) -> int: ...
def getint(self, section: str, option: str, *, raw: bool = ..., vars: _section = ..., fallback: int = ...) -> int: ...

def getfloat(self, section: str, option: str, *, raw: bool = ..., vars: _section = ..., fallback: float = ...) -> float: ...

def getfloat(self, section: str, option: str) -> float: ...
def getboolean(self, section: str, option: str, *, raw: bool = ..., vars: _section = ..., fallback: bool = ...) -> bool: ...

def getboolean(self, section: str, option: str) -> bool: ...
# This is incompatible with MutableMapping so we ignore the type
def get(self, section: str, option: str, *, raw: bool = ..., vars: _section = ..., fallback: str = ...) -> str: # type: ignore
...

def set(self, section: str, option: str, value: str) -> None: ...

Expand All @@ -113,6 +117,21 @@ class ConfigParser(_parser):
def optionxform(self, option: str) -> str: ...


class ConfigParser(RawConfigParser):
def __init__(self,
defaults: _section = None,
dict_type: Mapping[str, str] = ...,
allow_no_value: bool = ...,
delimiters: Sequence[str] = ...,
comment_prefixes: Sequence[str] = ...,
inline_comment_prefixes: Sequence[str] = None,
strict: bool = ...,
empty_lines_in_values: bool = ...,
default_section: str = ...,
interpolation: Interpolation = None,
converters: _converters = {}) -> None: ...


class Error(Exception):
pass

Expand Down