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
: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
^^^^^^^^^
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
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
Peter Åstrand
evilzero
Dhushyanth Ramasamy
+Subhendu Ghosh
- 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
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.