##// END OF EJS Templates
sshpeer: store subprocess so it cleans up correctly...
sshpeer: store subprocess so it cleans up correctly When running 'hg pull --rebase', I was seeing this exception 100% of the time as the python process was closing down: Exception TypeError: TypeError("'NoneType' object is not callable",) in <bound method Popen.__del__ of <subprocess.Popen object at 0x937c10>> ignored By storing the subprocess on the sshpeer, the subprocess seems to clean up correctly, and I no longer see the exception. I have no idea why this actually works, but I get a 0% repro if I store the subprocess in self.subprocess, and a 100% repro if I store None in self.subprocess. Possibly related to issue 2240.

File last commit:

r14209:08d84bdc default
r18759:9baf4330 default
Show More
filterpyflakes.py
38 lines | 1.0 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
# Filter output by pyflakes to control which warnings we check
import sys, re, os
def makekey(message):
# "path/file:line: message"
match = re.search(r"(line \d+)", message)
line = ''
if match:
line = match.group(0)
message = re.sub(r"(line \d+)", '', message)
return re.sub(r"([^:]*):([^:]+):([^']*)('[^']*')(.*)$",
r'\3:\5:\4:\1:\2:' + line,
message)
lines = []
for line in sys.stdin:
# We whitelist tests
pats = [
r"imported but unused",
r"local variable '.*' is assigned to but never used",
r"unable to detect undefined names",
]
if not re.search('|'.join(pats), line):
continue
fn = line.split(':', 1)[0]
f = open(os.path.join(os.path.dirname(os.path.dirname(__file__)), fn))
data = f.read()
f.close()
if 'no-check-code' in data:
continue
lines.append(line)
for line in sorted(lines, key = makekey):
sys.stdout.write(line)
print