Skip to content
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

Popen() object stdout attribute reassignment behaviour #47937

Closed
vincentlegoll mannequin opened this issue Aug 26, 2008 · 5 comments
Closed

Popen() object stdout attribute reassignment behaviour #47937

vincentlegoll mannequin opened this issue Aug 26, 2008 · 5 comments
Labels
3.10 only security fixes 3.11 only security fixes 3.12 bugs and security fixes docs Documentation in the Doc dir type-bug An unexpected behavior, bug, or error

Comments

@vincentlegoll
Copy link
Mannequin

vincentlegoll mannequin commented Aug 26, 2008

BPO 3687
Nosy @birkenfeld, @terryjreedy, @giampaolo, @maaz92, @iritkatriel

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2008-08-26.15:57:45.065>
labels = ['3.11', 'type-bug', '3.9', '3.10', 'docs']
title = 'Popen() object stdout attribute reassignment behaviour'
updated_at = <Date 2021-12-05.15:57:52.556>
user = 'https://bugs.python.org/vincentlegoll'

bugs.python.org fields:

activity = <Date 2021-12-05.15:57:52.556>
actor = 'iritkatriel'
assignee = 'docs@python'
closed = False
closed_date = None
closer = None
components = ['Documentation']
creation = <Date 2008-08-26.15:57:45.065>
creator = 'vincent.legoll'
dependencies = []
files = []
hgrepos = []
issue_num = 3687
keywords = []
message_count = 5.0
messages = ['71983', '107970', '107976', '281545', '407713']
nosy_count = 7.0
nosy_names = ['georg.brandl', 'terry.reedy', 'giampaolo.rodola', 'vlegoll', 'vincent.legoll', 'maaz92', 'iritkatriel']
pr_nums = []
priority = 'normal'
resolution = None
stage = 'needs patch'
status = 'open'
superseder = None
type = 'behavior'
url = 'https://bugs.python.org/issue3687'
versions = ['Python 3.9', 'Python 3.10', 'Python 3.11']

Linked PRs

@vincentlegoll
Copy link
Mannequin Author

vincentlegoll mannequin commented Aug 26, 2008

The subprocess.Popen() object documentation should indicate
that the stdout attribute should not be modified after
object construction. Because that won't work.

Or the attribute may be rendered read-only

>> from subprocess import Popen, PIPE
>> import sys, os
>> p1 = Popen(["echo", "1"], stdout = PIPE)
>> p2 = Popen(["cat"], stdin = p1.stdout, stderr = PIPE, stdout = PIPE)
>> p2.stdout = sys.stdout
>> print p2.communicate()

This blocks forever

@vincentlegoll vincentlegoll mannequin added docs Documentation in the Doc dir type-bug An unexpected behavior, bug, or error labels Aug 26, 2008
@terryjreedy
Copy link
Member

While it could be argued that it is 'obvious' that changing the stdin, stdout, stderr, and pid of a processes cannot work, I agree that a small addition would be good. In 17.1.2. Popen Objects, after "The following attributes are also available", insert " (do not try to change them)" before ':'.

Actually, it seems to me that the attributes should actually be read-only (in 3.2) if possible (via custom Popen.__setattr__), in which case the only doc change needed (for 3.2) would be insertion of 'read-only' before 'attributes'.

Georg, if you know the id of the subprocess maintainer (if there is one now), could you add him to the nosy list for an opinion or comment?

@vlegoll
Copy link
Mannequin

vlegoll mannequin commented Jun 17, 2010

On Thu, Jun 17, 2010 at 2:34 AM, Terry J. Reedy <[email protected]> wrote:

While it could be argued that it is 'obvious'

What is obvious for someone maybe is not for others, if I tried to modify it,
that was on the (false) assumption that it will do what I wanted (whatever
that is)...

Adding more precision to documentation or making the interface fool proof
will make life of dumb devs like me easier by not having to guess or try.

Thanks for taking care of this.

@admin admin mannequin assigned docspython and unassigned birkenfeld Oct 29, 2010
@maaz92
Copy link
Mannequin

maaz92 mannequin commented Nov 23, 2016

Hi, I want to update the doc for this. This will be my first attempt to update the documentation.

@vadmium vadmium added the 3.7 (EOL) end of life label Dec 6, 2016
@iritkatriel
Copy link
Member

The situation is the same in 3.11, both doc and implementation.

