(self, protocol_factory, program, *args,
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, universal_newlines=False,
shell=False, bufsize=0,
encoding=None, errors=None, text=None,
**kwargs)
| 1787 | return transport, protocol |
| 1788 | |
| 1789 | async def subprocess_exec(self, protocol_factory, program, *args, |
| 1790 | stdin=subprocess.PIPE, stdout=subprocess.PIPE, |
| 1791 | stderr=subprocess.PIPE, universal_newlines=False, |
| 1792 | shell=False, bufsize=0, |
| 1793 | encoding=None, errors=None, text=None, |
| 1794 | **kwargs): |
| 1795 | if universal_newlines: |
| 1796 | raise ValueError("universal_newlines must be False") |
| 1797 | if shell: |
| 1798 | raise ValueError("shell must be False") |
| 1799 | if bufsize != 0: |
| 1800 | raise ValueError("bufsize must be 0") |
| 1801 | if text: |
| 1802 | raise ValueError("text must be False") |
| 1803 | if encoding is not None: |
| 1804 | raise ValueError("encoding must be None") |
| 1805 | if errors is not None: |
| 1806 | raise ValueError("errors must be None") |
| 1807 | |
| 1808 | popen_args = (program,) + args |
| 1809 | protocol = protocol_factory() |
| 1810 | debug_log = None |
| 1811 | if self._debug: |
| 1812 | # don't log parameters: they may contain sensitive information |
| 1813 | # (password) and may be too long |
| 1814 | debug_log = f'execute program {program!r}' |
| 1815 | self._log_subprocess(debug_log, stdin, stdout, stderr) |
| 1816 | transport = await self._make_subprocess_transport( |
| 1817 | protocol, popen_args, False, stdin, stdout, stderr, |
| 1818 | bufsize, **kwargs) |
| 1819 | if self._debug and debug_log is not None: |
| 1820 | logger.info('%s: %r', debug_log, transport) |
| 1821 | return transport, protocol |
| 1822 | |
| 1823 | def get_exception_handler(self): |
| 1824 | """Return an exception handler, or None if the default one is in use. |
nothing calls this directly
no test coverage detected