Commit Graph

68 Commits

Author SHA1 Message Date
miedzinski d486e2a8d5 Add typing.ClassVar (fixes #888) (#889) 2017-01-29 17:15:04 -08:00
Andrey Vlasovskikh 2d46679da8 Added attributes present in inheritors of types.InstanceType (#885) 2017-01-29 11:26:30 -08:00
Andrey Vlasovskikh bb33cb0119 Added __instancecheck__ and __subclasscheck__ to type (#887) 2017-01-29 11:17:01 -08:00
Andrey Vlasovskikh 8ce64ce782 Updates to slice built-in (#891)
Makes args and attributes optional.
2017-01-29 11:16:23 -08:00
Andrey Vlasovskikh 2b25b3ef6d Argument of input() is not restricted to str (#890) 2017-01-29 10:34:32 -08:00
Lucas Wiman c048984ab9 Update stub of str to match documentation. (#893) 2017-01-29 10:14:32 -08:00
Lucas Wiman 6d1edb285d Expand several stdlib methods to accept unicode or str. (#869)
Expand several stdlib methods to accept unicode or str.
2017-01-27 16:03:25 +00:00
Andrey Vlasovskikh c8435f4315 Added object.__sizeof__ (#865)
* Added object.__sizeof__

* Removed __sizeof__ inherited from object

* Made sqlite3 classes for Python 2 inherit from object

* Removed __sizeof__ inherited from object
2017-01-26 12:05:53 -08:00
Andrey Vlasovskikh 025f31dcc9 Added class super to builtins (#867) 2017-01-26 11:53:59 -08:00
Andrey Vlasovskikh 1d1a2e458c Added methods of typing.NamedTuple (#864) 2017-01-26 11:52:59 -08:00
Andrey Vlasovskikh 39df0d0725 Added object as the base class of type (#866) 2017-01-26 11:46:15 -08:00
Bertrand Bonnefoy-Claudet c5ffe4f1d9 Fix returned decoder/encoder types in codecs 2017-01-23 10:32:53 -08:00
Alex Frieder db09b441ce Add __nonzero__ to numeric builtin types 2017-01-20 12:41:16 -08:00
Jukka Lehtosalo f2579e532f Update signature of dict.get (#852)
Without this change, mypy can't infer proper types for cases like
`d.get(k, [])` where it needs type context to infer the type of
`[]`. We add the value type to the second argument to `get` using
union types, and this provides the context. This doesn't affect
the effective signature of `get`, other than providing the type
context for mypy.

Also removed some related redundant method definitions where we can
just inherit the base class definition. This makes it easier to
keep the method signatures consistent.

Note that this requires a few mypy PRs before mypy will be able to
use this effectively:

* https://github.com/python/mypy/pull/2718
* https://github.com/python/mypy/pull/2715
2017-01-20 07:41:54 -08:00
Ethan 3b30996733 Change ast's parse signature to return Module (#836) 2017-01-17 09:49:41 -08:00
Jukka Lehtosalo 35978a7ca5 Make signature of DictMixin.get consistent with Mapping.get (#838) 2017-01-17 14:08:49 +00:00
Jukka Lehtosalo 734ad44a11 Make MRO of UserDict.DictMixin consistent with Mapping (#837)
This fixes MRO conflicts produced by mypy when using multiple
inheritance.
2017-01-17 13:55:31 +00:00
Guido van Rossum 70d012ed0b Remove trailing commas, pytype doesn't like them 2017-01-13 13:59:07 -08:00
Łukasz Langa 37fc626ffd Add type signature for a WSGI Application to wsgiref (#825)
This type is something core to Python and is useful when typing web applications,
but doesn't actually exist in the stdlib anywhere.  I put this in wsgiref, but I am
open to suggestions as for a better place.

(Original PR by @rowillia.)
2017-01-13 13:36:34 -08:00
Roy Williams 41ba734fc2 Fix return type of next when default parameter is provided.
**test_next.py**:
```python
z = (x*2 for x in range(10))
reveal_type(next(z, None))
```

Before:
```shell
test_next.py:2: error: Revealed type is 'builtins.int*'
```

After:
```shell
test_next.py:2: error: Revealed type is 'Union[builtins.int*, builtins.None]'
```
2017-01-13 09:46:51 -08:00
Eric Moyer 2580702036 Match py2 assert*IsInstance with isinstance
The python2 unittest `assertIsInstance` and `assertNotIsInstance` stub
did not allow using a tuple of classes, but that behavior is [in the
documentation][1]. This commit copies the type stub for the isinstance
built-in to the stubs for `assertIsInstance` and `assertNotIsInstance`

I made this commit in response to @gvanrossum's request in
python/typeshed#802 (which fixed this issue for python 3) that I apply
the same fix to python 2.

[1]: https://docs.python.org/2.7/library/unittest.html#unittest.TestCase.assertNotIsInstance
2017-01-12 09:29:23 -08:00
Roy Williams 6008b9dbb1 Overload signature of get to return an Optional value and to allow default to take any type to match runtime behavior.
This chage more closely matches the behavior of `get` at runtime.  Users can pass whatever they want in to the default
parameter and it will be returned if the key is absent.  Additionally, `get` should return an `Optional` if called with
only one parameter.

```python
z = {'a': 22}
reveal_type(z.get('b'))
reveal_type(z.get('b', 22))
reveal_type(z.get('b', 'hello'))
```

Before:
```shell
test_get_default.py:2: error: Revealed type is 'builtins.int*'
test_get_default.py:3: error: Revealed type is 'builtins.int*'
test_get_default.py:4: error: Revealed type is 'builtins.int*'
test_get_default.py:4: error: Argument 2 to "get" of "dict" has incompatible type "str"; expected "int"
```

After:
```shell
test_get_default.py:2: error: Revealed type is 'Union[builtins.int*, builtins.None]'
test_get_default.py:3: error: Revealed type is 'builtins.int'
test_get_default.py:4: error: Revealed type is 'Union[builtins.int, builtins.str*]'
```
2017-01-11 22:02:29 -08:00
Łukasz Langa 4603baaa6c Restore stdlib/2/builtins.pyi as a symlink to __builtin__.pyi (#823)
This was broken by python/typeshed@fe0e374.

I confirmed no changes so far were made to builtins.pyi that would require
porting.
2017-01-11 17:24:14 -08:00
David Fisher 2cb8e184cc Add NoReturn (#811)
* Add NoReturn
2017-01-04 13:38:05 -08:00
z33ky 93bb4604cb Add special methods for object (#774)
* Add special methods for object

* Add __format__ to 2/__builtin__.pyi too

* Remove redundant __format__ from float.
2017-01-04 13:52:51 +00:00
lionel-github f775ef3bc5 Fix RawConfigParser.read stub for Python 2. (#808)
Bring it in line with the stub used in the Python 3 version.
2017-01-02 15:36:03 -08:00
Lukasz Langa bacd6c0aed Add missing Set imports. 2016-12-21 01:17:55 -08:00
Lukasz Langa c0c982ada5 Add missing Dict imports. 2016-12-21 01:15:26 -08:00
Lukasz Langa 5f416fae64 Add missing List imports. 2016-12-21 01:06:52 -08:00
Lukasz Langa 82b2d8e3bc Fixing flake8 F403, F405 errors 2016-12-20 02:28:12 -08:00
Lukasz Langa 99a57e5cbe Fixing flake8 E251 errors 2016-12-20 01:54:34 -08:00
Lukasz Langa 68a49c2c2e Fixing flake8 E111, E114, E116, E203, E225, E262 errors 2016-12-20 01:39:18 -08:00
Lukasz Langa d70bb0c00f Fixing flake8 E202, E203, E225 errors 2016-12-20 01:02:59 -08:00
Lukasz Langa 6eb97964fd Fixing flake8 E401, E402 errors 2016-12-20 00:47:51 -08:00
Lukasz Langa 147772950f Fixing flake8 E265 errors 2016-12-20 00:16:44 -08:00
Lukasz Langa 6b5c6626d6 Fixing flake8 E121, E122, E123, E124, E125, E126 errors 2016-12-19 23:53:19 -08:00
Lukasz Langa 67e38b6806 Fixing flake8 E231 errors 2016-12-19 23:53:19 -08:00
Roy Williams 3d79158db5 Add return type to multiprocessesing.cpu_count for Python 2.
Python 3 already had the correct type, it was missing in Python 2.
2016-12-19 23:51:21 -08:00
Lukasz Langa fe0e3744cc Fixing flake8 E261 errors 2016-12-19 22:09:35 -08:00
Lukasz Langa b84f20a011 Fixing flake8 W errors 2016-12-19 21:52:56 -08:00
TrueBrain 7e89fc0d49 Define __slots__ for object as Iterable[str] / Iterable[Union[str, unicode]] (#780)
* Define __slots__ for object as Iterable[str] / Iterable[Union[str, unicode]]
* A string as __slots__ value is also valid and represents a single item
2016-12-19 13:09:04 -08:00
David Fisher beb9183103 Swap order of overloads to fix filter without strict optional (#779)
Related to python/mypy#2587
2016-12-16 15:57:04 -08:00
David Fisher 957307b785 Make filter work properly with Optional elements (#775) 2016-12-15 17:53:38 -08:00
Henri Dwyer 6887edebda add calendar data attributes (#751) 2016-12-13 14:58:26 -08:00
Guido van Rossum b46280ec78 Make FrozenSet covariant. (#769)
Follow-up for PR #726.
2016-12-13 11:40:18 -08:00
Daisuke Miyakawa 57aa1923d5 Make sqlite3's Connection.rollback() return None (#758)
Fixes #747.
2016-12-07 16:22:47 -08:00
George King af5b5c83fd Make shutil.copytree stub's ignore parameter optional. (#740)
* Make `shutil.copytree` stub's `ignore` parameter optional.

* python2.7 shutil.copytree `ignore` annotated as optional.
2016-12-07 14:47:34 -08:00
George King dccc29bc2f Add None to type union for subprocess.Popen.communicate input. (#743)
* Add `None` to type union for `subprocess.Popen.communicate` stub's `input` parameter.

* subprocess.communicate `input` annotated as `Optional[AnyStr]` for both 2.7 and 3.x; `timeout` as `Optional[float]`.
2016-12-07 14:46:34 -08:00
Jukka Lehtosalo f39f9bf694 Make object_hook of json.load and json.loads optional (Python 2) (#757) 2016-12-07 13:32:56 -08:00
Matthias Kramm 79061f9de2 move simplejson from stdlib/ to third_party/ (#752) 2016-12-06 17:43:47 -08:00