@iritkatriel iritkatriel added 3.9 only security fixes 3.10 only security fixes 3.11 only security fixes and removed 3.7 (EOL) end of life labels Dec 5, 2021
@ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
@iritkatriel iritkatriel added 3.12 bugs and security fixes and removed 3.9 only security fixes labels Feb 2, 2023
gpshead added a commit that referenced this issue Feb 8, 2023
* Note that Popen attributes aren't meant to be set by users by rewording the text about the attributes.
* Also update some universal_newlines references to mention the modern text parameter name while in the area.

Co-authored-by: Gregory P. Smith <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Feb 8, 2023
)

* Note that Popen attributes aren't meant to be set by users by rewording the text about the attributes.
* Also update some universal_newlines references to mention the modern text parameter name while in the area.

(cherry picked from commit 027adf4)

Co-authored-by: Stanley <[email protected]>
Co-authored-by: Gregory P. Smith <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Feb 8, 2023
)

* Note that Popen attributes aren't meant to be set by users by rewording the text about the attributes.
* Also update some universal_newlines references to mention the modern text parameter name while in the area.

(cherry picked from commit 027adf4)

Co-authored-by: Stanley <[email protected]>
Co-authored-by: Gregory P. Smith <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Feb 8, 2023
)

* Note that Popen attributes aren't meant to be set by users by rewording the text about the attributes.
* Also update some universal_newlines references to mention the modern text parameter name while in the area.

(cherry picked from commit 027adf4)

Co-authored-by: Stanley <[email protected]>
Co-authored-by: Gregory P. Smith <[email protected]>
@gpshead gpshead closed this as completed Feb 8, 2023
ambv pushed a commit that referenced this issue Feb 8, 2023
…101684)

* Note that Popen attributes aren't meant to be set by users by rewording the text about the attributes.
* Also update some universal_newlines references to mention the modern text parameter name while in the area.

(cherry picked from commit 027adf4)

Co-authored-by: Stanley <[email protected]>
Co-authored-by: Gregory P. Smith <[email protected]>
ambv pushed a commit that referenced this issue Feb 8, 2023
…101683)

* Note that Popen attributes aren't meant to be set by users by rewording the text about the attributes.
* Also update some universal_newlines references to mention the modern text parameter name while in the area.

(cherry picked from commit 027adf4)

Co-authored-by: Stanley <[email protected]>
Co-authored-by: Gregory P. Smith <[email protected]>
carljm added a commit to carljm/cpython that referenced this issue Feb 9, 2023
* main: (82 commits)
  pythongh-101670: typo fix in PyImport_ExtendInittab() (python#101723)
  pythonGH-99293: Document that `Py_TPFLAGS_VALID_VERSION_TAG` shouldn't be used. (#pythonGH-101736)
  no-issue: Add Dong-hee Na as the cjkcodecs codeowner (pythongh-101731)
  pythongh-101678: Merge math_1_to_whatever() and math_1() (python#101730)
  pythongh-101678: refactor the math module to use special functions from c11 (pythonGH-101679)
  pythongh-85984: Remove legacy Lib/pty.py code. (python#92365)
  pythongh-98831: Use opcode metadata for stack_effect() (python#101704)
  pythongh-101283: Version was just released, so should be changed in 3.11.3 (pythonGH-101719)
  pythongh-101283: Fix use of unbound variable (pythonGH-101712)
  pythongh-101283: Improved fallback logic for subprocess with shell=True on Windows (pythonGH-101286)
  pythongh-101277: Port more itertools static types to heap types (python#101304)
  pythongh-98831: Modernize CALL and family (python#101508)
  pythonGH-101696: invalidate type version tag in `_PyStaticType_Dealloc` (python#101697)
  pythongh-100221: Fix creating dirs in `make sharedinstall` (pythonGH-100329)
  pythongh-101670: typo fix in PyImport_AppendInittab() (pythonGH-101672)
  pythongh-101196: Make isdir/isfile/exists faster on Windows (pythonGH-101324)
  pythongh-101614: Don't treat python3_d.dll as a Python DLL when checking extension modules for incompatibility (pythonGH-101615)
  pythongh-100933: Improve `check_element` helper in `test_xml_etree` (python#100934)
  pythonGH-101578: Normalize the current exception (pythonGH-101607)
  pythongh-47937: Note that Popen attributes are read-only (python#93070)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.10 only security fixes 3.11 only security fixes 3.12 bugs and security fixes docs Documentation in the Doc dir type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

No branches or pull requests

5 participants