mirror of
https://github.com/python/cpython.git
synced 2025-12-09 18:48:05 +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
|
Partial support of the Windows
|
||||||
`STARTUPINFO <https://msdn.microsoft.com/en-us/library/ms686331(v=vs.85).aspx>`__
|
`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
|
.. attribute:: dwFlags
|
||||||
|
|
||||||
|
|
@ -788,6 +789,8 @@ on Windows.
|
||||||
:data:`SW_HIDE` is provided for this attribute. It is used when
|
:data:`SW_HIDE` is provided for this attribute. It is used when
|
||||||
:class:`Popen` is called with ``shell=True``.
|
:class:`Popen` is called with ``shell=True``.
|
||||||
|
|
||||||
|
.. versionchanged:: 3.7
|
||||||
|
*Keyword-only argument* support was added.
|
||||||
|
|
||||||
Constants
|
Constants
|
||||||
^^^^^^^^^
|
^^^^^^^^^
|
||||||
|
|
|
||||||
|
|
@ -127,11 +127,13 @@ if _mswindows:
|
||||||
import msvcrt
|
import msvcrt
|
||||||
import _winapi
|
import _winapi
|
||||||
class STARTUPINFO:
|
class STARTUPINFO:
|
||||||
dwFlags = 0
|
def __init__(self, *, dwFlags=0, hStdInput=None, hStdOutput=None,
|
||||||
hStdInput = None
|
hStdError=None, wShowWindow=0):
|
||||||
hStdOutput = None
|
self.dwFlags = dwFlags
|
||||||
hStdError = None
|
self.hStdInput = hStdInput
|
||||||
wShowWindow = 0
|
self.hStdOutput = hStdOutput
|
||||||
|
self.hStdError = hStdError
|
||||||
|
self.wShowWindow = wShowWindow
|
||||||
else:
|
else:
|
||||||
import _posixsubprocess
|
import _posixsubprocess
|
||||||
import select
|
import select
|
||||||
|
|
|
||||||
|
|
@ -2550,6 +2550,22 @@ class Win32ProcessTestCase(BaseTestCase):
|
||||||
subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
|
subprocess.call([sys.executable, "-c", "import sys; sys.exit(0)"],
|
||||||
startupinfo=startupinfo)
|
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):
|
def test_creationflags(self):
|
||||||
# creationflags argument
|
# creationflags argument
|
||||||
CREATE_NEW_CONSOLE = 16
|
CREATE_NEW_CONSOLE = 16
|
||||||
|
|
|
||||||
|
|
@ -1726,3 +1726,4 @@ Doug Zongker
|
||||||
Peter Åstrand
|
Peter Åstrand
|
||||||
evilzero
|
evilzero
|
||||||
Dhushyanth Ramasamy
|
Dhushyanth Ramasamy
|
||||||
|
Subhendu Ghosh
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ Core and Builtins
|
||||||
- bpo-28598: Support __rmod__ for subclasses of str being called before
|
- bpo-28598: Support __rmod__ for subclasses of str being called before
|
||||||
str.__mod__. Patch by Martijn Pieters.
|
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.
|
Patch by Matthieu Dartiailh.
|
||||||
|
|
||||||
- bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
|
- bpo-29602: Fix incorrect handling of signed zeros in complex constructor for
|
||||||
|
|
@ -1243,6 +1243,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #26128: Added keyword-only arguments support for
|
||||||
|
subprocess.STARTUPINFO
|
||||||
|
|
||||||
- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if
|
- Issue #27517: LZMA compressor and decompressor no longer raise exceptions if
|
||||||
given empty data twice. Patch by Benjamin Fogle.
|
given empty data twice. Patch by Benjamin Fogle.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue