Steven Karas
d4c15011e4
add __new__ to tuple in python2 ( #2304 )
...
this solves #2091 when checking Python 2 code (#2092 only fixed it for Python 3).
2018-07-03 08:18:01 -07:00
Yusuke Miyazaki
1ae2ba0fbe
Use sys.platform instead of comments ( #2286 )
2018-07-03 08:13:04 -07:00
Yusuke Miyazaki
6192cce9d9
Avoid using string literals in type annotations ( #2294 )
2018-07-02 20:23:29 -07:00
Sebastian Rittau
6a18bd3ec2
Add missing self to TestCase.addCleanup() ( #2301 )
2018-07-02 12:12:59 -07:00
Yusuke Miyazaki
581705d9ee
Prefer to use ellipsis over pass ( #2292 )
2018-06-28 10:29:45 -07:00
Sebastian Rittau
b261b228ba
Merge Python 2 and 3 shutil ( #2259 )
...
* Drop support for Python 3.3
* Merge Python 2 and 3 shutil
* Marked some arguments optional
* Changed callback return type from None to Any for more flexibility
2018-06-27 20:42:58 -07:00
Philipp Hahn
ee07115c96
urllib2.build_open() accepts instances and classes ( #2284 )
...
<https://docs.python.org/2/library/urllib2.html#urllib2.build_opener >
> handlers can be either instances of BaseHandler, or subclasses of
> BaseHandler (in which case it must be possible to call the constructor
> without any parameters).
2018-06-27 20:13:46 -07:00
Michael Lee
fb92ee84c5
Make overloads in the Python 2 builtins with a 'None' fallback come first ( #2261 )
...
In short, this change makes sure calls like `map(None, a, b)` behave as
expected when using `--no-strict-optional` is enabled.
For additional context, see https://github.com/python/mypy/issues/5246
2018-06-20 08:26:06 -07:00
Jelle Zijlstra
da8de48f6d
UserList and UserString in 2.7 ( #2246 )
...
Fill out UserList and UserString stubs to make the classes concrete. Compare:
https://github.com/python/cpython/blob/2.7/Lib/UserList.py
https://github.com/python/cpython/blob/2.7/Lib/UserString.py
2018-06-17 17:24:30 +01:00
Jelle Zijlstra
8084dc1c1f
Fix abstract classes in 2.7 ( #2247 )
...
Part of #1476 .
2018-06-17 17:21:17 +01:00
Jelle Zijlstra
6b36b1befe
Iterator provides a concrete __iter__ in 2.7 (#2245 )
...
This is already how it works in the Python 3 stub.
`Iterator.__iter__` also exists at runtime: https://github.com/python/cpython/blob/2.7/Lib/_abcoll.py#L73 .
2018-06-17 12:00:42 +01:00
Jelle Zijlstra
0393de4bd7
fix some abstract classes in Python 2 ( #2240 )
...
Part of #1476 .
2018-06-17 00:56:00 +01:00
Philipp Hahn
7c3edba6ce
python2/gettext improvements ( #2235 )
...
* py2: gettext: info()
returns a Dict[str, str]
<https://docs.python.org/2/library/gettext.html#gettext.NullTranslations.info >
> Return the “protected” _info variable.
<https://docs.python.org/2/library/gettext.html#the-gnutranslations-class >
> The entire set of key/value pairs are placed into a dictionary and set
> as the “protected” _info instance variable.
* py2: gettext: charset()
returns an Optional[str]
<https://docs.python.org/2/library/gettext.html#gettext.NullTranslations.charset >
> Return the “protected” _charset variable.
<https://docs.python.org/2/library/gettext.html#the-gnutranslations-class >
> If the key Content-Type is found, then the charset property is used to
> initialize the “protected” _charset instance variable, defaulting to
> None if not found.
* py2: gettext: [set_]output_charset()
allows to set an Optional[str]
<https://docs.python.org/2/library/gettext.html#gettext.NullTranslations.output_charset >
> Return the “protected” _output_charset variable.
<https://docs.python.org/2/library/gettext.html#gettext.NullTranslations.set_output_charset >
> Change the “protected” _output_charset variable, which defines the
> encoding used to return translated messages.
<https://docs.python.org/2/library/gettext.html#gettext.GNUTranslations.lgettext >
> Equivalent to gettext(), but the translation is returned in the
> preferred system encoding, if no other encoding was explicitly set with
> set_output_charset().
* py2: gettext: install(..., names)
allows to set an Optional[str]
<https://docs.python.org/2/library/gettext.html#gettext.NullTranslations.install >
> If the names parameter is given, it must be a sequence containing the
> names of functions you want to install in the builtins namespace in
> addition to _().
* py2: gettext: localdir=None
is Optional[str]
<https://docs.python.org/2/library/gettext.html#gettext.bindtextdomain >
> If localedir is omitted or None, then the current binding for domain
> is returned.
* py2: gettext: languages=None
is Optional[Sequence[str]]
<https://docs.python.org/2/library/gettext.html#gettext.find >
> If languages is not given, then the following environment variables
> are searched: ...
* py2: gettext: codeset=None
is Optional[str]
<https://docs.python.org/2/library/gettext.html#gettext.translation >
> If provided, codeset will change the charset used to encode translated
> strings.
* py2: gettext: translation(class_=None)
is Optional[type]
<https://docs.python.org/2/library/gettext.html#gettext.translation >
> The actual class instantiated is either class_ if provided, otherwise
> GNUTranslations.
* py2: gettext: translation(fallback)
is bool
<https://docs.python.org/2/library/gettext.html#gettext.translation >
> ..., this function raises IOError if fallback is false (which is the
> default), and returns a NullTranslations instance if fallback is true.
* py2: gettext: install(unicode)
is bool
<https://docs.python.org/2/library/gettext.html#gettext.install >
> The unicode flag is passed to the resulting translation object’s
> install() method.
which is already expecting `bool`.
2018-06-16 10:19:24 -07:00
Jelle Zijlstra
341fa375ef
cleanup in typing.pyi ( #2241 )
...
- Fix TODOs around TracebackType
- Don't use quotes for forward references
- Make Generator and AsyncGenerator attributes into properties
2018-06-16 08:24:52 -07:00
Anthony Sottile
56c93c85c0
Add NoReturn to execv* family of functions ( #2226 )
2018-06-15 07:55:45 -07:00
Jelle Zijlstra
d2469c0e89
fix type for itertools.product ( #2129 )
...
Fixes #1850 .
The fix was already applied to Python 2, but the typevar-based solution there
leads to "cannot infer value of type variable" in mypy. I used the following
script to check:
```python
from itertools import product
reveal_type(product([1]))
reveal_type(product([1], ['x'], [False], [3.0], [(1,)], [('x',)], [{1}], [{1: 2}], repeat=5))
```
2018-06-11 15:52:44 -07:00
Guido van Rossum
c4bf27b835
Copy __builtin__.pyi to builtins.pyi, to fix breakage caused by #2128 ( #2215 )
2018-06-11 15:10:22 -07:00
Jelle Zijlstra
f5a74fd5da
remove Optional from type of __slots__ ( #2128 )
...
Fixes #1853
2018-06-11 14:29:11 -07:00
Sebastian Rittau
a3031adb46
Merge Python 2 and 3 SSL stubs ( #2175 )
2018-05-31 21:44:42 -07:00
Mathieu Leduc-Hamel
351d019241
Mark inspect.getmembers as Optional for both Py2 and Py3 ( #2172 )
2018-05-29 10:43:34 -07:00
Sushain Cherivirala
dc0fcdcaa0
Add missing signals to Py2/3; missing events to Py2; PEP 526 refactoring ( fixes #1576 ) ( #2168 )
2018-05-27 22:50:10 -07:00
Michael J. Sullivan
2ba90a65c0
Remove __all__ = ... from stubs ( #2161 )
...
The presence of a __all__ causes everything to not get picked up by
import *, which among other things breaks the new six.moves stubs.
2018-05-24 19:00:07 -07:00
Michael J. Sullivan
db1316d26b
os.path.relpath can use a default argument and still use str ( #2159 )
2018-05-24 13:23:17 -07:00
Jelle Zijlstra
b89f9553e9
keep os.path in 2 and 3 consistent ( #2152 )
...
We can't merge these because os/__init__ is still different.
Also slight refactor of tests/check_consistent.py to avoid `from os import path`.
2018-05-22 07:14:13 -07:00
Michael Lee
709b193416
Rearrange overloads to account for optional arguments ( #2150 )
...
Basically, the same thing as [my previous pull request][0], except the
fixes are now focusing on functions with overlapping argument counts.
[0]: https://github.com/python/typeshed/pull/2138
2018-05-19 09:20:16 -07:00
Semyon Proshev
9275be244f
Update NamedTuple _make and _replace parameters in Python 2 ( #2144 )
2018-05-17 11:03:55 -07:00
Michael Lee
97d9f2eb2c
Ensures overloads are ordered from narrow to broad ( #2138 )
...
This commit reorders any overloads where the first overload was
"shadowing" the second, preventing it from ever being matched by type
checkers that work by selecting the first matching overload alternative.
For example, the first overload alternative below is strictly broader
then the second, preventing it from ever being selected:
class Parent: pass
class Child(Parent): pass
@overload
def foo(x: *int) -> Parent: ...
@overload
def foo(x: int, y: int) -> Child: ...
The correct thing to do is to either delete the second overload or
rearrange them to look like this:
@overload
def foo(x: int, y: int) -> Child: ...
@overload
def foo(x: *int) -> Parent: ...
Rationale: I'm currently [working on a proposal][0] that would amend
PEP 484 to (a) mandate type checkers check overloads in order and
(b) prohibit overloads where an earlier alternative completely shadows
a later one.
[0]: https://github.com/python/typing/issues/253#issuecomment-389262904
This would prohibit overloads that look like the example below, where
the first alternative completely shadows the second.
I figured it would be a good idea to make these changes ahead of time:
if my proposal is accepted, it'd make the transition smoother. If not,
this is hopefully a relatively harmless change.
Note: I think some of these overloads could be simplified (e.g.
`reversed(...)`), but I mostly stuck with rearranging them in case I was
wrong. The only overload I actually changed was `hmac.compare_digest` --
I believe the Python 2 version actually accepts unicode.
2018-05-17 09:45:33 -04:00
Zac Hatfield-Dodds
d5929ada4d
itertools.islice allows step=None ( #2142 )
2018-05-17 09:35:02 -04:00
Ethan Smith
e9600db2ec
Remove symlinks! ( #2132 )
2018-05-15 15:18:59 -04:00
Jelle Zijlstra
55be42f6d6
add __fspath__ support to os.path ( #2053 )
...
Fixes #1997 , #2068 .
This is tricky because we need to get the return values right (see #1960 for
prior attempts) and we often run into python/mypy#3644 . I found that I
could express most signatures correctly using a series of overloads.
A few other changes in here:
- Added splitunc, which according to https://docs.python.org/3/library/os.path.html
should exist in both Unix and Windows.
- Made the second argument to os.path.curdir Optional to match the implementation.
- Fixed os.path.split, whose previous Path-aware signature triggered python/mypy#3644 .
2018-05-15 10:31:40 -04:00
Sebastian Rittau
09008599ce
Merge Python 2 and 3 wsgiref ( #2106 )
...
* Merge Python 2 and 3 wsgiref
* Move wsigref to 2and3
2018-05-09 16:26:03 -07:00
Guido van Rossum
d854d7e2a0
Revert "Fix signature of generic_visit method ( #2100 )" ( #2101 )
...
This reverts commit 39576c5d41 .
I merged too soon -- tests are failing.
2018-05-07 11:21:19 -07:00
Thomas Schaper
39576c5d41
Fix signature of generic_visit method ( #2100 )
...
This methods returns something that has the same type as the first argument.
Fixes #2085 .
2018-05-07 11:20:20 -07:00
Jelle Zijlstra
9e25506cab
add missing attributes to Python 2 unicode errors ( #2084 )
2018-04-27 14:37:20 -07:00
Martin DeMello
2935017157
Add multiprocessing.dummy pyi files ( #2059 )
2018-04-18 19:20:01 -07:00
Jelle Zijlstra
a5429d25dc
add missing methods to DictMixin ( #2054 )
...
Fixes #1896 .
2018-04-14 14:21:07 -07:00
Jelle Zijlstra
0f425db197
fix types for unittest.TestLoader.loadTestsFrom* methods ( #2042 )
...
Fixes #2008 .
2018-04-12 12:29:32 -07:00
Svend Sorensen
6c1dffed58
Make islice start and stop parameters optional ( #2031 )
...
From the documentation [1]: "If start is None, then iteration starts at zero."
[1] https://docs.python.org/3/library/itertools.html#itertools.islice .
PR #1603 made this change for Python 2.
2018-04-10 20:55:06 -07:00
Jelle Zijlstra
f37709f9c3
Merge stubs for sqlite3 ( #2026 )
...
As promised in #2014 .
There are virtually no real changes between Python 2 and 3 in this module, but the stub had accumulated some meaningless differences. I also fixed a few incorrect types.
2018-04-09 12:32:59 -07:00
Jelle Zijlstra
d43eac60dd
add email.parser.FeedParser ( #2028 )
...
Fixes #1985 .
2018-04-09 12:03:43 -07:00
Jelle Zijlstra
4ab720161a
ResourceWarning doesn't exist in Python 2 ( #2020 )
...
Fixes #1971 .
2018-04-06 11:19:34 -07:00
Jelle Zijlstra
ce0656a8c7
add some more Python 3.7 features ( #2014 )
2018-04-06 11:08:30 -07:00
Alan Du
bd26c7bf84
Add __complex__ to complex ( #2004 )
...
* Add __complex__ to complex
complex SupportsComplex!
* Allow constructing complex from SupportsComplex
2018-04-03 07:14:52 -07:00
Jelle Zijlstra
103056eecf
fix some TODOs ( #1994 )
...
- Made deque.maxlen read-only
- We don't support 3.2, so we don't care about signature changes in it
- There don't seem to be any missing set operations (I compared the dir() of this class to that of builtins.set)
2018-03-28 18:40:13 -07:00
Semyon Proshev
ac70fdc614
Overloads for map ( #1990 )
2018-03-27 10:05:59 -07:00
Guido van Rossum
30791d4208
Give Python 2 sys.getprofile() and sys.gettrace() return types (Any). ( #1988 )
...
(In Python 3 their types are already correct.)
2018-03-26 18:37:04 -07:00
Tuomas Suutari
4da20cb8b7
multiprocessing: Fix timeout args of AsyncResult methods ( #1984 )
...
The timeout argument of wait and get methods of AsyncResult accepts also
None so fix the type specification to include Optional.
Accepting None is not an implementation detail as it's clearly
documented too:
https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.AsyncResult
https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult
2018-03-24 08:15:39 -07:00
Ashwini Chaudhary
164aa21fa1
Added stub for dircache(py2) ( #1510 )
2018-03-17 22:22:25 -07:00
z33ky
c2c48424da
Add missing collections.defaultdict.__init__ overloads ( #1957 ) ( #1958 )
2018-03-17 08:22:11 -07:00
Svyatoslav Ilinskiy
d702d3621c
Complete stubs for email package in python2 ( #1936 )
...
Fix #685 , fix #275
2018-03-06 21:38:01 -08:00