Commit Graph
1238 Commits
Author SHA1 Message Date
Sebastian RittauandGitHub 6b55f5c498 Clean up multiprocessing + shared_memory (#3351)
* Make multiprocessing stubs match implementation

* Add multiprocessing.process.BaseProcess
* Use BaseProcess in multiprocessing.context where applicable
* Remove non-existing BaseContext.Process()
* Derive DefaultContext from BaseContext
* Fix BaseContext/DefaultContext.set_start_method() signatures
* Re-export multiprocessing.context.Process from multiprocessing,
  instead of using a custom definition
* Re-export multiprocessing.active_from from multiprocessing.process
  instead of using a custom definition

* Add parent_process() (Python 3.8)

* Complete BaseManager; add Server

* Add multiprocessing.shared_memory et al
2019-10-14 09:54:45 +02:00
Sebastian RittauandGitHub 0501e2b329 Annotations for remaining Python 3.8 additions (#3358)
* Add os.add_dll_directory()
* Add memfd_create() and flags
* Add type annotation to flags
* Add stat_result.st_reparse_tag and flags
* Add ncurses_version
* Add Path.link_to()
* Add Picker.reducer_override()
* Add plistlib.UID
* Add has_dualstack_ipv6() and create_server()
* Add shlex.join()
* Add SSL methods and fields
* Add Python 3.8 statistics functions and classes
* Remove obsolete sys.subversion
* Add sys.unraisablehook
* Add threading.excepthook
* Add get_native_id() and Thread.native_id
* Add Python 3.8 tkinter methods
* Add CLOCK_UPTIME_RAW
* Add SupportsIndex
* Add typing.get_origin() and get_args()
* Add unicodedata.is_normalized
* Add unittest.mock.AsyncMock

Currently this is just an alias for Any like Mock and MagicMock. All of
these classes should probably be sub-classing Any and add their own
methods. See also #3224.

* Add unittest cleanup methods
* Add IsolatedAsyncioTestCase
* Add ElementTree.canonicalize() and C14NWriterTarget
* cProfile.Profile can be used as a context manager
* Add asyncio task name handling
* mmap.flush() now always returns None
* Add posonlyargcount to CodeType
2019-10-14 09:53:48 +02:00
Sebastian RittauandGitHub 6507875f28 Annotate Python 3.8 removals (#3359)
* macpath
* time.clock()
* Some cgi functions
* XMLParser(html) and doctype()
* unicode_internal
* Two sqlite3 classes hidden
* fileinput bufsize arg
* Treeview.selection no longer takes arguments
2019-10-14 09:51:39 +02:00
Sebastian RittauandJelle Zijlstra 950f391704 Remove unnecessary __all__ annotations (#3357) 2019-10-13 16:22:03 -07:00
Sebastian RittauandGitHub de26a3d109 Remove raise statements from function bodies (#3355)
While it may eventually be useful to mark the exceptions that can be
raised from a function or method, the semantics are currently undefined
and unclear.
2019-10-13 21:51:43 +02:00
秋葉andSebastian Rittau 2bd1b75641 Extract asyncio exceptions into a separate module (Python 3.8) (#3356) 2019-10-13 12:20:02 +02:00
Utkarsh GuptaandSebastian Rittau 91b72d49c7 typing.pyi: Remove verbose and rename from NamedTuple (#3352)
Closes #3235
2019-10-12 21:27:50 +02:00
Sebastian RittauandGitHub 62bbdf856c Add several Python 3.8 annotations (#3347) 2019-10-12 19:36:56 +02:00
Sebastian RittauandGitHub 583784d94c Add missing exception to smtplib (#3348)
Improve a few other types
2019-10-12 19:15:44 +02:00
Maarten ter HuurneandSebastian Rittau 6a92ae6295 Change type for urllib headers from Mapping to email.message.Message (#3345)
Also remove override of 'headers' in HTTPError

Closes #3344
2019-10-11 14:56:19 +02:00
Sebastian RittauandJelle Zijlstra d41bcd39e1 Add assorted annotations (#3335)
* Add assorted annotations

* Fix type of Purpose items
2019-10-10 20:51:49 -07:00
Sebastian RittauandJelle Zijlstra 8a7d61741d Python3.8 additions and changes (#3337)
* Add as_integer_ratio() to a few types

* Add dirs_exist_ok to copytree()

* int, float, complex accept __index__ args

Also fix complex.__init__ argument names

* Add __reversed__ to dict et al.

* Python 3.8 date(time) arithmetic fixes

* Add CodeType.replace()
2019-10-10 20:51:27 -07:00
Utkarsh GuptaandSebastian Rittau 1a932ce26a message.pyi: Change HeaderType to Any (#2924)
Fixes #2863
2019-10-10 12:24:44 +02:00
Vasily ZakharovandJelle Zijlstra 57384ce033 Revised stubs for geoip2 third party library (#3317) 2019-10-09 19:28:42 -07:00
Russ AllberyandSebastian Rittau f0ccb325aa Mark some urllib.parse return fields optional (#3332)
Per the urllib.parse documentation, username, password, hostname,
and port will be set to None if not set in the parsed URL.  The
same is true for urlparse in Python 2 according to its documentation.
2019-10-09 19:38:59 +02:00
Sebastian RittauandJelle Zijlstra 07c8675ba5 Remove unused # type: ignore comments (#3325) 2019-10-09 10:27:18 -07:00
robertschweizerandSebastian Rittau 3ee8fc2242 Add missing Optional types in urllib.parse (#3263)
None values are accepted, and interpreted as empty (byte) strings by
some urllib.parse functions.
2019-10-09 08:38:46 +02:00
Sebastian RittauandJelle Zijlstra 256b3ce8ab Remove a bunch of unused imports (#3323) 2019-10-08 07:59:32 -07:00
Ryan MorsheadandSebastian Rittau b9342eca0a add IncrementalNewlineDecoder constructor (#3311) 2019-10-06 17:22:03 +02:00
Ryan MorsheadandSebastian Rittau 3743b64b07 IncrementalNewlineDecoder.decode accepts str (#3312)
The decode method of IncrementalNewlineDecoder accepts a string when its decoder is None.
2019-10-06 11:33:26 +02:00
Rebecca ChenandGitHub 90aa27b54a Fix the signature of IOBase._checkClosed(). (#3305)
* In Python 2, the optional `msg` argument was missing.
* In Python 3, the method was missing altogether.

Reference:
https://github.com/python/cpython/blob/2.7/Lib/_pyio.py#L423
https://github.com/python/cpython/blob/3.6/Lib/_pyio.py#L443
2019-10-04 14:53:48 -07:00
Jelle ZijlstraandSebastian Rittau c38cf6736e Allow callables in _SourceObjectType (#3295)
This is important because mypy doesn't generally think functions are compatible with `FunctionType`, so `inspect.getsource` on arbitrary functions is rejected by the current annotations.
2019-10-03 00:52:21 +02:00
Michael J. SullivanandSebastian Rittau 455f25a5c7 Use Any instead of object in the view types for __and__ and __sub__ (#3294)
This was discussed in #3181 and the correct explanation was given that
object ought to be preferred here. In practice this caused an obscure
issue with mypy when using this operations on the results of
six.viewkeys(), since it decided that it wanted a mapping *from* object
as a result of inference contexts. Grumble.
2019-10-02 08:03:57 +02:00
Stefan TandJelle Zijlstra 0abb50e20a Add http.MISDIRECTED_REQUEST introduced in 3.7 (#3293) 2019-10-01 15:42:44 -07:00
Sebastian RittauandJelle Zijlstra c32e1e2280 Enable --disallow-any-generics for stubs (#3288) 2019-10-01 05:31:34 -07:00
Vasily ZakharovandSebastian Rittau a2834cf24d Added stub for http.server.BaseHTTPRequestHandler useful undocumented fields (#3285) 2019-09-30 19:27:54 +02:00
Vasily ZakharovandSebastian Rittau aaff561ef6 Added stub for urllib.request.proxy_bypass() (#3283) 2019-09-30 18:57:14 +02:00
Vasily ZakharovandJelle Zijlstra c441a1f5b8 Added ConfigParser.BOOLEAN_STATES # Undocumented (#3281) 2019-09-30 17:10:48 +02:00
BradandJelle Zijlstra 412b9e74d5 Change last asyncio.gather() overload ret. to List (#3248)
Stems from PR #1550/ Issue #3243.
2019-09-30 12:42:58 +02:00
hh-handSebastian Rittau 1e881ad156 switched return_exceptions from bool to Literal for asyncio.gather (#3275) 2019-09-29 16:46:37 +02:00
Alan DuandSebastian Rittau d4727c39f1 Add multiprocessing.Array (#3272) 2019-09-29 16:30:09 +02:00
Anthony SottileandSebastian Rittau c0371df172 dir argument to tempfile functions may take PathLike (#3226) 2019-09-29 16:09:22 +02:00
Andrew SvetlovandSebastian Rittau 60bdf60eda Add missing default for ssl_handshake_timeout agrument (#3277) 2019-09-29 15:13:09 +02:00
Árni Már JónssonandSebastian Rittau e0cc8bdafb inspect.Traceback/FrameInfo index/code_context attributes now Optional[] (#3265)
Resolves #3264
2019-09-26 17:13:00 +02:00
Rebecca ChenandSebastian Rittau 3f8c2169d1 Define listdir in posix and import it in os. (#3258) 2019-09-23 23:41:05 +02:00
Rebecca ChenandSebastian Rittau 0602840cc2 Make the type of timeout Optional[float] everywhere in subprocess. (#3241) 2019-09-18 11:05:49 +02:00
Philippe FandSebastian Rittau ce0dc8a23d Add proper support for __rtruediv__ on libpath.Path (#3236) 2019-09-17 23:24:42 +02:00
秋葉andSebastian Rittau 2edb36e993 Add ThreadingHTTPServer stub (#3232)
Fixes #3217
2019-09-15 16:06:19 +02:00
plokmijnuhbyandSebastian Rittau 8d053f139f Change SyncManager behaviour when used as a context decorator (#3230)
Resolves #3018.
2019-09-11 18:24:36 +02:00
秋葉andSebastian Rittau 5ccf017ca0 fix: Add MapResult type (#3228) 2019-09-11 18:20:40 +02:00
herr kasteandSebastian Rittau 668988fa8c Return concrete sets from ItemsView and KeysView (#3181) 2019-09-05 16:59:59 +02:00
Rebecca ChenandSebastian Rittau abc241bd35 Use Literal to improve tempfile.[Named]TemporaryFile. (#3215) 2019-08-31 11:25:44 +02:00
Jaromir LatalandSebastian Rittau cd1a0c592a Add typestubs for unittest.util (#3186) 2019-08-27 15:34:22 +02:00
Rebecca ChenandGitHub 03b38d4d2e Add sys.flags.utf8_mode. (#3205)
This is new in Python 3.7:
https://docs.python.org/3/library/sys.html#sys.flags
2019-08-23 12:06:21 -07:00
Scott BeldenandSebastian Rittau 04bcb89aea create_server returns a Server, not AbstractServer (#3131)
* remove create_unix_connection and use ABCMeta
2019-08-23 08:31:40 +02:00
Shannon ZhuandJelle Zijlstra 72010bc5dc Update how mock classes alias to Any (#3182)
* Update how mock classes alias to Any

> First, the z: Any situation looks like a bug or accidental feature to me.
This is definitely meant (and works) as a variable declaration; that it
also allows using z as a type seems wrong. I can't find any evidence in
PEP 484 that this was intended; in mypy it's likely the accidental result
of other design choices meant to shut up errors about Any.

Ideally these classes could be declared as empty class stubs, but since the comments suggest this isn't possible yet, let's update these to be type aliases to Any rather than global variables of type Any. This would avoid invalid type errors when the implementation of type checkers respect the intention that `z: Any` does not make `z` a valid type.

* Update mock.pyi
2019-08-19 17:10:27 -07:00
Michael NixandSebastian Rittau 1ab5145124 adds threading related members to queue.pyi (#3198) 2019-08-19 18:33:19 +02:00
Alan DuandSebastian Rittau e252094354 multiprocessing.Value can also take a Type (#3200) 2019-08-19 17:52:00 +02:00
Rebecca ChenandJelle Zijlstra fab2ee0d7c Remove unnecessary quotes around forward references. (#3191) 2019-08-16 20:29:32 -07:00
Michael LeeandJelle Zijlstra b294782183 Make most contextmanager __exit__ signatures return Optional[bool] (#3179)
This pull request is a follow-up to https://github.com/python/mypy/issues/7214.

In short, within that mypy issue, we found it would be helpful to
determine between contextmanagers that can "swallow" exceptions vs ones
that can't. This helps prevent some false positive when using flags that
analyze control flow such as `--warn-unreachable`. To do this,
Jelle proposed assuming that only contextmanagers where the `__exit__`
returns `bool` are assumed to swallow exceptions.

This unfortunately required the following typeshed changes:

1. The typing.IO, threading.Lock, and concurrent.futures.Executor
   were all modified so `__exit__` returns `Optional[None]` instead
   of None -- along with all of their subclasses.

   I believe these three types are meant to be subclassed, so I felt
   picking the more general type was correct.

2. There were also a few concrete types (e.g. see socketserver,
   subprocess, ftplib...) that I modified to return `None` -- I checked
   the source code, and these all seem to return None (and don't appear
   to be meant to be subclassable).

3. contextlib.suppress was changed to return bool. I also double-checked
   the unittest modules and modified a subset of those contextmanagers,
   leaving ones like `_AssertRaisesContext` alone.
2019-08-16 16:13:33 -07:00