[issue7678] subprocess.Popen pipeline example code in the documentation is lacking

2011-02-05 Thread Gregory P. Smith

Gregory P. Smith g...@krypto.org added the comment:

documentation updated in r88352.  thanks!

--
assignee: docs@python - gregory.p.smith
resolution:  - fixed
status: open - closed

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7678
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7678] subprocess.Popen pipeline example code in the documentation is lacking

2011-02-03 Thread Ross Lagerwall

Ross Lagerwall rosslagerw...@gmail.com added the comment:

The docs should be updated. This has been noted in msg54949 and 
http://www.enricozini.org/2009/debian/python-pipes/

Perhaps this example will make it clear:
import subprocess

p1 = subprocess.Popen([yes], stdout=subprocess.PIPE)
p2 = subprocess.Popen([head], stdin=p1.stdout, stdout=subprocess.PIPE)
#p1.stdout.close()
p1.wait()

This example hangs. yes writes to head and head reads the first 10 lines 
and then exits. But, yes does not receive a SIGPIPE because the python 
process still has a p1.stdout open. Thus, p1.stdout should be closed after 
being passed to p2.

--
nosy: +rosslagerwall

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7678
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7678] subprocess.Popen pipeline example code in the documentation is lacking

2010-12-25 Thread Éric Araujo

Éric Araujo mer...@netwok.org added the comment:

As a non-expert user of subprocess, calling close before communicate seems 
strange to me.  Does the example code with a bug work if close is called after 
communicate?

In the 3.2 docs, we could update the example to use a with statement, unless it 
is deemed a distraction for this simple introductory section.

--
nosy: +eric.araujo, gregory.p.smith -georg.brandl
stage:  - needs patch
type:  - behavior
versions: +Python 2.7, Python 3.1, Python 3.2 -Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7678
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7678] subprocess.Popen pipeline example code in the documentation is lacking

2010-08-04 Thread Mark Lawrence

Changes by Mark Lawrence breamore...@yahoo.co.uk:


--
assignee: georg.brandl - d...@python
nosy: +d...@python

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7678
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue7678] subprocess.Popen pipeline example code in the documentation is lacking

2010-01-11 Thread Steven K. Wong

New submission from Steven K. Wong slid...@hotmail.com:

The example code at 
http://www.python.org/doc/2.6.2/library/subprocess.html#replacing-shell-pipeline
 should be updated to add the close() call noted below:

output=`dmesg | grep hda`
==
p1 = Popen([dmesg], stdout=PIPE)
p2 = Popen([grep, hda], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close()  # - this line is not in the doc, but we should add it
output = p2.communicate()[0]

The parent process does not use p1.stdout after passing it to p2, so it should 
close p1.stdout after that. If it is not closed, there is a possibility for 
p1's process to never terminate if p2's process fails. The following code 
demonstrate this situation:

from subprocess import Popen, PIPE
import time
# p1 is a program that writes lots of data to the pipe
cmd = ['cat', 'a_large_file']
p1 = Popen(cmd, stdout=PIPE)
# p2 is a program that fails without reading much data from the pipe
cmd = ['python', '-c', 'import time; time.sleep(5); asdf']
p2 = Popen(cmd, stdin=p1.stdout, stdout=PIPE)
output = p2.communicate()[0]
while p1.poll() is None:  # it loops forever
print 'sleep a bit'
time.sleep(1)

--
assignee: georg.brandl
components: Documentation
messages: 97606
nosy: georg.brandl, steven.k.wong
severity: normal
status: open
title: subprocess.Popen pipeline example code in the documentation is lacking
versions: Python 2.6

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue7678
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com