Commit Graph

2985 Commits

Author SHA1 Message Date
Sebastian Rittau
595d02363a Change return type of Message.get_payload() to Any (#3504)
If, for example, is_multipart() is called before calling get_payload(),
it is guaranteed that a List[Message] is returned.
2019-11-26 08:03:15 -08:00
Rune Tynan
643b955edb Modulefinder stubs (#3497) 2019-11-25 21:21:32 -08:00
Benjamin Peterson
23c531df5a Type socketserver's RequestHandlerClass as a callable. (#3422)
It's not uncommon to pass functions rather than actual types into the servers.
2019-11-25 20:18:17 -08:00
Ryan Hileman
693678b4c3 add no_type_check_decorator stub for #2884 (#3460) 2019-11-25 19:46:57 -08:00
Rune Tynan
e2cf7c1bcf Add mailcap module (#3482) 2019-11-25 19:46:28 -08:00
Tuomas Suutari
56688240a1 mailbox: Fix signature of Mailbox.update method (#3493)
The `update` method calls `self[key] = message` for each `(key, message)`
pair so it also accepts all the same message types as the `__setitem__`
method.  Fix the signature so that the inputs are not restricted to
`Message` instances or to instance of the `_MessageType` type parameter,
but to the more reluctant `_MessageData` type alias.
2019-11-25 19:45:53 -08:00
Michał Słapek
41bf6a1982 Refactor warnings.catch_warning to be a class. (#3499) 2019-11-25 19:35:27 -08:00
Mohammed El-Afifi
c76a298ffa Fix type hints in Template class (#3491)
Nothing in the standard library documentation for the string module suggests that the value associated with any key in the mapping parameter(or kwds) to Template.substitute and Template.safe_substitute should be a string. In fact any object can be used, for example

Template("$number is a number.").substitute({"number": 1})

The above code sample currently causes an error message like this:

error: Dict entry 0 has incompatible type "str": "int"; expected "str": "str"

which obviously shouldn't be emitted. Also a similar logic is already in place for methods in the Formatter class. However as I saw the notice about loose types above the Formatter class, I opted to use `object` instead of `Any` as the implementation inside the affected functions just uses the built-in str function on values inside mappings.
2019-11-24 18:16:48 -08:00
Tuomas Suutari
90004af132 mailbox: Couple small fixes (#3490)
* mailbox: Make stub-only helpers private

These HasIteritems and HasItems protocols don't exist in the real
mailbox module so prefix them with underscore to indicate they are
private.

* mailbox: Fix type of message argument

The Mailbox.add and Mailbox.__setitem__ methods take a message argument
which can be anything that is convertible to a Message.  Fix the
signatures accordingly.
2019-11-24 17:54:58 -08:00
Jelle Zijlstra
1f0dc6ee05 timeout argument to urllib.request.urlopen is Optional (#3487)
The docs (https://docs.python.org/3/library/urllib.request.html#urllib.request.urlopen) aren't very precise about this, but passing `None` seems to work in practice.
2019-11-24 12:51:33 +01:00
Jelle Zijlstra
a89f883878 stream argument to pprint.pprint is Optional (#3488)
None is the default; see https://docs.python.org/3/library/pprint.html#pprint.PrettyPrinter
2019-11-24 12:29:43 +01:00
cshesse
91f445ef11 fix incorrect param name in FileIO (#3484) 2019-11-24 00:08:53 +01:00
Sebastian Rittau
c0d46a2035 Mostly undo #3372 (#3481)
readline callback must return str, not bytes.
2019-11-23 20:17:14 +01:00
Steven Kalt
1871e50936 Py37 compileall add invalidation mode (#3476) 2019-11-23 07:20:54 -08:00
Steven Kalt
036a278624 annotated ZipInfo.from_file (#3478)
Closes: #3477
2019-11-23 16:16:25 +01:00
cshesse
9c87b24041 Add default value to BaseContext.Pipe() (#3479) 2019-11-23 16:12:45 +01:00
Rune Tynan
cd45623ab7 Mailbox stubs (#3427) 2019-11-22 21:03:31 -08:00
Ivan Levkivskyi
8df632bca5 Fix some issues in cryptography package (#3474)
Note: the verifier() methods are not in docs, but they don't look private and are actually used in some code.
2019-11-21 17:05:22 +00:00
Martijn Pieters
c53bc5a7ab Add missing elements for multiprocessing.dummy (#3471)
`multiprocessing.dummy` exports names that were not yet listed in the typeshed stub:

```python
>>> from multiprocessing import dummy as mpdummy
>>> imported_objects = (
...     (name, obj) for name, obj in vars(mpdummy).items()
...     if name in mpdummy.__all__ and not obj.__module__.startswith("multiprocessing.dummy")
... )
>>> print(*(f"{name}: {obj.__module__}" for name, obj in sorted(imported_objects)), sep="\n")
Barrier: threading
BoundedSemaphore: threading
Condition: threading
Event: threading
JoinableQueue: queue
Lock: _thread
Queue: queue
RLock: threading
Semaphore: threading
current_process: threading
```

Of these, only `JoinableQueue` was listed.
2019-11-20 10:40:12 +00:00
Christopher Hunt
e065803980 distutils.fancy_getopt short option is optional (#3469) 2019-11-20 10:34:04 +00:00
Denis Laxalde
838e02334e Fix type of imp.find_module() (#3465)
find_module is documented to return a tuple (file, pathname,
description) where "file" is open file object and "description" a tuple
(suffix, mode, type). The type of "file" was wrong ("str" instead of
"IO[Any]") as well as that of "suffix" ("IO[Any]" instead of "str");
probably those type definitions were swapped.

Fixes #3466.
2019-11-20 10:29:05 +00:00
Michał Słapek
34d68ab0a2 Add warnings.catch_warning type hints with Literal. (#3464)
Closes: #3463
2019-11-14 11:08:50 +01:00
Ryan Morshead
8b6cd5c3f0 ast.Dict keys can be None (#3462)
See https://greentreesnakes.readthedocs.io/en/latest/nodes.html#Dict
2019-11-13 20:09:30 +01:00
Jeremy Lainé
ba520034c7 Add type hints for audioop module (#3428) 2019-11-13 07:02:14 -08:00
Sebastian Rittau
107eaeb3d2 Add sys.addaudithook() and audit() (#3455) 2019-11-11 13:22:28 -08:00
Sebastian Rittau
66778639a5 Run CI tests against win32 and darwin platform (#3457)
Also use Python 3.8 as default Python version for tests
2019-11-11 07:52:11 -08:00
Ivan Levkivskyi
05780a0d11 Fix errors discovered by running typeshed check on Windows (#3456)
Fix errors discovered by running typeshed check on Windows. This is a temporary fix for #3446 (in long term we should figure out why these were not caught by typeshed CI).

I also remove an outdated comment while I am at it.
2019-11-11 12:18:58 +00:00
Ran Benita
e55dad5dd0 sys: add pycache_prefix (#3454)
New in Python 3.8:
https://docs.python.org/3.8/library/sys.html#sys.pycache_prefix
2019-11-10 23:09:45 +01:00
Daniel Hahler
2f65683d7b Fix type for os.terminal_size to Tuple (#3450) 2019-11-10 19:30:12 +01:00
Michael Seifert
97ecd2b91f Change the return type of __reduce__ and __reduce_ex__ to Union[str, Tuple[Any, ...]] (#3453)
This allows subclasses to return strings (which are allowed) from these
methods without having mypy throwing an error.

Closes #3452
2019-11-10 15:48:56 +01:00
Sebastian Rittau
d60b7ae26d New libs: Change permission requirement to notification (#3443)
This was discussed on the typing-sig mailing list and in
python/peps#1218, has met the approval of the steering council, and
was incorporated into PEP 484.
2019-11-07 07:35:35 -08:00
Sebastian Rittau
79d4e0dd08 Add assorted werkzeug type hints (#3444)
* Annotate is_immutable()
* Annotate ImmutableListMixin and make generic
* Make ImmutableList generic and derive from generic List
* Annotate Accept
* Annotate MIMEAccept
* Fix annotation of parse_accept_header()
2019-11-06 10:37:18 -08:00
Sebastian Rittau
e4677d9ed4 Use async syntax instead of @coroutine (#3441) 2019-11-06 07:39:09 -08:00
Sebastian Rittau
add0b5e930 Add functools.cached_property (#3439)
Part of #3319
2019-11-06 07:21:32 -08:00
Markus Bauer
f39c102eb8 Add more stubs to redis (pubsub and monitor) (#3442) 2019-11-06 12:05:51 +01:00
Diego Elio Pettenò
99a6fb3108 Add the (deprecated) assertDictContainsSubset() to TestCase. (#3437)
Until this is removed from the standard library, it probably should stay in the typing.

Also update both 2 and 3 definitions to use Mapping[Any, Any], rather than Dict[Any, Any].
2019-11-04 08:10:45 -08:00
Jeremy Lainé
047caa9096 Add more stubs for cryptography (#3307) 2019-11-04 12:41:11 +01:00
Jon Dufresne
66c3945ca4 Remove certifi.old_where (#3436)
The function was removed from the API in commit (Nov 26, 2018):

a462d21c3f
2019-11-03 18:26:43 +01:00
Diego Elio Pettenò
7e27bf6bde Allow datetime() with a delta=timedelta() in assert(Not)AlmostEqual(s). (#3426)
While the documentation does not seem to make this particularly
obvious, it is allowed.
2019-11-02 22:35:09 -07:00
Jukka Lehtosalo
86135edb6d Fix signature of assertRaisesRegexp in unittest (#3434)
Fixes mypy false positive `"None" has noattribute "__enter__"` here:

```
class Foo(unittest.TestCase):
    def test_foo(self) -> None:
        with self.assertRaisesRegexp(Exception, "foo"):
            1 / 0
```

Fixes regression introduced in e6c467af82.
2019-11-01 15:48:35 +00:00
bianca rosa
4b8c6bbea1 add timespec arg to datetime.time.isoformat (#3432)
Close #3431
2019-11-01 11:25:15 +01:00
Diego Elio Pettenò
616cb0bb65 Add sock attribute for http.client.HTTPConnection in Python 3. (#3429)
The equivalent httplib.HTTPConnection class already include it for Python
2, despite the attribute not being documented for either version.
2019-10-30 23:21:50 +01:00
Jelle Zijlstra
cd5cd12a35 asyncio: fix windows stubs (#3424) 2019-10-30 08:13:32 -07:00
Greg Ward
603458ba09 Fix some incorrect/incomplete annotations for redis.client.PubSub (#3408)
* redis: Fix return value declarations in redis.client.PubSub

get_message() was declared incorrectly. Start here:

  https://github.com/andymccurdy/redis-py/blob/3.3.11/redis/client.py#L3298-L3300

where it's obvious that get_message() returns either None or the
output of handle_message().

So what does handle_message() return? Combine:

  https://github.com/andymccurdy/redis-py/blob/3.3.11/redis/client.py#L3316-L3336
  https://github.com/andymccurdy/redis-py/blob/3.3.11/redis/client.py#L3366

and you can see it returns None or a dict mapping str to something.

* redis: Fix incorrect declaration for PubSub.get_message() argument

Docstrings says it's a float:

  https://github.com/andymccurdy/redis-py/blob/3.3.11/redis/client.py#L3293-L3295

And it eventually gets passed to settimeout() on a socket:

  https://github.com/andymccurdy/redis-py/blob/3.3.11/redis/connection.py#L182

* redis: Annotate one more method arg in PubSub class

get_message() and handle_message() are closely related:
ignore_subscribe_message does the same in both, and its default value
in both is False.
2019-10-30 07:33:00 -07:00
Sebastian Rittau
c8405bb5d9 Add importlib.metadata (Python >= 3.8) (#3346)
Part of #3319
2019-10-29 19:53:47 -07:00
Rune Tynan
b112c20dad Copyreg stubs (#3387) 2019-10-29 19:52:05 -07:00
Angela Ambroz
b5b9a3959d Add pytz.FixedOffset (#3393) 2019-10-29 19:50:20 -07:00
Sebastian Rittau
5e9f66cb62 Add missing Python 3.7 and 3.8 annotations (#3399)
* Add explicit ssl_handshake_timeout arguments to open_connection and start_server

* Add context arguments to call methods

* Accept PathLike for create_unix_* paths

* Add TimerHandle.when()

Add missing version check

* AbstractServer is now an async context manager

* Add happy_eyeballs_delay and interleave arguments to create_connection

* Re-export asyncio.windows_events from asyncio

* Add name argument to Task constructor

* Add Task.get_coro()

* import and other fixes

* Fix return type of get_coro()
2019-10-29 19:49:37 -07:00
Sebastian Rittau
4770059894 Add missing ZipFile constructor arguments (#3414)
Closes: #3413
2019-10-29 19:46:31 -07:00
Dima Boger
aae01b8de0 Add sort_keys param to all dump-like functions in PyYAML (yaml) lib (#3417) 2019-10-29 19:44:04 -07:00