/usr/share/pyshared/pyx/pycompat.py is in python-pyx 0.12.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | # -*- encoding: utf-8 -*-
#
#
# Copyright (C) 2011-2012 Jörg Lehmann <joergl@users.sourceforge.net>
# Copyright (C) 2011-2012 André Wobst <wobsta@users.sourceforge.net>
#
# This file is part of PyX (http://pyx.sourceforge.net/).
#
# PyX is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PyX is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with PyX; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
class _marker: pass
class wait_pipe:
def __init__(self, pipe, wait):
self.pipe = pipe
self.wait = wait
def write(self, str):
self.pipe.write(str)
def close(self):
self.pipe.close()
self.wait()
def popen(cmd, mode="r", bufsize=_marker):
try:
import subprocess
if mode[0] not in "rw" or "r" in mode[1:] or "w" in mode[1:]:
raise ValueError("read or write mode expected")
if mode[0] == "r":
kwargs = {"stdout": subprocess.PIPE}
else:
kwargs = {"stdin": subprocess.PIPE}
if bufsize is not _marker:
kwargs["bufsize"] = bufsize
pipes = subprocess.Popen(cmd, shell=True, **kwargs)
if mode[0] == "r":
return pipes.stdout
else:
return wait_pipe(pipes.stdin, pipes.wait)
except ImportError:
import os
if bufsize is _marker:
return os.popen(cmd, mode)
else:
return os.popen(cmd, mode, bufsize)
def popen2(cmd, mode="t", bufsize=_marker):
try:
import subprocess
kwargs = {"stdin": subprocess.PIPE,
"stdout": subprocess.PIPE}
if bufsize is not _marker:
kwargs["bufsize"] = bufsize
pipes = subprocess.Popen(cmd, shell=True, **kwargs)
return pipes.stdin, pipes.stdout
except ImportError:
import os
if bufsize is _marker:
return os.popen2(cmd, mode)
else:
return os.popen2(cmd, mode, bufsize)
def popen4(cmd, mode="t", bufsize=_marker):
try:
import subprocess
kwargs = {"stdin": subprocess.PIPE,
"stdout": subprocess.PIPE,
"stderr": subprocess.STDOUT}
if bufsize is not _marker:
kwargs["bufsize"] = bufsize
pipes = subprocess.Popen(cmd, shell=True, **kwargs)
return pipes.stdin, pipes.stdout
except ImportError:
import os
if bufsize is _marker:
return os.popen4(cmd, mode)
else:
return os.popen4(cmd, mode, bufsize)
try:
any = any
except NameError:
def any(iterable):
for element in iterable:
if element:
return True
return False
try:
set = set
except NameError:
# Python 2.3
from sets import Set as set
try:
sorted = sorted
except NameError:
# Python 2.3
def sorted(l):
l = list(l)
l.sort()
return l
|