mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
bpo-26128: Added __init__to subprocess.STARTUPINFO (#171)
The Windows-specific subprocess.STARTUPINFO class now accepts keyword-only arguments to its constructor to set the various data attributes. Patch by Subhendu Ghosh.
This commit is contained in:
parent
21024f0662
commit
ae160bba20
5 changed files with 32 additions and 7 deletions
|
|
@ -746,7 +746,8 @@ on Windows.
|
|||
|
||||
Partial support of the Windows
|
||||
`STARTUPINFO <https://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__
|
||||
structure is used for :class:`Popen` creation.
|
||||
structure is used for :class:`Popen` creation. The following attributes can be set
|
||||
by passing them as keyword-only arguments.
|
||||
|
||||
.. attribute:: dwFlags
|
||||
|
||||
|
|
@ -788,6 +789,8 @@ on Windows.
|
|||
:data:`SW_HIDE` is provided for this attribute. It is used when
|
||||
:class:`Popen` is called with ``shell=True``.
|
||||
|
||||
.. versionchanged:: 3.7
|
||||
*Keyword-only argument* support was added.
|
||||
|
||||
Constants
|
||||
^^^^^^^^^
|
||||
|
|
|
|||
|
|
@ -127,11 +127,13 @@ if _mswindows:
|
|||
import msvcrt
|
||||
import _winapi
|
||||
class STARTUPINFO:
|
||||
dwFlags = 0
|
||||
hStdInput = None
|
||||
hStdOutput = None
|
||||
hStdError = None
|
||||
wShowWindow = 0
|
||||
def __init__(self, *, dwFlags=0, hStdInput=None, hStdOutput=None,
|
||||
hStdError=None, wShowWindow=0):
|
||||
self.dwFlags = dwFlags
|
||||
self.hStdInput = hStdInput
|
||||
self.hStdOutput = hStdOutput
|
||||
self.hStdError = hStdError
|
||||
self.wShowWindow = wShowWindow
|
||||
else:
|
||||
import _posixsubprocess
|
||||
import select
|
||||
|
|
|
|||
|
|
@ -2550,6 +2550,22 @@ class Win32ProcessTestCase(BaseTestCase):
|
|||
subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
|
||||
startupinfo=startupinfo)
|
||||
|
||||
def test_startupinfo_keywords(self):
|
||||
# startupinfo argument
|
||||
# We use hardcoded constants, because we do not want to
|
||||
# depend on win32all.
|
||||
STARTF_USERSHOWWINDOW = 1
|
||||
SW_MAXIMIZE = 3
|
||||
startupinfo = subprocess.STARTUPINFO(
|
||||
dwFlags=STARTF_USERSHOWWINDOW,
|
||||
wShowWindow=SW_MAXIMIZE
|
||||
)
|
||||
# Since Python is a console process, it won't be affected
|
||||
# by wShowWindow, but the argument should be silently
|
||||
# ignored
|
||||
subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
|
||||
startupinfo=startupinfo)
|
||||
|
||||
def test_creationflags(self):
|
||||
# creationflags argument
|
||||
CREATE_NEW_CONSOLE = 16
|
||||
|
|
|
|||
|
|
@ -1726,3 +1726,4 @@ Doug Zongker
|
|||
Peter Åstrand
|
||||
evilzero
|
||||
Dhushyanth Ramasamy
|
||||
Subhendu Ghosh
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ Core and Builtins
|
|||
- bpo-28598: Support __rmod__ for subclasses of str being called before
|
||||
str.__mod__. Patch by Martijn Pieters.
|
||||
|
||||
- bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX.
|
||||
- bpo-29607: Fix stack_effect computation for CALL_FUNCTION_EX.
|
||||
Patch by Matthieu Dartiailh.
|
||||
|
||||
- bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
|
||||
|
|
@ -1243,6 +1243,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #26128: Added keyword-only arguments support for
|
||||
subprocess.STARTUPINFO
|
||||
|
||||
- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if
|
||||
given empty data twice. Patch by Benjamin Fogle.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue