Skip to content

gh-88324: Clarify documentation for redirected stdout/stderr when using subprocess in Linux #94035

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 20, 2023

Conversation

richardhob
Copy link
Contributor

The description of subprocess input parameters stdin, stdout, and stderr does not make it clear that the default behavior (==None) is "no redirection will occur". One way to make this more clear to the reader is to describe the default behavior earlier in the argument description.

Second, the statement "the child’s file handles will be inherited from the parent" is wrong, as discussed in linked issue https://bugs.python.org/issue1227748. The child file handle behavior is better described by the close_fds input argument.

Asside: close_fds description

If close_fds is true, all file descriptors except 0, 1 and 2 will be closed before the child process is executed. Otherwise when close_fds is false, file descriptors obey their inheritable flag as described in Inheritance of File Descriptors.

On Windows, if close_fds is true then no handles will be inherited by the child process unless explicitly passed in the handle_list element of STARTUPINFO.lpAttributeList, or by standard handle redirection.

Changes

  1. Move the None option and description up in the documentation to make it more clear that the default behavior is "no redirection will occur"
  2. Remove "the child’s file handles will be inherited from the parent." statement. The file handles are managed using the close_fds input parameter

Resolve #88324

Changes:
- Move the ``None`` option (which is default) to the front of the list
  of input options
- Move the ``None`` option description up to make the default behavior
  more clear (No redirection)
- Remove mention of Child File Descriptors from ``None`` option description
@ghost
Copy link

ghost commented Jun 20, 2022

All commit authors signed the Contributor License Agreement.
CLA signed

@gpshead
Copy link
Member

gpshead commented Jan 20, 2023

thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Clarify documentation for redirected stdout/stderr when using subprocess in Linux
4 participants