mirror of
https://github.com/python/cpython.git
synced 2024-11-27 20:04:41 +08:00
Run 2to3 over the Demo/ directory to shut up parse errors from 2to3 about lingering print statements.
This commit is contained in:
parent
a8c360ee76
commit
6f2df4d5e1
@ -8,7 +8,7 @@
|
||||
# If cgi0.sh works but cgi1.py doesn't, check the #! line and the file
|
||||
# permissions. The docs for the cgi.py module have debugging tips.
|
||||
|
||||
print "Content-type: text/html"
|
||||
print
|
||||
print "<h1>Hello world</h1>"
|
||||
print "<p>This is cgi1.py"
|
||||
print("Content-type: text/html")
|
||||
print()
|
||||
print("<h1>Hello world</h1>")
|
||||
print("<p>This is cgi1.py")
|
||||
|
@ -8,15 +8,15 @@ import cgi
|
||||
|
||||
def main():
|
||||
form = cgi.FieldStorage()
|
||||
print "Content-type: text/html"
|
||||
print
|
||||
print("Content-type: text/html")
|
||||
print()
|
||||
if not form:
|
||||
print "<h1>No Form Keys</h1>"
|
||||
print("<h1>No Form Keys</h1>")
|
||||
else:
|
||||
print "<h1>Form Keys</h1>"
|
||||
for key in form.keys():
|
||||
print("<h1>Form Keys</h1>")
|
||||
for key in list(form.keys()):
|
||||
value = form[key].value
|
||||
print "<p>", cgi.escape(key), ":", cgi.escape(value)
|
||||
print("<p>", cgi.escape(key), ":", cgi.escape(value))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -5,8 +5,8 @@ escape = cgi.escape
|
||||
|
||||
def main():
|
||||
form = cgi.FieldStorage()
|
||||
print "Content-type: text/html"
|
||||
print
|
||||
print("Content-type: text/html")
|
||||
print()
|
||||
cmd = form.getvalue("cmd", "view")
|
||||
page = form.getvalue("page", "FrontPage")
|
||||
wiki = WikiPage(page)
|
||||
@ -20,22 +20,22 @@ class WikiPage:
|
||||
|
||||
def __init__(self, name):
|
||||
if not self.iswikiword(name):
|
||||
raise ValueError, "page name is not a wiki word"
|
||||
raise ValueError("page name is not a wiki word")
|
||||
self.name = name
|
||||
self.load()
|
||||
|
||||
def cmd_view(self, form):
|
||||
print "<h1>", escape(self.splitwikiword(self.name)), "</h1>"
|
||||
print "<p>"
|
||||
print("<h1>", escape(self.splitwikiword(self.name)), "</h1>")
|
||||
print("<p>")
|
||||
for line in self.data.splitlines():
|
||||
line = line.rstrip()
|
||||
if not line:
|
||||
print "<p>"
|
||||
print("<p>")
|
||||
else:
|
||||
print self.formatline(line)
|
||||
print "<hr>"
|
||||
print "<p>", self.mklink("edit", self.name, "Edit this page") + ";"
|
||||
print self.mklink("view", "FrontPage", "go to front page") + "."
|
||||
print(self.formatline(line))
|
||||
print("<hr>")
|
||||
print("<p>", self.mklink("edit", self.name, "Edit this page") + ";")
|
||||
print(self.mklink("view", "FrontPage", "go to front page") + ".")
|
||||
|
||||
def formatline(self, line):
|
||||
words = []
|
||||
@ -51,32 +51,32 @@ class WikiPage:
|
||||
return "".join(words)
|
||||
|
||||
def cmd_edit(self, form, label="Change"):
|
||||
print "<h1>", label, self.name, "</h1>"
|
||||
print '<form method="POST" action="%s">' % self.scripturl
|
||||
print("<h1>", label, self.name, "</h1>")
|
||||
print('<form method="POST" action="%s">' % self.scripturl)
|
||||
s = '<textarea cols="70" rows="20" name="text">%s</textarea>'
|
||||
print s % self.data
|
||||
print '<input type="hidden" name="cmd" value="create">'
|
||||
print '<input type="hidden" name="page" value="%s">' % self.name
|
||||
print '<br>'
|
||||
print '<input type="submit" value="%s Page">' % label
|
||||
print "</form>"
|
||||
print(s % self.data)
|
||||
print('<input type="hidden" name="cmd" value="create">')
|
||||
print('<input type="hidden" name="page" value="%s">' % self.name)
|
||||
print('<br>')
|
||||
print('<input type="submit" value="%s Page">' % label)
|
||||
print("</form>")
|
||||
|
||||
def cmd_create(self, form):
|
||||
self.data = form.getvalue("text", "").strip()
|
||||
error = self.store()
|
||||
if error:
|
||||
print "<h1>I'm sorry. That didn't work</h1>"
|
||||
print "<p>An error occurred while attempting to write the file:"
|
||||
print "<p>", escape(error)
|
||||
print("<h1>I'm sorry. That didn't work</h1>")
|
||||
print("<p>An error occurred while attempting to write the file:")
|
||||
print("<p>", escape(error))
|
||||
else:
|
||||
# Use a redirect directive, to avoid "reload page" problems
|
||||
print "<head>"
|
||||
print("<head>")
|
||||
s = '<meta http-equiv="refresh" content="1; URL=%s">'
|
||||
print s % (self.scripturl + "?cmd=view&page=" + self.name)
|
||||
print "<head>"
|
||||
print "<h1>OK</h1>"
|
||||
print "<p>If nothing happens, please click here:",
|
||||
print self.mklink("view", self.name, self.name)
|
||||
print(s % (self.scripturl + "?cmd=view&page=" + self.name))
|
||||
print("<head>")
|
||||
print("<h1>OK</h1>")
|
||||
print("<p>If nothing happens, please click here:", end=' ')
|
||||
print(self.mklink("view", self.name, self.name))
|
||||
|
||||
def cmd_new(self, form):
|
||||
self.cmd_edit(form, label="Create")
|
||||
|
@ -114,7 +114,7 @@ class Complex:
|
||||
self.__dict__['im'] = _im
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
raise TypeError, 'Complex numbers are immutable'
|
||||
raise TypeError('Complex numbers are immutable')
|
||||
|
||||
def __hash__(self):
|
||||
if not self.im:
|
||||
@ -144,17 +144,17 @@ class Complex:
|
||||
|
||||
def __int__(self):
|
||||
if self.im:
|
||||
raise ValueError, "can't convert Complex with nonzero im to int"
|
||||
raise ValueError("can't convert Complex with nonzero im to int")
|
||||
return int(self.re)
|
||||
|
||||
def __long__(self):
|
||||
if self.im:
|
||||
raise ValueError, "can't convert Complex with nonzero im to long"
|
||||
return long(self.re)
|
||||
raise ValueError("can't convert Complex with nonzero im to long")
|
||||
return int(self.re)
|
||||
|
||||
def __float__(self):
|
||||
if self.im:
|
||||
raise ValueError, "can't convert Complex with nonzero im to float"
|
||||
raise ValueError("can't convert Complex with nonzero im to float")
|
||||
return float(self.re)
|
||||
|
||||
def __cmp__(self, other):
|
||||
@ -199,7 +199,7 @@ class Complex:
|
||||
def __div__(self, other):
|
||||
other = ToComplex(other)
|
||||
d = float(other.re*other.re + other.im*other.im)
|
||||
if not d: raise ZeroDivisionError, 'Complex division'
|
||||
if not d: raise ZeroDivisionError('Complex division')
|
||||
return Complex((self.re*other.re + self.im*other.im) / d,
|
||||
(self.im*other.re - self.re*other.im) / d)
|
||||
|
||||
@ -209,10 +209,10 @@ class Complex:
|
||||
|
||||
def __pow__(self, n, z=None):
|
||||
if z is not None:
|
||||
raise TypeError, 'Complex does not support ternary pow()'
|
||||
raise TypeError('Complex does not support ternary pow()')
|
||||
if IsComplex(n):
|
||||
if n.im:
|
||||
if self.im: raise TypeError, 'Complex to the Complex power'
|
||||
if self.im: raise TypeError('Complex to the Complex power')
|
||||
else: return exp(math.log(self.re)*n)
|
||||
n = n.re
|
||||
r = pow(self.abs(), n)
|
||||
@ -229,21 +229,21 @@ def exp(z):
|
||||
|
||||
|
||||
def checkop(expr, a, b, value, fuzz = 1e-6):
|
||||
print ' ', a, 'and', b,
|
||||
print(' ', a, 'and', b, end=' ')
|
||||
try:
|
||||
result = eval(expr)
|
||||
except:
|
||||
result = sys.exc_info()[0]
|
||||
print '->', result
|
||||
print('->', result)
|
||||
if isinstance(result, str) or isinstance(value, str):
|
||||
ok = (result == value)
|
||||
else:
|
||||
ok = abs(result - value) <= fuzz
|
||||
if not ok:
|
||||
print '!!\t!!\t!! should be', value, 'diff', abs(result - value)
|
||||
print('!!\t!!\t!! should be', value, 'diff', abs(result - value))
|
||||
|
||||
def test():
|
||||
print 'test constructors'
|
||||
print('test constructors')
|
||||
constructor_test = (
|
||||
# "expect" is an array [re,im] "got" the Complex.
|
||||
( (0,0), Complex() ),
|
||||
@ -260,9 +260,9 @@ def test():
|
||||
for t in constructor_test:
|
||||
cnt[0] += 1
|
||||
if ((t[0][0]!=t[1].re)or(t[0][1]!=t[1].im)):
|
||||
print " expected", t[0], "got", t[1]
|
||||
print(" expected", t[0], "got", t[1])
|
||||
cnt[1] += 1
|
||||
print " ", cnt[1], "of", cnt[0], "tests failed"
|
||||
print(" ", cnt[1], "of", cnt[0], "tests failed")
|
||||
# test operators
|
||||
testsuite = {
|
||||
'a+b': [
|
||||
@ -310,7 +310,7 @@ def test():
|
||||
],
|
||||
}
|
||||
for expr in sorted(testsuite):
|
||||
print expr + ':'
|
||||
print(expr + ':')
|
||||
t = (expr,)
|
||||
for item in testsuite[expr]:
|
||||
checkop(*(t+item))
|
||||
|
@ -57,7 +57,7 @@ for dim in _DAYS_IN_MONTH:
|
||||
dbm = dbm + dim
|
||||
del dbm, dim
|
||||
|
||||
_INT_TYPES = type(1), type(1L)
|
||||
_INT_TYPES = type(1), type(1)
|
||||
|
||||
def _is_leap(year): # 1 if leap year, else 0
|
||||
if year % 4 != 0: return 0
|
||||
@ -68,7 +68,7 @@ def _days_in_year(year): # number of days in year
|
||||
return 365 + _is_leap(year)
|
||||
|
||||
def _days_before_year(year): # number of days before year
|
||||
return year*365L + (year+3)/4 - (year+99)/100 + (year+399)/400
|
||||
return year*365 + (year+3)/4 - (year+99)/100 + (year+399)/400
|
||||
|
||||
def _days_in_month(month, year): # number of days in month of year
|
||||
if month == 2 and _is_leap(year): return 29
|
||||
@ -86,7 +86,7 @@ _DI400Y = _days_before_year(400) # number of days in 400 years
|
||||
|
||||
def _num2date(n): # return date with ordinal n
|
||||
if type(n) not in _INT_TYPES:
|
||||
raise TypeError, 'argument must be integer: %r' % type(n)
|
||||
raise TypeError('argument must be integer: %r' % type(n))
|
||||
|
||||
ans = Date(1,1,1) # arguments irrelevant; just getting a Date obj
|
||||
del ans.ord, ans.month, ans.day, ans.year # un-initialize it
|
||||
@ -120,17 +120,17 @@ def _num2day(n): # return weekday name of day with ordinal n
|
||||
class Date:
|
||||
def __init__(self, month, day, year):
|
||||
if not 1 <= month <= 12:
|
||||
raise ValueError, 'month must be in 1..12: %r' % (month,)
|
||||
raise ValueError('month must be in 1..12: %r' % (month,))
|
||||
dim = _days_in_month(month, year)
|
||||
if not 1 <= day <= dim:
|
||||
raise ValueError, 'day must be in 1..%r: %r' % (dim, day)
|
||||
raise ValueError('day must be in 1..%r: %r' % (dim, day))
|
||||
self.month, self.day, self.year = month, day, year
|
||||
self.ord = _date2num(self)
|
||||
|
||||
# don't allow setting existing attributes
|
||||
def __setattr__(self, name, value):
|
||||
if self.__dict__.has_key(name):
|
||||
raise AttributeError, 'read-only attribute ' + name
|
||||
if name in self.__dict__:
|
||||
raise AttributeError('read-only attribute ' + name)
|
||||
self.__dict__[name] = value
|
||||
|
||||
def __cmp__(self, other):
|
||||
@ -151,7 +151,7 @@ class Date:
|
||||
# Python 1.1 coerces neither int+date nor date+int
|
||||
def __add__(self, n):
|
||||
if type(n) not in _INT_TYPES:
|
||||
raise TypeError, 'can\'t add %r to date' % type(n)
|
||||
raise TypeError('can\'t add %r to date' % type(n))
|
||||
return _num2date(self.ord + n)
|
||||
__radd__ = __add__ # handle int+date
|
||||
|
||||
@ -164,7 +164,7 @@ class Date:
|
||||
|
||||
# complain about int-date
|
||||
def __rsub__(self, other):
|
||||
raise TypeError, 'Can\'t subtract date from integer'
|
||||
raise TypeError('Can\'t subtract date from integer')
|
||||
|
||||
def weekday(self):
|
||||
return _num2day(self.ord)
|
||||
@ -179,30 +179,30 @@ def test(firstyear, lastyear):
|
||||
a = Date(9,30,1913)
|
||||
b = Date(9,30,1914)
|
||||
if repr(a) != 'Tue 30 Sep 1913':
|
||||
raise DateTestError, '__repr__ failure'
|
||||
raise DateTestError('__repr__ failure')
|
||||
if (not a < b) or a == b or a > b or b != b:
|
||||
raise DateTestError, '__cmp__ failure'
|
||||
raise DateTestError('__cmp__ failure')
|
||||
if a+365 != b or 365+a != b:
|
||||
raise DateTestError, '__add__ failure'
|
||||
raise DateTestError('__add__ failure')
|
||||
if b-a != 365 or b-365 != a:
|
||||
raise DateTestError, '__sub__ failure'
|
||||
raise DateTestError('__sub__ failure')
|
||||
try:
|
||||
x = 1 - a
|
||||
raise DateTestError, 'int-date should have failed'
|
||||
raise DateTestError('int-date should have failed')
|
||||
except TypeError:
|
||||
pass
|
||||
try:
|
||||
x = a + b
|
||||
raise DateTestError, 'date+date should have failed'
|
||||
raise DateTestError('date+date should have failed')
|
||||
except TypeError:
|
||||
pass
|
||||
if a.weekday() != 'Tuesday':
|
||||
raise DateTestError, 'weekday() failure'
|
||||
raise DateTestError('weekday() failure')
|
||||
if max(a,b) is not b or min(a,b) is not a:
|
||||
raise DateTestError, 'min/max failure'
|
||||
raise DateTestError('min/max failure')
|
||||
d = {a-1:b, b:a+1}
|
||||
if d[b-366] != b or d[a+(b-a)] != Date(10,1,1913):
|
||||
raise DateTestError, 'dictionary failure'
|
||||
raise DateTestError('dictionary failure')
|
||||
|
||||
# verify date<->number conversions for first and last days for
|
||||
# all years in firstyear .. lastyear
|
||||
@ -214,9 +214,9 @@ def test(firstyear, lastyear):
|
||||
lord = ford + _days_in_year(y) - 1
|
||||
fd, ld = Date(1,1,y), Date(12,31,y)
|
||||
if (fd.ord,ld.ord) != (ford,lord):
|
||||
raise DateTestError, ('date->num failed', y)
|
||||
raise DateTestError('date->num failed', y)
|
||||
fd, ld = _num2date(ford), _num2date(lord)
|
||||
if (1,1,y,12,31,y) != \
|
||||
(fd.month,fd.day,fd.year,ld.month,ld.day,ld.year):
|
||||
raise DateTestError, ('num->date failed', y)
|
||||
raise DateTestError('num->date failed', y)
|
||||
y = y + 1
|
||||
|
@ -12,7 +12,7 @@ class Dbm:
|
||||
|
||||
def __repr__(self):
|
||||
s = ''
|
||||
for key in self.keys():
|
||||
for key in list(self.keys()):
|
||||
t = repr(key) + ': ' + repr(self[key])
|
||||
if s: t = ', ' + t
|
||||
s = s + t
|
||||
@ -32,35 +32,35 @@ class Dbm:
|
||||
|
||||
def keys(self):
|
||||
res = []
|
||||
for key in self.db.keys():
|
||||
for key in list(self.db.keys()):
|
||||
res.append(eval(key))
|
||||
return res
|
||||
|
||||
def has_key(self, key):
|
||||
return self.db.has_key(repr(key))
|
||||
return repr(key) in self.db
|
||||
|
||||
|
||||
def test():
|
||||
d = Dbm('@dbm', 'rw', 0600)
|
||||
print d
|
||||
d = Dbm('@dbm', 'rw', 0o600)
|
||||
print(d)
|
||||
while 1:
|
||||
try:
|
||||
key = input('key: ')
|
||||
if d.has_key(key):
|
||||
key = eval(input('key: '))
|
||||
if key in d:
|
||||
value = d[key]
|
||||
print 'currently:', value
|
||||
value = input('value: ')
|
||||
print('currently:', value)
|
||||
value = eval(input('value: '))
|
||||
if value == None:
|
||||
del d[key]
|
||||
else:
|
||||
d[key] = value
|
||||
except KeyboardInterrupt:
|
||||
print ''
|
||||
print d
|
||||
print('')
|
||||
print(d)
|
||||
except EOFError:
|
||||
print '[eof]'
|
||||
print('[eof]')
|
||||
break
|
||||
print d
|
||||
print(d)
|
||||
|
||||
|
||||
test()
|
||||
|
@ -60,7 +60,7 @@ class oldrange:
|
||||
if 0 <= i <= self.len:
|
||||
return self.start + self.step * i
|
||||
else:
|
||||
raise IndexError, 'range[i] index out of range'
|
||||
raise IndexError('range[i] index out of range')
|
||||
|
||||
|
||||
def test():
|
||||
@ -73,7 +73,7 @@ def test():
|
||||
raise Exception("error in implementation:\ncorrect = %s"
|
||||
"\nold-style = %s\ngenerator = %s" %
|
||||
(correct_result, oldrange_result, genrange_result))
|
||||
print "Timings for range(1000):"
|
||||
print("Timings for range(1000):")
|
||||
t1 = time.time()
|
||||
for i in oldrange(1000):
|
||||
pass
|
||||
@ -84,9 +84,9 @@ def test():
|
||||
for i in __builtin__.range(1000):
|
||||
pass
|
||||
t4 = time.time()
|
||||
print t2-t1, 'sec (old-style class)'
|
||||
print t3-t2, 'sec (generator)'
|
||||
print t4-t3, 'sec (built-in)'
|
||||
print(t2-t1, 'sec (old-style class)')
|
||||
print(t3-t2, 'sec (generator)')
|
||||
print(t4-t3, 'sec (built-in)')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -42,7 +42,7 @@ class Rat:
|
||||
|
||||
def __init__(self, num, den = 1):
|
||||
if den == 0:
|
||||
raise ZeroDivisionError, 'rat(x, 0)'
|
||||
raise ZeroDivisionError('rat(x, 0)')
|
||||
|
||||
# normalize
|
||||
|
||||
@ -106,9 +106,9 @@ class Rat:
|
||||
return rat(a.__num * b.__den + b.__num * a.__den,
|
||||
a.__den * b.__den)
|
||||
except OverflowError:
|
||||
return rat(long(a.__num) * long(b.__den) +
|
||||
long(b.__num) * long(a.__den),
|
||||
long(a.__den) * long(b.__den))
|
||||
return rat(int(a.__num) * int(b.__den) +
|
||||
int(b.__num) * int(a.__den),
|
||||
int(a.__den) * int(b.__den))
|
||||
|
||||
def __radd__(b, a):
|
||||
return Rat(a) + b
|
||||
@ -119,9 +119,9 @@ class Rat:
|
||||
return rat(a.__num * b.__den - b.__num * a.__den,
|
||||
a.__den * b.__den)
|
||||
except OverflowError:
|
||||
return rat(long(a.__num) * long(b.__den) -
|
||||
long(b.__num) * long(a.__den),
|
||||
long(a.__den) * long(b.__den))
|
||||
return rat(int(a.__num) * int(b.__den) -
|
||||
int(b.__num) * int(a.__den),
|
||||
int(a.__den) * int(b.__den))
|
||||
|
||||
def __rsub__(b, a):
|
||||
return Rat(a) - b
|
||||
@ -131,8 +131,8 @@ class Rat:
|
||||
try:
|
||||
return rat(a.__num * b.__num, a.__den * b.__den)
|
||||
except OverflowError:
|
||||
return rat(long(a.__num) * long(b.__num),
|
||||
long(a.__den) * long(b.__den))
|
||||
return rat(int(a.__num) * int(b.__num),
|
||||
int(a.__den) * int(b.__den))
|
||||
|
||||
def __rmul__(b, a):
|
||||
return Rat(a) * b
|
||||
@ -142,8 +142,8 @@ class Rat:
|
||||
try:
|
||||
return rat(a.__num * b.__den, a.__den * b.__num)
|
||||
except OverflowError:
|
||||
return rat(long(a.__num) * long(b.__den),
|
||||
long(a.__den) * long(b.__num))
|
||||
return rat(int(a.__num) * int(b.__den),
|
||||
int(a.__den) * int(b.__num))
|
||||
|
||||
def __rdiv__(b, a):
|
||||
return Rat(a) / b
|
||||
@ -154,7 +154,7 @@ class Rat:
|
||||
try:
|
||||
div = int(div)
|
||||
except OverflowError:
|
||||
div = long(div)
|
||||
div = int(div)
|
||||
return a - b * div
|
||||
|
||||
def __rmod__(b, a):
|
||||
@ -175,8 +175,8 @@ class Rat:
|
||||
try:
|
||||
return rat(a.__num ** b.__num, a.__den ** b.__num)
|
||||
except OverflowError:
|
||||
return rat(long(a.__num) ** b.__num,
|
||||
long(a.__den) ** b.__num)
|
||||
return rat(int(a.__num) ** b.__num,
|
||||
int(a.__den) ** b.__num)
|
||||
|
||||
def __rpow__(b, a):
|
||||
return Rat(a) ** b
|
||||
@ -187,7 +187,7 @@ class Rat:
|
||||
return rat(-a.__num, a.__den)
|
||||
except OverflowError:
|
||||
# a.__num == sys.maxint
|
||||
return rat(-long(a.__num), a.__den)
|
||||
return rat(-int(a.__num), a.__den)
|
||||
|
||||
# abs(a)
|
||||
def __abs__(a):
|
||||
@ -199,7 +199,7 @@ class Rat:
|
||||
|
||||
# long(a)
|
||||
def __long__(a):
|
||||
return long(a.__num) / long(a.__den)
|
||||
return int(a.__num) / int(a.__den)
|
||||
|
||||
# float(a)
|
||||
def __float__(a):
|
||||
@ -272,38 +272,38 @@ def test():
|
||||
(3+1.5j) 1.5j (2.25+2.25j) (1+1j) (1.18235814075+2.85446505899j) 1
|
||||
(3+3j) 0j 4.5j (1+0j) (-0.638110484918+0.705394566962j) 0
|
||||
'''
|
||||
print rat(-1L, 1)
|
||||
print rat(1, -1)
|
||||
print(rat(-1, 1))
|
||||
print(rat(1, -1))
|
||||
a = rat(1, 10)
|
||||
print int(a), long(a), float(a), complex(a)
|
||||
print(int(a), int(a), float(a), complex(a))
|
||||
b = rat(2, 5)
|
||||
l = [a+b, a-b, a*b, a/b]
|
||||
print l
|
||||
print(l)
|
||||
l.sort()
|
||||
print l
|
||||
print rat(0, 1)
|
||||
print a+1
|
||||
print a+1L
|
||||
print a+1.0
|
||||
print(l)
|
||||
print(rat(0, 1))
|
||||
print(a+1)
|
||||
print(a+1)
|
||||
print(a+1.0)
|
||||
try:
|
||||
print rat(1, 0)
|
||||
raise SystemError, 'should have been ZeroDivisionError'
|
||||
print(rat(1, 0))
|
||||
raise SystemError('should have been ZeroDivisionError')
|
||||
except ZeroDivisionError:
|
||||
print 'OK'
|
||||
print rat(2), rat(1.5), rat(3, 2), rat(1.5+1.5j), rat(31415926,10000000)
|
||||
print('OK')
|
||||
print(rat(2), rat(1.5), rat(3, 2), rat(1.5+1.5j), rat(31415926,10000000))
|
||||
list = [2, 1.5, rat(3,2), 1.5+1.5j]
|
||||
for i in list:
|
||||
print i,
|
||||
print(i, end=' ')
|
||||
if not isinstance(i, complex):
|
||||
print int(i), float(i),
|
||||
print complex(i)
|
||||
print
|
||||
print(int(i), float(i), end=' ')
|
||||
print(complex(i))
|
||||
print()
|
||||
for j in list:
|
||||
print i + j, i - j, i * j, i / j, i ** j,
|
||||
print(i + j, i - j, i * j, i / j, i ** j, end=' ')
|
||||
if not (isinstance(i, complex) or
|
||||
isinstance(j, complex)):
|
||||
print cmp(i, j)
|
||||
print
|
||||
print(cmp(i, j))
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -27,17 +27,17 @@ class Vec:
|
||||
|
||||
def __add__(self, other):
|
||||
# Element-wise addition
|
||||
v = map(lambda x, y: x+y, self, other)
|
||||
v = list(map(lambda x, y: x+y, self, other))
|
||||
return Vec().fromlist(v)
|
||||
|
||||
def __sub__(self, other):
|
||||
# Element-wise subtraction
|
||||
v = map(lambda x, y: x-y, self, other)
|
||||
v = list(map(lambda x, y: x-y, self, other))
|
||||
return Vec().fromlist(v)
|
||||
|
||||
def __mul__(self, scalar):
|
||||
# Multiply by scalar
|
||||
v = map(lambda x: x*scalar, self.v)
|
||||
v = [x*scalar for x in self.v]
|
||||
return Vec().fromlist(v)
|
||||
|
||||
|
||||
@ -45,10 +45,10 @@ class Vec:
|
||||
def test():
|
||||
a = vec(1, 2, 3)
|
||||
b = vec(3, 2, 1)
|
||||
print a
|
||||
print b
|
||||
print a+b
|
||||
print a-b
|
||||
print a*3.0
|
||||
print(a)
|
||||
print(b)
|
||||
print(a+b)
|
||||
print(a-b)
|
||||
print(a*3.0)
|
||||
|
||||
test()
|
||||
|
@ -11,14 +11,14 @@ error = 'bitvec.error'
|
||||
|
||||
def _check_value(value):
|
||||
if type(value) != type(0) or not 0 <= value < 2:
|
||||
raise error, 'bitvec() items must have int value 0 or 1'
|
||||
raise error('bitvec() items must have int value 0 or 1')
|
||||
|
||||
|
||||
import math
|
||||
|
||||
def _compute_len(param):
|
||||
mant, l = math.frexp(float(param))
|
||||
bitmask = 1L << l
|
||||
bitmask = 1 << l
|
||||
if bitmask <= param:
|
||||
raise 'FATAL', '(param, l) = %r' % ((param, l),)
|
||||
while l:
|
||||
@ -31,11 +31,11 @@ def _compute_len(param):
|
||||
|
||||
def _check_key(len, key):
|
||||
if type(key) != type(0):
|
||||
raise TypeError, 'sequence subscript not int'
|
||||
raise TypeError('sequence subscript not int')
|
||||
if key < 0:
|
||||
key = key + len
|
||||
if not 0 <= key < len:
|
||||
raise IndexError, 'list index out of range'
|
||||
raise IndexError('list index out of range')
|
||||
return key
|
||||
|
||||
def _check_slice(len, i, j):
|
||||
@ -49,15 +49,15 @@ def _check_slice(len, i, j):
|
||||
class BitVec:
|
||||
|
||||
def __init__(self, *params):
|
||||
self._data = 0L
|
||||
self._data = 0
|
||||
self._len = 0
|
||||
if not len(params):
|
||||
pass
|
||||
elif len(params) == 1:
|
||||
param, = params
|
||||
if type(param) == type([]):
|
||||
value = 0L
|
||||
bit_mask = 1L
|
||||
value = 0
|
||||
bit_mask = 1
|
||||
for item in param:
|
||||
# strict check
|
||||
#_check_value(item)
|
||||
@ -66,39 +66,38 @@ class BitVec:
|
||||
bit_mask = bit_mask << 1
|
||||
self._data = value
|
||||
self._len = len(param)
|
||||
elif type(param) == type(0L):
|
||||
elif type(param) == type(0):
|
||||
if param < 0:
|
||||
raise error, 'bitvec() can\'t handle negative longs'
|
||||
raise error('bitvec() can\'t handle negative longs')
|
||||
self._data = param
|
||||
self._len = _compute_len(param)
|
||||
else:
|
||||
raise error, 'bitvec() requires array or long parameter'
|
||||
raise error('bitvec() requires array or long parameter')
|
||||
elif len(params) == 2:
|
||||
param, length = params
|
||||
if type(param) == type(0L):
|
||||
if type(param) == type(0):
|
||||
if param < 0:
|
||||
raise error, \
|
||||
'can\'t handle negative longs'
|
||||
raise error('can\'t handle negative longs')
|
||||
self._data = param
|
||||
if type(length) != type(0):
|
||||
raise error, 'bitvec()\'s 2nd parameter must be int'
|
||||
raise error('bitvec()\'s 2nd parameter must be int')
|
||||
computed_length = _compute_len(param)
|
||||
if computed_length > length:
|
||||
print 'warning: bitvec() value is longer than the length indicates, truncating value'
|
||||
print('warning: bitvec() value is longer than the length indicates, truncating value')
|
||||
self._data = self._data & \
|
||||
((1L << length) - 1)
|
||||
((1 << length) - 1)
|
||||
self._len = length
|
||||
else:
|
||||
raise error, 'bitvec() requires array or long parameter'
|
||||
raise error('bitvec() requires array or long parameter')
|
||||
else:
|
||||
raise error, 'bitvec() requires 0 -- 2 parameter(s)'
|
||||
raise error('bitvec() requires 0 -- 2 parameter(s)')
|
||||
|
||||
|
||||
def append(self, item):
|
||||
#_check_value(item)
|
||||
#self[self._len:self._len] = [item]
|
||||
self[self._len:self._len] = \
|
||||
BitVec(long(not not item), 1)
|
||||
BitVec(int(not not item), 1)
|
||||
|
||||
|
||||
def count(self, value):
|
||||
@ -121,7 +120,7 @@ class BitVec:
|
||||
data = (~self)._data
|
||||
index = 0
|
||||
if not data:
|
||||
raise ValueError, 'list.index(x): x not in list'
|
||||
raise ValueError('list.index(x): x not in list')
|
||||
while not (data & 1):
|
||||
data, index = data >> 1, index + 1
|
||||
return index
|
||||
@ -130,7 +129,7 @@ class BitVec:
|
||||
def insert(self, index, item):
|
||||
#_check_value(item)
|
||||
#self[index:index] = [item]
|
||||
self[index:index] = BitVec(long(not not item), 1)
|
||||
self[index:index] = BitVec(int(not not item), 1)
|
||||
|
||||
|
||||
def remove(self, value):
|
||||
@ -140,7 +139,7 @@ class BitVec:
|
||||
def reverse(self):
|
||||
#ouch, this one is expensive!
|
||||
#for i in self._len>>1: self[i], self[l-i] = self[l-i], self[i]
|
||||
data, result = self._data, 0L
|
||||
data, result = self._data, 0
|
||||
for i in range(self._len):
|
||||
if not data:
|
||||
result = result << (self._len - i)
|
||||
@ -151,7 +150,7 @@ class BitVec:
|
||||
|
||||
def sort(self):
|
||||
c = self.count(1)
|
||||
self._data = ((1L << c) - 1) << (self._len - c)
|
||||
self._data = ((1 << c) - 1) << (self._len - c)
|
||||
|
||||
|
||||
def copy(self):
|
||||
@ -199,16 +198,16 @@ class BitVec:
|
||||
def __getitem__(self, key):
|
||||
#rprt('%r.__getitem__(%r)\n' % (self, key))
|
||||
key = _check_key(self._len, key)
|
||||
return self._data & (1L << key) != 0
|
||||
return self._data & (1 << key) != 0
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
#rprt('%r.__setitem__(%r, %r)\n' % (self, key, value))
|
||||
key = _check_key(self._len, key)
|
||||
#_check_value(value)
|
||||
if value:
|
||||
self._data = self._data | (1L << key)
|
||||
self._data = self._data | (1 << key)
|
||||
else:
|
||||
self._data = self._data & ~(1L << key)
|
||||
self._data = self._data & ~(1 << key)
|
||||
|
||||
def __delitem__(self, key):
|
||||
#rprt('%r.__delitem__(%r)\n' % (self, key))
|
||||
@ -221,7 +220,7 @@ class BitVec:
|
||||
#rprt('%r.__getslice__(%r, %r)\n' % (self, i, j))
|
||||
i, j = _check_slice(self._len, i, j)
|
||||
if i >= j:
|
||||
return BitVec(0L, 0)
|
||||
return BitVec(0, 0)
|
||||
if i:
|
||||
ndata = self._data >> i
|
||||
else:
|
||||
@ -230,7 +229,7 @@ class BitVec:
|
||||
if j != self._len:
|
||||
#we'll have to invent faster variants here
|
||||
#e.g. mod_2exp
|
||||
ndata = ndata & ((1L << nlength) - 1)
|
||||
ndata = ndata & ((1 << nlength) - 1)
|
||||
return BitVec(ndata, nlength)
|
||||
|
||||
def __setslice__(self, i, j, sequence, *rest):
|
||||
@ -250,7 +249,7 @@ class BitVec:
|
||||
#rprt('%r.__delslice__(%r, %r)\n' % (self, i, j))
|
||||
i, j = _check_slice(self._len, i, j)
|
||||
if i == 0 and j == self._len:
|
||||
self._data, self._len = 0L, 0
|
||||
self._data, self._len = 0, 0
|
||||
elif i < j:
|
||||
self._data = self[:i]._data | (self[j:]._data >> i)
|
||||
self._len = self._len - j + i
|
||||
@ -264,18 +263,18 @@ class BitVec:
|
||||
def __mul__(self, multiplier):
|
||||
#rprt('%r.__mul__(%r)\n' % (self, multiplier))
|
||||
if type(multiplier) != type(0):
|
||||
raise TypeError, 'sequence subscript not int'
|
||||
raise TypeError('sequence subscript not int')
|
||||
if multiplier <= 0:
|
||||
return BitVec(0L, 0)
|
||||
return BitVec(0, 0)
|
||||
elif multiplier == 1:
|
||||
return self.copy()
|
||||
#handle special cases all 0 or all 1...
|
||||
if self._data == 0L:
|
||||
return BitVec(0L, self._len * multiplier)
|
||||
elif (~self)._data == 0L:
|
||||
return ~BitVec(0L, self._len * multiplier)
|
||||
if self._data == 0:
|
||||
return BitVec(0, self._len * multiplier)
|
||||
elif (~self)._data == 0:
|
||||
return ~BitVec(0, self._len * multiplier)
|
||||
#otherwise el cheapo again...
|
||||
retval = BitVec(0L, 0)
|
||||
retval = BitVec(0, 0)
|
||||
while multiplier:
|
||||
retval, multiplier = retval + self, multiplier - 1
|
||||
return retval
|
||||
@ -309,7 +308,7 @@ class BitVec:
|
||||
|
||||
def __invert__(self):
|
||||
#rprt('%r.__invert__()\n' % (self,))
|
||||
return BitVec(~self._data & ((1L << self._len) - 1), \
|
||||
return BitVec(~self._data & ((1 << self._len) - 1), \
|
||||
self._len)
|
||||
|
||||
def __coerce__(self, otherseq, *rest):
|
||||
@ -323,7 +322,7 @@ class BitVec:
|
||||
return int(self._data)
|
||||
|
||||
def __long__(self):
|
||||
return long(self._data)
|
||||
return int(self._data)
|
||||
|
||||
def __float__(self):
|
||||
return float(self._data)
|
||||
|
@ -21,7 +21,7 @@ import sys
|
||||
import re
|
||||
|
||||
def main():
|
||||
pats = map(chomp, sys.stdin.readlines())
|
||||
pats = list(map(chomp, sys.stdin.readlines()))
|
||||
bigpat = '(' + '|'.join(pats) + ')'
|
||||
prog = re.compile(bigpat)
|
||||
|
||||
@ -29,7 +29,7 @@ def main():
|
||||
try:
|
||||
fp = open(file, 'r')
|
||||
except IOError as msg:
|
||||
print "%s: %s" % (file, msg)
|
||||
print("%s: %s" % (file, msg))
|
||||
continue
|
||||
lineno = 0
|
||||
while 1:
|
||||
@ -38,7 +38,7 @@ def main():
|
||||
break
|
||||
lineno = lineno + 1
|
||||
if prog.search(line):
|
||||
print "%s:%s:%s" % (file, lineno, line),
|
||||
print("%s:%s:%s" % (file, lineno, line), end=' ')
|
||||
|
||||
def chomp(s):
|
||||
return s.rstrip('\n')
|
||||
|
@ -42,10 +42,10 @@ def main():
|
||||
if not line:
|
||||
break
|
||||
items = line.split()
|
||||
items = map(makekey, items)
|
||||
items = list(map(makekey, items))
|
||||
items.sort()
|
||||
for num, var in items:
|
||||
print "%s=%s" % (var, num),
|
||||
print
|
||||
print("%s=%s" % (var, num), end=' ')
|
||||
print()
|
||||
|
||||
main()
|
||||
|
@ -25,7 +25,7 @@ def main():
|
||||
# Note: can't test for presence of lstat -- it's always there
|
||||
dummy = os.readlink
|
||||
except AttributeError:
|
||||
print "This system doesn't have symbolic links"
|
||||
print("This system doesn't have symbolic links")
|
||||
sys.exit(0)
|
||||
if sys.argv[1:]:
|
||||
prefix = sys.argv[1]
|
||||
@ -42,7 +42,7 @@ def reportboguslinks(prefix):
|
||||
try:
|
||||
names = os.listdir('.')
|
||||
except os.error as msg:
|
||||
print "%s%s: can't list: %s" % (prefix, '.', msg)
|
||||
print("%s%s: can't list: %s" % (prefix, '.', msg))
|
||||
return
|
||||
names.sort()
|
||||
for name in names:
|
||||
@ -51,20 +51,20 @@ def reportboguslinks(prefix):
|
||||
try:
|
||||
mode = os.lstat(name)[ST_MODE]
|
||||
except os.error:
|
||||
print "%s%s: can't stat: %s" % (prefix, name, msg)
|
||||
print("%s%s: can't stat: %s" % (prefix, name, msg))
|
||||
continue
|
||||
if S_ISLNK(mode):
|
||||
try:
|
||||
os.stat(name)
|
||||
except os.error:
|
||||
print "%s%s -> %s" % \
|
||||
(prefix, name, os.readlink(name))
|
||||
print("%s%s -> %s" % \
|
||||
(prefix, name, os.readlink(name)))
|
||||
elif S_ISDIR(mode):
|
||||
try:
|
||||
os.chdir(name)
|
||||
except os.error as msg:
|
||||
print "%s%s: can't chdir: %s" % \
|
||||
(prefix, name, msg)
|
||||
print("%s%s: can't chdir: %s" % \
|
||||
(prefix, name, msg))
|
||||
continue
|
||||
try:
|
||||
reportboguslinks(prefix + name + '/')
|
||||
|
@ -63,14 +63,14 @@ class LifeBoard:
|
||||
def set(self, y, x):
|
||||
"""Set a cell to the live state"""
|
||||
if x<0 or self.X<=x or y<0 or self.Y<=y:
|
||||
raise ValueError, "Coordinates out of range %i,%i"% (y,x)
|
||||
raise ValueError("Coordinates out of range %i,%i"% (y,x))
|
||||
self.state[x,y] = 1
|
||||
|
||||
def toggle(self, y, x):
|
||||
"""Toggle a cell's state between live and dead"""
|
||||
if x<0 or self.X<=x or y<0 or self.Y<=y:
|
||||
raise ValueError, "Coordinates out of range %i,%i"% (y,x)
|
||||
if self.state.has_key( (x,y) ):
|
||||
raise ValueError("Coordinates out of range %i,%i"% (y,x))
|
||||
if (x,y) in self.state:
|
||||
del self.state[x,y]
|
||||
self.scr.addch(y+1, x+1, ' ')
|
||||
else:
|
||||
@ -89,7 +89,7 @@ class LifeBoard:
|
||||
if not update_board:
|
||||
for i in range(0, M):
|
||||
for j in range(0, N):
|
||||
if self.state.has_key( (i,j) ):
|
||||
if (i,j) in self.state:
|
||||
self.scr.addch(j+1, i+1, self.char)
|
||||
else:
|
||||
self.scr.addch(j+1, i+1, ' ')
|
||||
@ -102,10 +102,10 @@ class LifeBoard:
|
||||
L = range( max(0, i-1), min(M, i+2) )
|
||||
for j in range(0, N):
|
||||
s = 0
|
||||
live = self.state.has_key( (i,j) )
|
||||
live = (i,j) in self.state
|
||||
for k in range( max(0, j-1), min(N, j+2) ):
|
||||
for l in L:
|
||||
if self.state.has_key( (l,k) ):
|
||||
if (l,k) in self.state:
|
||||
s += 1
|
||||
s -= live
|
||||
if s == 3:
|
||||
|
@ -27,14 +27,14 @@ import curses
|
||||
|
||||
def main():
|
||||
if not sys.argv[1:]:
|
||||
print __doc__
|
||||
print(__doc__)
|
||||
sys.exit(0)
|
||||
cmd = " ".join(sys.argv[1:])
|
||||
p = os.popen(cmd, "r")
|
||||
text = p.read()
|
||||
sts = p.close()
|
||||
if sts:
|
||||
print >>sys.stderr, "Exit code:", sts
|
||||
print("Exit code:", sts, file=sys.stderr)
|
||||
sys.exit(sts)
|
||||
w = curses.initscr()
|
||||
try:
|
||||
@ -50,7 +50,7 @@ def main():
|
||||
text = p.read()
|
||||
sts = p.close()
|
||||
if sts:
|
||||
print >>sys.stderr, "Exit code:", sts
|
||||
print("Exit code:", sts, file=sys.stderr)
|
||||
sys.exit(sts)
|
||||
finally:
|
||||
curses.endwin()
|
||||
|
@ -31,7 +31,7 @@ _suffix_char = __debug__ and 'c' or 'o'
|
||||
_suffix = '.py' + _suffix_char
|
||||
|
||||
# the C_EXTENSION suffixes
|
||||
_c_suffixes = filter(lambda x: x[2] == imp.C_EXTENSION, imp.get_suffixes())
|
||||
_c_suffixes = [x for x in imp.get_suffixes() if x[2] == imp.C_EXTENSION]
|
||||
|
||||
def _timestamp(pathname):
|
||||
"Return the file modification time as a Long."
|
||||
@ -39,7 +39,7 @@ def _timestamp(pathname):
|
||||
s = os.stat(pathname)
|
||||
except OSError:
|
||||
return None
|
||||
return long(s[8])
|
||||
return int(s[8])
|
||||
|
||||
def _fs_import(dir, modname, fqname):
|
||||
"Fetch a module from the filesystem."
|
||||
@ -149,7 +149,7 @@ class PackageArchiveImporter(imputil.Importer):
|
||||
|
||||
Return None if the archive was not found.
|
||||
"""
|
||||
raise RuntimeError, "get_archive not implemented"
|
||||
raise RuntimeError("get_archive not implemented")
|
||||
|
||||
def get_subfile(self, archive, modname):
|
||||
"""Get code from a subfile in the specified archive.
|
||||
@ -162,7 +162,7 @@ class PackageArchiveImporter(imputil.Importer):
|
||||
|
||||
Return None if the subfile was not found.
|
||||
"""
|
||||
raise RuntimeError, "get_subfile not implemented"
|
||||
raise RuntimeError("get_subfile not implemented")
|
||||
|
||||
|
||||
class PackageArchive(PackageArchiveImporter):
|
||||
|
@ -22,10 +22,10 @@ def import_hook(name, globals=None, locals=None, fromlist=None):
|
||||
return m
|
||||
|
||||
def determine_parent(globals):
|
||||
if not globals or not globals.has_key("__name__"):
|
||||
if not globals or "__name__" not in globals:
|
||||
return None
|
||||
pname = globals['__name__']
|
||||
if globals.has_key("__path__"):
|
||||
if "__path__" in globals:
|
||||
parent = sys.modules[pname]
|
||||
assert globals is parent.__dict__
|
||||
return parent
|
||||
@ -56,7 +56,7 @@ def find_head_package(parent, name):
|
||||
parent = None
|
||||
q = import_module(head, qname, parent)
|
||||
if q: return q, tail
|
||||
raise ImportError, "No module named " + qname
|
||||
raise ImportError("No module named " + qname)
|
||||
|
||||
def load_tail(q, tail):
|
||||
m = q
|
||||
@ -67,7 +67,7 @@ def load_tail(q, tail):
|
||||
mname = "%s.%s" % (m.__name__, head)
|
||||
m = import_module(head, mname, m)
|
||||
if not m:
|
||||
raise ImportError, "No module named " + mname
|
||||
raise ImportError("No module named " + mname)
|
||||
return m
|
||||
|
||||
def ensure_fromlist(m, fromlist, recursive=0):
|
||||
@ -85,7 +85,7 @@ def ensure_fromlist(m, fromlist, recursive=0):
|
||||
subname = "%s.%s" % (m.__name__, sub)
|
||||
submod = import_module(sub, subname, m)
|
||||
if not submod:
|
||||
raise ImportError, "No module named " + subname
|
||||
raise ImportError("No module named " + subname)
|
||||
|
||||
def import_module(partname, fqname, parent):
|
||||
try:
|
||||
|
@ -9,7 +9,7 @@ def MDPrint(str):
|
||||
outstr = (outstr
|
||||
+ string.hexdigits[(o >> 4) & 0xF]
|
||||
+ string.hexdigits[o & 0xF])
|
||||
print outstr,
|
||||
print(outstr, end=' ')
|
||||
|
||||
|
||||
from time import time
|
||||
@ -39,7 +39,7 @@ def MDTimeTrial():
|
||||
|
||||
|
||||
# start timer
|
||||
print 'MD5 time trial. Processing', TEST_BYTES, 'characters...'
|
||||
print('MD5 time trial. Processing', TEST_BYTES, 'characters...')
|
||||
t1 = time()
|
||||
|
||||
mdContext = md5.new()
|
||||
@ -51,14 +51,14 @@ def MDTimeTrial():
|
||||
t2 = time()
|
||||
|
||||
MDPrint(str)
|
||||
print 'is digest of test input.'
|
||||
print 'Seconds to process test input:', t2 - t1
|
||||
print 'Characters processed per second:', TEST_BYTES / (t2 - t1)
|
||||
print('is digest of test input.')
|
||||
print('Seconds to process test input:', t2 - t1)
|
||||
print('Characters processed per second:', TEST_BYTES / (t2 - t1))
|
||||
|
||||
|
||||
def MDString(str):
|
||||
MDPrint(md5.new(str).digest())
|
||||
print '"' + str + '"'
|
||||
print('"' + str + '"')
|
||||
|
||||
|
||||
def MDFile(filename):
|
||||
@ -72,7 +72,7 @@ def MDFile(filename):
|
||||
mdContext.update(data)
|
||||
|
||||
MDPrint(mdContext.digest())
|
||||
print filename
|
||||
print(filename)
|
||||
|
||||
|
||||
import sys
|
||||
@ -87,11 +87,11 @@ def MDFilter():
|
||||
mdContext.update(data)
|
||||
|
||||
MDPrint(mdContext.digest())
|
||||
print
|
||||
print()
|
||||
|
||||
|
||||
def MDTestSuite():
|
||||
print 'MD5 test suite results:'
|
||||
print('MD5 test suite results:')
|
||||
MDString('')
|
||||
MDString('a')
|
||||
MDString('abc')
|
||||
|
@ -37,12 +37,12 @@ class EnumMetaClass:
|
||||
"""
|
||||
for base in bases:
|
||||
if base.__class__ is not EnumMetaClass:
|
||||
raise TypeError, "Enumeration base class must be enumeration"
|
||||
bases = filter(lambda x: x is not Enum, bases)
|
||||
raise TypeError("Enumeration base class must be enumeration")
|
||||
bases = [x for x in bases if x is not Enum]
|
||||
self.__name__ = name
|
||||
self.__bases__ = bases
|
||||
self.__dict = {}
|
||||
for key, value in dict.items():
|
||||
for key, value in list(dict.items()):
|
||||
self.__dict[key] = EnumInstance(name, key, value)
|
||||
|
||||
def __getattr__(self, name):
|
||||
@ -61,7 +61,7 @@ class EnumMetaClass:
|
||||
|
||||
"""
|
||||
if name == '__members__':
|
||||
return self.__dict.keys()
|
||||
return list(self.__dict.keys())
|
||||
|
||||
try:
|
||||
return self.__dict[name]
|
||||
@ -72,16 +72,15 @@ class EnumMetaClass:
|
||||
except AttributeError:
|
||||
continue
|
||||
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
|
||||
def __repr__(self):
|
||||
s = self.__name__
|
||||
if self.__bases__:
|
||||
s = s + '(' + string.join(map(lambda x: x.__name__,
|
||||
self.__bases__), ", ") + ')'
|
||||
s = s + '(' + string.join([x.__name__ for x in self.__bases__], ", ") + ')'
|
||||
if self.__dict:
|
||||
list = []
|
||||
for key, value in self.__dict.items():
|
||||
for key, value in list(self.__dict.items()):
|
||||
list.append("%s: %s" % (key, int(value)))
|
||||
s = "%s: {%s}" % (s, string.join(list, ", "))
|
||||
return s
|
||||
@ -130,13 +129,13 @@ def _test():
|
||||
green = 2
|
||||
blue = 3
|
||||
|
||||
print Color.red
|
||||
print dir(Color)
|
||||
print(Color.red)
|
||||
print(dir(Color))
|
||||
|
||||
print Color.red == Color.red
|
||||
print Color.red == Color.blue
|
||||
print Color.red == 1
|
||||
print Color.red == 2
|
||||
print(Color.red == Color.red)
|
||||
print(Color.red == Color.blue)
|
||||
print(Color.red == 1)
|
||||
print(Color.red == 2)
|
||||
|
||||
class ExtendedColor(Color):
|
||||
white = 0
|
||||
@ -145,10 +144,10 @@ def _test():
|
||||
purple = 6
|
||||
black = 7
|
||||
|
||||
print ExtendedColor.orange
|
||||
print ExtendedColor.red
|
||||
print(ExtendedColor.orange)
|
||||
print(ExtendedColor.red)
|
||||
|
||||
print Color.red == ExtendedColor.red
|
||||
print(Color.red == ExtendedColor.red)
|
||||
|
||||
class OtherColor(Enum):
|
||||
white = 4
|
||||
@ -157,13 +156,13 @@ def _test():
|
||||
class MergedColor(Color, OtherColor):
|
||||
pass
|
||||
|
||||
print MergedColor.red
|
||||
print MergedColor.white
|
||||
print(MergedColor.red)
|
||||
print(MergedColor.white)
|
||||
|
||||
print Color
|
||||
print ExtendedColor
|
||||
print OtherColor
|
||||
print MergedColor
|
||||
print(Color)
|
||||
print(ExtendedColor)
|
||||
print(OtherColor)
|
||||
print(MergedColor)
|
||||
|
||||
if __name__ == '__main__':
|
||||
_test()
|
||||
|
@ -31,7 +31,7 @@ class MetaHelper:
|
||||
try:
|
||||
ga = self.__formalclass__.__getattr__('__usergetattr__')
|
||||
except (KeyError, AttributeError):
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
return ga(self, name)
|
||||
if type(raw) != types.FunctionType:
|
||||
return raw
|
||||
@ -71,7 +71,7 @@ class MetaClass:
|
||||
return base.__getattr__(name)
|
||||
except AttributeError:
|
||||
pass
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
if not self.__inited:
|
||||
@ -96,20 +96,20 @@ Meta = MetaClass('Meta', (), {})
|
||||
def _test():
|
||||
class C(Meta):
|
||||
def __init__(self, *args):
|
||||
print "__init__, args =", args
|
||||
print("__init__, args =", args)
|
||||
def m1(self, x):
|
||||
print "m1(x=%r)" % (x,)
|
||||
print C
|
||||
print("m1(x=%r)" % (x,))
|
||||
print(C)
|
||||
x = C()
|
||||
print x
|
||||
print(x)
|
||||
x.m1(12)
|
||||
class D(C):
|
||||
def __getattr__(self, name):
|
||||
if name[:2] == '__': raise AttributeError, name
|
||||
if name[:2] == '__': raise AttributeError(name)
|
||||
return "getattr:%s" % name
|
||||
x = D()
|
||||
print x.foo
|
||||
print x._foo
|
||||
print(x.foo)
|
||||
print(x._foo)
|
||||
## print x.__foo
|
||||
## print x.__foo__
|
||||
|
||||
|
@ -17,7 +17,7 @@ class Instance:
|
||||
try:
|
||||
value = self.__klass__.__namespace__[name]
|
||||
except KeyError:
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
if type(value) is not types.FunctionType:
|
||||
return value
|
||||
return BoundMethod(value, self)
|
||||
@ -27,7 +27,7 @@ class BoundMethod:
|
||||
self.function = function
|
||||
self.instance = instance
|
||||
def __call__(self, *args):
|
||||
print "calling", self.function, "for", self.instance, "with", args
|
||||
print("calling", self.function, "for", self.instance, "with", args)
|
||||
return self.function(self.instance, *args)
|
||||
|
||||
Trace = Tracing('Trace', (), {})
|
||||
@ -42,4 +42,4 @@ aninstance = MyTracedClass()
|
||||
|
||||
aninstance.method1(10)
|
||||
|
||||
print aninstance.method2()
|
||||
print(aninstance.method2())
|
||||
|
@ -106,13 +106,13 @@ def _testLock():
|
||||
|
||||
def f2(lock, done=done):
|
||||
lock.acquire()
|
||||
print "f2 running in thread %d\n" % thread.get_ident(),
|
||||
print("f2 running in thread %d\n" % thread.get_ident(), end=' ')
|
||||
lock.release()
|
||||
done.append(1)
|
||||
|
||||
def f1(lock, f2=f2, done=done):
|
||||
lock.acquire()
|
||||
print "f1 running in thread %d\n" % thread.get_ident(),
|
||||
print("f1 running in thread %d\n" % thread.get_ident(), end=' ')
|
||||
try:
|
||||
f2(lock)
|
||||
finally:
|
||||
@ -134,9 +134,9 @@ def _testLock():
|
||||
lock.release()
|
||||
import time
|
||||
while len(done) < 9:
|
||||
print len(done)
|
||||
print(len(done))
|
||||
time.sleep(0.001)
|
||||
print len(done)
|
||||
print(len(done))
|
||||
|
||||
|
||||
# Now, the Locking metaclass is a piece of cake.
|
||||
@ -183,22 +183,22 @@ def _test():
|
||||
return
|
||||
# Double the buffer size
|
||||
# First normalize it so that first==0 and last==size-1
|
||||
print "buffer =", self.buffer
|
||||
print "first = %d, last = %d, size = %d" % (
|
||||
self.first, self.last, self.size)
|
||||
print("buffer =", self.buffer)
|
||||
print("first = %d, last = %d, size = %d" % (
|
||||
self.first, self.last, self.size))
|
||||
if self.first <= self.last:
|
||||
temp = self.buffer[self.first:self.last]
|
||||
else:
|
||||
temp = self.buffer[self.first:] + self.buffer[:self.last]
|
||||
print "temp =", temp
|
||||
print("temp =", temp)
|
||||
self.buffer = temp + [None]*(self.size+1)
|
||||
self.first = 0
|
||||
self.last = self.size-1
|
||||
self.size = self.size*2
|
||||
print "Buffer size doubled to", self.size
|
||||
print "new buffer =", self.buffer
|
||||
print "first = %d, last = %d, size = %d" % (
|
||||
self.first, self.last, self.size)
|
||||
print("Buffer size doubled to", self.size)
|
||||
print("new buffer =", self.buffer)
|
||||
print("first = %d, last = %d, size = %d" % (
|
||||
self.first, self.last, self.size))
|
||||
self.put(item) # Recursive call to test the locking
|
||||
def get(self):
|
||||
# Is the buffer empty?
|
||||
@ -212,10 +212,10 @@ def _test():
|
||||
import time
|
||||
i = 0
|
||||
while i < n:
|
||||
print "put", i
|
||||
print("put", i)
|
||||
buffer.put(i)
|
||||
i = i+1
|
||||
print "Producer: done producing", n, "items"
|
||||
print("Producer: done producing", n, "items")
|
||||
wait.release()
|
||||
|
||||
def consumer(buffer, wait, n=1000):
|
||||
@ -226,15 +226,14 @@ def _test():
|
||||
try:
|
||||
x = buffer.get()
|
||||
if x != i:
|
||||
raise AssertionError, \
|
||||
"get() returned %s, expected %s" % (x, i)
|
||||
print "got", i
|
||||
raise AssertionError("get() returned %s, expected %s" % (x, i))
|
||||
print("got", i)
|
||||
i = i+1
|
||||
tout = 0.001
|
||||
except EOFError:
|
||||
time.sleep(tout)
|
||||
tout = tout*2
|
||||
print "Consumer: done consuming", n, "items"
|
||||
print("Consumer: done consuming", n, "items")
|
||||
wait.release()
|
||||
|
||||
pwait = thread.allocate_lock()
|
||||
@ -246,10 +245,10 @@ def _test():
|
||||
thread.start_new_thread(consumer, (buffer, cwait, n))
|
||||
thread.start_new_thread(producer, (buffer, pwait, n))
|
||||
pwait.acquire()
|
||||
print "Producer done"
|
||||
print("Producer done")
|
||||
cwait.acquire()
|
||||
print "All done"
|
||||
print "buffer size ==", len(buffer.buffer)
|
||||
print("All done")
|
||||
print("buffer size ==", len(buffer.buffer))
|
||||
|
||||
if __name__ == '__main__':
|
||||
_testLock()
|
||||
|
@ -35,7 +35,7 @@ class TraceMetaClass:
|
||||
return base.__getattr__(name)
|
||||
except AttributeError:
|
||||
pass
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
if not self.__inited:
|
||||
@ -69,7 +69,7 @@ class TracingInstance:
|
||||
try:
|
||||
raw = self.__class.__getattr__(name)
|
||||
except AttributeError:
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
if type(raw) != types.FunctionType:
|
||||
return raw
|
||||
# It's a function
|
||||
@ -99,7 +99,7 @@ class TracingWrapper(NotTracingWrapper):
|
||||
self.inst.__trace_call__(self.inst.__trace_output__,
|
||||
"returning from %s with exception %s: %s",
|
||||
self.__name__, t, v)
|
||||
raise t, v, tb
|
||||
raise t(v).with_traceback(tb)
|
||||
else:
|
||||
self.inst.__trace_call__(self.inst.__trace_output__,
|
||||
"returning from %s with value %s",
|
||||
@ -117,28 +117,28 @@ def _test():
|
||||
def m2(self, y): return self.x + y
|
||||
__trace_output__ = sys.stdout
|
||||
class D(C):
|
||||
def m2(self, y): print "D.m2(%r)" % (y,); return C.m2(self, y)
|
||||
def m2(self, y): print("D.m2(%r)" % (y,)); return C.m2(self, y)
|
||||
__trace_output__ = None
|
||||
x = C(4321)
|
||||
print x
|
||||
print x.x
|
||||
print x.m1(100)
|
||||
print x.m1(10)
|
||||
print x.m2(33)
|
||||
print x.m1(5)
|
||||
print x.m2(4000)
|
||||
print x.x
|
||||
print(x)
|
||||
print(x.x)
|
||||
print(x.m1(100))
|
||||
print(x.m1(10))
|
||||
print(x.m2(33))
|
||||
print(x.m1(5))
|
||||
print(x.m2(4000))
|
||||
print(x.x)
|
||||
|
||||
print C.__init__
|
||||
print C.m2
|
||||
print D.__init__
|
||||
print D.m2
|
||||
print(C.__init__)
|
||||
print(C.m2)
|
||||
print(D.__init__)
|
||||
print(D.m2)
|
||||
|
||||
y = D()
|
||||
print y
|
||||
print y.m1(10)
|
||||
print y.m2(100)
|
||||
print y.x
|
||||
print(y)
|
||||
print(y.m1(10))
|
||||
print(y.m2(100))
|
||||
print(y.x)
|
||||
|
||||
if __name__ == '__main__':
|
||||
_test()
|
||||
|
@ -20,7 +20,7 @@ class EiffelBaseMetaClass(type):
|
||||
"""
|
||||
# find methods with pre or post conditions
|
||||
methods = []
|
||||
for k, v in dict.iteritems():
|
||||
for k, v in dict.items():
|
||||
if k.endswith('_pre') or k.endswith('_post'):
|
||||
assert isinstance(v, function)
|
||||
elif isinstance(v, function):
|
||||
|
@ -20,7 +20,7 @@ class EnumMetaclass(type):
|
||||
def __init__(cls, name, bases, dict):
|
||||
super(EnumMetaclass, cls).__init__(name, bases, dict)
|
||||
cls._members = []
|
||||
for attr in dict.keys():
|
||||
for attr in list(dict.keys()):
|
||||
if not (attr.startswith('__') and attr.endswith('__')):
|
||||
enumval = EnumInstance(name, attr, dict[attr])
|
||||
setattr(cls, attr, enumval)
|
||||
@ -29,7 +29,7 @@ class EnumMetaclass(type):
|
||||
def __getattr__(cls, name):
|
||||
if name == "__members__":
|
||||
return cls._members
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
|
||||
def __repr__(cls):
|
||||
s1 = s2 = ""
|
||||
@ -95,13 +95,13 @@ def _test():
|
||||
green = 2
|
||||
blue = 3
|
||||
|
||||
print Color.red
|
||||
print(Color.red)
|
||||
|
||||
print repr(Color.red)
|
||||
print Color.red == Color.red
|
||||
print Color.red == Color.blue
|
||||
print Color.red == 1
|
||||
print Color.red == 2
|
||||
print(repr(Color.red))
|
||||
print(Color.red == Color.red)
|
||||
print(Color.red == Color.blue)
|
||||
print(Color.red == 1)
|
||||
print(Color.red == 2)
|
||||
|
||||
class ExtendedColor(Color):
|
||||
white = 0
|
||||
@ -110,10 +110,10 @@ def _test():
|
||||
purple = 6
|
||||
black = 7
|
||||
|
||||
print ExtendedColor.orange
|
||||
print ExtendedColor.red
|
||||
print(ExtendedColor.orange)
|
||||
print(ExtendedColor.red)
|
||||
|
||||
print Color.red == ExtendedColor.red
|
||||
print(Color.red == ExtendedColor.red)
|
||||
|
||||
class OtherColor(Enum):
|
||||
white = 4
|
||||
@ -122,13 +122,13 @@ def _test():
|
||||
class MergedColor(Color, OtherColor):
|
||||
pass
|
||||
|
||||
print MergedColor.red
|
||||
print MergedColor.white
|
||||
print(MergedColor.red)
|
||||
print(MergedColor.white)
|
||||
|
||||
print Color
|
||||
print ExtendedColor
|
||||
print OtherColor
|
||||
print MergedColor
|
||||
print(Color)
|
||||
print(ExtendedColor)
|
||||
print(OtherColor)
|
||||
print(MergedColor)
|
||||
|
||||
def _test2():
|
||||
|
||||
@ -137,13 +137,13 @@ def _test2():
|
||||
green = 2
|
||||
blue = 3
|
||||
|
||||
print Color.red
|
||||
print(Color.red)
|
||||
|
||||
print repr(Color.red)
|
||||
print Color.red == Color.red
|
||||
print Color.red == Color.blue
|
||||
print Color.red == 1
|
||||
print Color.red == 2
|
||||
print(repr(Color.red))
|
||||
print(Color.red == Color.red)
|
||||
print(Color.red == Color.blue)
|
||||
print(Color.red == 1)
|
||||
print(Color.red == 2)
|
||||
|
||||
class ExtendedColor(Color):
|
||||
white = 0
|
||||
@ -152,10 +152,10 @@ def _test2():
|
||||
purple = 6
|
||||
black = 7
|
||||
|
||||
print ExtendedColor.orange
|
||||
print ExtendedColor.red
|
||||
print(ExtendedColor.orange)
|
||||
print(ExtendedColor.red)
|
||||
|
||||
print Color.red == ExtendedColor.red
|
||||
print(Color.red == ExtendedColor.red)
|
||||
|
||||
class OtherColor(FullEnum):
|
||||
white = 4
|
||||
@ -164,13 +164,13 @@ def _test2():
|
||||
class MergedColor(Color, OtherColor):
|
||||
pass
|
||||
|
||||
print MergedColor.red
|
||||
print MergedColor.white
|
||||
print(MergedColor.red)
|
||||
print(MergedColor.white)
|
||||
|
||||
print Color
|
||||
print ExtendedColor
|
||||
print OtherColor
|
||||
print MergedColor
|
||||
print(Color)
|
||||
print(ExtendedColor)
|
||||
print(OtherColor)
|
||||
print(MergedColor)
|
||||
|
||||
if __name__ == '__main__':
|
||||
_test()
|
||||
|
@ -63,7 +63,7 @@ class SuiteInfoBase:
|
||||
return self._name
|
||||
|
||||
def get_class_names(self):
|
||||
return self._class_info.keys()
|
||||
return list(self._class_info.keys())
|
||||
|
||||
def get_class_info(self, name):
|
||||
return self._class_info[name]
|
||||
@ -79,7 +79,7 @@ class SuiteFuncInfo:
|
||||
# Mixin class providing access to function names and info.
|
||||
|
||||
def get_function_names(self):
|
||||
return self._function_info.keys()
|
||||
return list(self._function_info.keys())
|
||||
|
||||
def get_function_info(self, name):
|
||||
return self._function_info[name]
|
||||
@ -97,7 +97,7 @@ class ClassInfo(SuiteInfoBase):
|
||||
SuiteInfoBase.__init__(self, tree and tree[-1] or None)
|
||||
|
||||
def get_method_names(self):
|
||||
return self._function_info.keys()
|
||||
return list(self._function_info.keys())
|
||||
|
||||
def get_method_info(self, name):
|
||||
return self._function_info[name]
|
||||
|
@ -9,7 +9,7 @@ _numFailed = 0
|
||||
|
||||
def testChunk(t, fileName):
|
||||
global _numFailed
|
||||
print '----', fileName,
|
||||
print('----', fileName, end=' ')
|
||||
try:
|
||||
ast = parser.suite(t)
|
||||
tup = parser.ast2tuple(ast)
|
||||
@ -18,17 +18,17 @@ def testChunk(t, fileName):
|
||||
ast = None
|
||||
new = parser.tuple2ast(tup)
|
||||
except parser.ParserError as err:
|
||||
print
|
||||
print 'parser module raised exception on input file', fileName + ':'
|
||||
print()
|
||||
print('parser module raised exception on input file', fileName + ':')
|
||||
traceback.print_exc()
|
||||
_numFailed = _numFailed + 1
|
||||
else:
|
||||
if tup != parser.ast2tuple(new):
|
||||
print
|
||||
print 'parser module failed on input file', fileName
|
||||
print()
|
||||
print('parser module failed on input file', fileName)
|
||||
_numFailed = _numFailed + 1
|
||||
else:
|
||||
print 'o.k.'
|
||||
print('o.k.')
|
||||
|
||||
def testFile(fileName):
|
||||
t = open(fileName).read()
|
||||
@ -41,7 +41,7 @@ def test():
|
||||
import glob
|
||||
args = glob.glob("*.py")
|
||||
args.sort()
|
||||
map(testFile, args)
|
||||
list(map(testFile, args))
|
||||
sys.exit(_numFailed != 0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -1,7 +1,7 @@
|
||||
"Usage: unparse.py <path to source file>"
|
||||
import sys
|
||||
import _ast
|
||||
import cStringIO
|
||||
import io
|
||||
import os
|
||||
|
||||
def interleave(inter, f, seq):
|
||||
@ -9,7 +9,7 @@ def interleave(inter, f, seq):
|
||||
"""
|
||||
seq = iter(seq)
|
||||
try:
|
||||
f(seq.next())
|
||||
f(next(seq))
|
||||
except StopIteration:
|
||||
pass
|
||||
else:
|
||||
@ -28,7 +28,7 @@ class Unparser:
|
||||
self.f = file
|
||||
self._indent = 0
|
||||
self.dispatch(tree)
|
||||
print >>self.f,""
|
||||
print("", file=self.f)
|
||||
self.f.flush()
|
||||
|
||||
def fill(self, text = ""):
|
||||
@ -326,7 +326,8 @@ class Unparser:
|
||||
|
||||
def _Dict(self, t):
|
||||
self.write("{")
|
||||
def writem((k, v)):
|
||||
def writem(xxx_todo_changeme):
|
||||
(k, v) = xxx_todo_changeme
|
||||
self.dispatch(k)
|
||||
self.write(": ")
|
||||
self.dispatch(v)
|
||||
@ -482,17 +483,17 @@ def testdir(a):
|
||||
try:
|
||||
names = [n for n in os.listdir(a) if n.endswith('.py')]
|
||||
except OSError:
|
||||
print >> sys.stderr, "Directory not readable: %s" % a
|
||||
print("Directory not readable: %s" % a, file=sys.stderr)
|
||||
else:
|
||||
for n in names:
|
||||
fullname = os.path.join(a, n)
|
||||
if os.path.isfile(fullname):
|
||||
output = cStringIO.StringIO()
|
||||
print 'Testing %s' % fullname
|
||||
output = io.StringIO()
|
||||
print('Testing %s' % fullname)
|
||||
try:
|
||||
roundtrip(fullname, output)
|
||||
except Exception as e:
|
||||
print ' Failed to compile, exception is %s' % repr(e)
|
||||
print(' Failed to compile, exception is %s' % repr(e))
|
||||
elif os.path.isdir(fullname):
|
||||
testdir(fullname)
|
||||
|
||||
|
@ -88,7 +88,7 @@ class FSProxyLocal:
|
||||
c, t = fs.GetCreatorType()
|
||||
if t != 'TEXT': return 0
|
||||
except macfs.error as msg:
|
||||
print "***", name, msg
|
||||
print("***", name, msg)
|
||||
return 0
|
||||
else:
|
||||
if os.path.islink(name): return 0
|
||||
@ -99,12 +99,12 @@ class FSProxyLocal:
|
||||
|
||||
def check(self, name):
|
||||
if not self.visible(name):
|
||||
raise os.error, "protected name %s" % repr(name)
|
||||
raise os.error("protected name %s" % repr(name))
|
||||
|
||||
def checkfile(self, name):
|
||||
self.check(name)
|
||||
if not os.path.isfile(name):
|
||||
raise os.error, "not a plain file %s" % repr(name)
|
||||
raise os.error("not a plain file %s" % repr(name))
|
||||
|
||||
def pwd(self):
|
||||
return os.getcwd()
|
||||
@ -118,7 +118,7 @@ class FSProxyLocal:
|
||||
|
||||
def back(self):
|
||||
if not self._dirstack:
|
||||
raise os.error, "empty directory stack"
|
||||
raise os.error("empty directory stack")
|
||||
dir, ignore = self._dirstack[-1]
|
||||
os.chdir(dir)
|
||||
del self._dirstack[-1]
|
||||
@ -128,8 +128,8 @@ class FSProxyLocal:
|
||||
if pat:
|
||||
def keep(name, pat = pat):
|
||||
return fnmatch.fnmatch(name, pat)
|
||||
files = filter(keep, files)
|
||||
files = filter(self.visible, files)
|
||||
files = list(filter(keep, files))
|
||||
files = list(filter(self.visible, files))
|
||||
files.sort()
|
||||
return files
|
||||
|
||||
@ -139,12 +139,12 @@ class FSProxyLocal:
|
||||
|
||||
def listfiles(self, pat = None):
|
||||
files = os.listdir(os.curdir)
|
||||
files = filter(os.path.isfile, files)
|
||||
files = list(filter(os.path.isfile, files))
|
||||
return self._filter(files, pat)
|
||||
|
||||
def listsubdirs(self, pat = None):
|
||||
files = os.listdir(os.curdir)
|
||||
files = filter(os.path.isdir, files)
|
||||
files = list(filter(os.path.isdir, files))
|
||||
return self._filter(files, pat)
|
||||
|
||||
def exists(self, name):
|
||||
@ -278,7 +278,7 @@ class FSProxyLocal:
|
||||
|
||||
def mkdir(self, name):
|
||||
self.check(name)
|
||||
os.mkdir(name, 0777)
|
||||
os.mkdir(name, 0o777)
|
||||
|
||||
def rmdir(self, name):
|
||||
self.check(name)
|
||||
|
@ -50,21 +50,21 @@ class DirSupport:
|
||||
|
||||
def back(self):
|
||||
if not self._dirstack:
|
||||
raise os.error, "empty directory stack"
|
||||
raise os.error("empty directory stack")
|
||||
dir = self._dirstack[-1]
|
||||
os.chdir(dir)
|
||||
del self._dirstack[-1]
|
||||
|
||||
def listsubdirs(self, pat = None):
|
||||
files = os.listdir(os.curdir)
|
||||
files = filter(os.path.isdir, files)
|
||||
files = list(filter(os.path.isdir, files))
|
||||
return self._filter(files, pat)
|
||||
|
||||
def isdir(self, name):
|
||||
return os.path.isdir(name)
|
||||
|
||||
def mkdir(self, name):
|
||||
os.mkdir(name, 0777)
|
||||
os.mkdir(name, 0o777)
|
||||
|
||||
def rmdir(self, name):
|
||||
os.rmdir(name)
|
||||
@ -186,11 +186,11 @@ def test():
|
||||
if hasattr(proxy, what):
|
||||
attr = getattr(proxy, what)
|
||||
if hasattr(attr, '__call__'):
|
||||
print attr(*sys.argv[2:])
|
||||
print(attr(*sys.argv[2:]))
|
||||
else:
|
||||
print repr(attr)
|
||||
print(repr(attr))
|
||||
else:
|
||||
print "%s: no such attribute" % what
|
||||
print("%s: no such attribute" % what)
|
||||
sys.exit(2)
|
||||
|
||||
|
||||
|
@ -24,10 +24,10 @@ class Client:
|
||||
address = ('', address)
|
||||
self._address = address
|
||||
self._verbose = verbose
|
||||
if self._verbose: print "Connecting to %s ..." % repr(address)
|
||||
if self._verbose: print("Connecting to %s ..." % repr(address))
|
||||
self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self._socket.connect(address)
|
||||
if self._verbose: print "Connected."
|
||||
if self._verbose: print("Connected.")
|
||||
self._lastid = 0 # Last id for which a reply has been received
|
||||
self._nextid = 1 # Id of next request
|
||||
self._replies = {} # Unprocessed replies
|
||||
@ -53,7 +53,7 @@ class Client:
|
||||
method = _stub(self, name)
|
||||
setattr(self, name, method) # XXX circular reference
|
||||
return method
|
||||
raise AttributeError, name
|
||||
raise AttributeError(name)
|
||||
|
||||
def _setverbose(self, verbose):
|
||||
self._verbose = verbose
|
||||
@ -78,7 +78,7 @@ class Client:
|
||||
self._nextid = id+1
|
||||
if not wantreply: id = -id
|
||||
request = (name, args, id)
|
||||
if self._verbose > 1: print "sending request: %s" % repr(request)
|
||||
if self._verbose > 1: print("sending request: %s" % repr(request))
|
||||
wp = pickle.Pickler(self._wf)
|
||||
wp.dump(request)
|
||||
return id
|
||||
@ -86,7 +86,7 @@ class Client:
|
||||
def _recv(self, id):
|
||||
exception, value, rid = self._vrecv(id)
|
||||
if rid != id:
|
||||
raise RuntimeError, "request/reply id mismatch: %d/%d" % (id, rid)
|
||||
raise RuntimeError("request/reply id mismatch: %d/%d" % (id, rid))
|
||||
if exception is None:
|
||||
return value
|
||||
x = exception
|
||||
@ -96,30 +96,30 @@ class Client:
|
||||
x = os.error
|
||||
if x == exception:
|
||||
exception = x
|
||||
raise exception, value
|
||||
raise exception(value)
|
||||
|
||||
def _vrecv(self, id):
|
||||
self._flush()
|
||||
if self._replies.has_key(id):
|
||||
if self._verbose > 1: print "retrieving previous reply, id = %d" % id
|
||||
if id in self._replies:
|
||||
if self._verbose > 1: print("retrieving previous reply, id = %d" % id)
|
||||
reply = self._replies[id]
|
||||
del self._replies[id]
|
||||
return reply
|
||||
aid = abs(id)
|
||||
while 1:
|
||||
if self._verbose > 1: print "waiting for reply, id = %d" % id
|
||||
if self._verbose > 1: print("waiting for reply, id = %d" % id)
|
||||
rp = pickle.Unpickler(self._rf)
|
||||
reply = rp.load()
|
||||
del rp
|
||||
if self._verbose > 1: print "got reply: %s" % repr(reply)
|
||||
if self._verbose > 1: print("got reply: %s" % repr(reply))
|
||||
rid = reply[2]
|
||||
arid = abs(rid)
|
||||
if arid == aid:
|
||||
if self._verbose > 1: print "got it"
|
||||
if self._verbose > 1: print("got it")
|
||||
return reply
|
||||
self._replies[rid] = reply
|
||||
if arid > aid:
|
||||
if self._verbose > 1: print "got higher id, assume all ok"
|
||||
if self._verbose > 1: print("got higher id, assume all ok")
|
||||
return (None, None, id)
|
||||
|
||||
def _flush(self):
|
||||
@ -138,7 +138,7 @@ class SecureClient(Client, Security):
|
||||
line = self._rf.readline()
|
||||
challenge = int(line.strip())
|
||||
response = self._encode_challenge(challenge)
|
||||
line = repr(long(response))
|
||||
line = repr(int(response))
|
||||
if line[-1] in 'Ll': line = line[:-1]
|
||||
self._wf.write(line + '\n')
|
||||
self._wf.flush()
|
||||
|
@ -72,11 +72,11 @@ class CommandFrameWork:
|
||||
"""Process the options retrieved by getopt.
|
||||
Override this if you have any options."""
|
||||
if opts:
|
||||
print "-"*40
|
||||
print "Options:"
|
||||
print("-"*40)
|
||||
print("Options:")
|
||||
for o, a in opts:
|
||||
print 'option', o, 'value', repr(a)
|
||||
print "-"*40
|
||||
print('option', o, 'value', repr(a))
|
||||
print("-"*40)
|
||||
|
||||
def ready(self):
|
||||
"""Called just before calling the subcommand."""
|
||||
@ -84,14 +84,14 @@ class CommandFrameWork:
|
||||
|
||||
def usage(self, msg = None):
|
||||
"""Print usage message. Return suitable exit code (2)."""
|
||||
if msg: print msg
|
||||
print self.UsageMessage % {'name': self.__class__.__name__}
|
||||
if msg: print(msg)
|
||||
print(self.UsageMessage % {'name': self.__class__.__name__})
|
||||
docstrings = {}
|
||||
c = self.__class__
|
||||
while 1:
|
||||
for name in dir(c):
|
||||
if name[:3] == 'do_':
|
||||
if docstrings.has_key(name):
|
||||
if name in docstrings:
|
||||
continue
|
||||
try:
|
||||
doc = getattr(c, name).__doc__
|
||||
@ -103,19 +103,19 @@ class CommandFrameWork:
|
||||
break
|
||||
c = c.__bases__[0]
|
||||
if docstrings:
|
||||
print "where subcommand can be:"
|
||||
names = docstrings.keys()
|
||||
print("where subcommand can be:")
|
||||
names = list(docstrings.keys())
|
||||
names.sort()
|
||||
for name in names:
|
||||
print docstrings[name]
|
||||
print(docstrings[name])
|
||||
if self.PostUsageMessage:
|
||||
print self.PostUsageMessage
|
||||
print(self.PostUsageMessage)
|
||||
return 2
|
||||
|
||||
def default(self):
|
||||
"""Default method, called when no subcommand is given.
|
||||
You should always override this."""
|
||||
print "Nobody expects the Spanish Inquisition!"
|
||||
print("Nobody expects the Spanish Inquisition!")
|
||||
|
||||
|
||||
def test():
|
||||
@ -124,7 +124,7 @@ def test():
|
||||
class Hello(CommandFrameWork):
|
||||
def do_hello(self, opts, args):
|
||||
"hello -- print 'hello world', needs no arguments"
|
||||
print "Hello, world"
|
||||
print("Hello, world")
|
||||
x = Hello()
|
||||
tests = [
|
||||
[],
|
||||
@ -135,9 +135,9 @@ def test():
|
||||
None,
|
||||
]
|
||||
for t in tests:
|
||||
print '-'*10, t, '-'*10
|
||||
print('-'*10, t, '-'*10)
|
||||
sts = x.run(t)
|
||||
print "Exit status:", repr(sts)
|
||||
print("Exit status:", repr(sts))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -13,7 +13,7 @@ def raw_input(prompt):
|
||||
|
||||
def main():
|
||||
pwd = os.getcwd()
|
||||
s = raw_input("chdir [%s] " % pwd)
|
||||
s = input("chdir [%s] " % pwd)
|
||||
if s:
|
||||
os.chdir(s)
|
||||
pwd = os.getcwd()
|
||||
@ -21,14 +21,14 @@ def main():
|
||||
port = 4127
|
||||
verbose = 1
|
||||
mode = ''
|
||||
print """\
|
||||
print("""\
|
||||
Mode should be a string of characters, indicating what to do with differences.
|
||||
r - read different files to local file system
|
||||
w - write different files to remote file system
|
||||
c - create new files, either remote or local
|
||||
d - delete disappearing files, either remote or local
|
||||
"""
|
||||
s = raw_input("mode [%s] " % mode)
|
||||
""")
|
||||
s = input("mode [%s] " % mode)
|
||||
if s: mode = s
|
||||
address = (host, port)
|
||||
t1 = time.time()
|
||||
@ -40,74 +40,74 @@ d - delete disappearing files, either remote or local
|
||||
t2 = time.time()
|
||||
dt = t2-t1
|
||||
mins, secs = divmod(dt, 60)
|
||||
print mins, "minutes and", round(secs), "seconds"
|
||||
raw_input("[Return to exit] ")
|
||||
print(mins, "minutes and", round(secs), "seconds")
|
||||
input("[Return to exit] ")
|
||||
|
||||
def ask(prompt, default):
|
||||
s = raw_input("%s [%s] " % (prompt, default))
|
||||
s = input("%s [%s] " % (prompt, default))
|
||||
return s or default
|
||||
|
||||
def askint(prompt, default):
|
||||
s = raw_input("%s [%s] " % (prompt, str(default)))
|
||||
s = input("%s [%s] " % (prompt, str(default)))
|
||||
if s: return string.atoi(s)
|
||||
return default
|
||||
|
||||
def compare(local, remote, mode):
|
||||
print
|
||||
print "PWD =", repr(os.getcwd())
|
||||
print()
|
||||
print("PWD =", repr(os.getcwd()))
|
||||
sums_id = remote._send('sumlist')
|
||||
subdirs_id = remote._send('listsubdirs')
|
||||
remote._flush()
|
||||
print "calculating local sums ..."
|
||||
print("calculating local sums ...")
|
||||
lsumdict = {}
|
||||
for name, info in local.sumlist():
|
||||
lsumdict[name] = info
|
||||
print "getting remote sums ..."
|
||||
print("getting remote sums ...")
|
||||
sums = remote._recv(sums_id)
|
||||
print "got", len(sums)
|
||||
print("got", len(sums))
|
||||
rsumdict = {}
|
||||
for name, rsum in sums:
|
||||
rsumdict[name] = rsum
|
||||
if not lsumdict.has_key(name):
|
||||
print repr(name), "only remote"
|
||||
if name not in lsumdict:
|
||||
print(repr(name), "only remote")
|
||||
if 'r' in mode and 'c' in mode:
|
||||
recvfile(local, remote, name)
|
||||
else:
|
||||
lsum = lsumdict[name]
|
||||
if lsum != rsum:
|
||||
print repr(name),
|
||||
print(repr(name), end=' ')
|
||||
rmtime = remote.mtime(name)
|
||||
lmtime = local.mtime(name)
|
||||
if rmtime > lmtime:
|
||||
print "remote newer",
|
||||
print("remote newer", end=' ')
|
||||
if 'r' in mode:
|
||||
recvfile(local, remote, name)
|
||||
elif lmtime > rmtime:
|
||||
print "local newer",
|
||||
print("local newer", end=' ')
|
||||
if 'w' in mode:
|
||||
sendfile(local, remote, name)
|
||||
else:
|
||||
print "same mtime but different sum?!?!",
|
||||
print
|
||||
for name in lsumdict.keys():
|
||||
if not rsumdict.keys():
|
||||
print repr(name), "only locally",
|
||||
print("same mtime but different sum?!?!", end=' ')
|
||||
print()
|
||||
for name in list(lsumdict.keys()):
|
||||
if not list(rsumdict.keys()):
|
||||
print(repr(name), "only locally", end=' ')
|
||||
fl()
|
||||
if 'w' in mode and 'c' in mode:
|
||||
sendfile(local, remote, name)
|
||||
elif 'r' in mode and 'd' in mode:
|
||||
os.unlink(name)
|
||||
print "removed."
|
||||
print
|
||||
print "gettin subdirs ..."
|
||||
print("removed.")
|
||||
print()
|
||||
print("gettin subdirs ...")
|
||||
subdirs = remote._recv(subdirs_id)
|
||||
common = []
|
||||
for name in subdirs:
|
||||
if local.isdir(name):
|
||||
print "Common subdirectory", repr(name)
|
||||
print("Common subdirectory", repr(name))
|
||||
common.append(name)
|
||||
else:
|
||||
print "Remote subdirectory", repr(name), "not found locally"
|
||||
print("Remote subdirectory", repr(name), "not found locally")
|
||||
if 'r' in mode and 'c' in mode:
|
||||
pr = "Create local subdirectory %s? [y] " % \
|
||||
repr(name)
|
||||
@ -117,15 +117,15 @@ def compare(local, remote, mode):
|
||||
ok = ask(pr, "y")
|
||||
if ok[:1] in ('y', 'Y'):
|
||||
local.mkdir(name)
|
||||
print "Subdirectory %s made" % \
|
||||
repr(name)
|
||||
print("Subdirectory %s made" % \
|
||||
repr(name))
|
||||
common.append(name)
|
||||
lsubdirs = local.listsubdirs()
|
||||
for name in lsubdirs:
|
||||
if name not in subdirs:
|
||||
print "Local subdirectory", repr(name), "not found remotely"
|
||||
print("Local subdirectory", repr(name), "not found remotely")
|
||||
for name in common:
|
||||
print "Entering subdirectory", repr(name)
|
||||
print("Entering subdirectory", repr(name))
|
||||
local.cd(name)
|
||||
remote.cd(name)
|
||||
compare(local, remote, mode)
|
||||
@ -136,10 +136,10 @@ def sendfile(local, remote, name):
|
||||
try:
|
||||
remote.create(name)
|
||||
except (IOError, os.error) as msg:
|
||||
print "cannot create:", msg
|
||||
print("cannot create:", msg)
|
||||
return
|
||||
|
||||
print "sending ...",
|
||||
print("sending ...", end=' ')
|
||||
fl()
|
||||
|
||||
data = open(name).read()
|
||||
@ -152,10 +152,10 @@ def sendfile(local, remote, name):
|
||||
t2 = time.time()
|
||||
|
||||
dt = t2-t1
|
||||
print len(data), "bytes in", round(dt), "seconds",
|
||||
print(len(data), "bytes in", round(dt), "seconds", end=' ')
|
||||
if dt:
|
||||
print "i.e.", round(len(data)/dt), "bytes/sec",
|
||||
print
|
||||
print("i.e.", round(len(data)/dt), "bytes/sec", end=' ')
|
||||
print()
|
||||
|
||||
def recvfile(local, remote, name):
|
||||
ok = 0
|
||||
@ -165,17 +165,17 @@ def recvfile(local, remote, name):
|
||||
return rv
|
||||
finally:
|
||||
if not ok:
|
||||
print "*** recvfile of %r failed, deleting" % (name,)
|
||||
print("*** recvfile of %r failed, deleting" % (name,))
|
||||
local.delete(name)
|
||||
|
||||
def recvfile_real(local, remote, name):
|
||||
try:
|
||||
local.create(name)
|
||||
except (IOError, os.error) as msg:
|
||||
print "cannot create:", msg
|
||||
print("cannot create:", msg)
|
||||
return
|
||||
|
||||
print "receiving ...",
|
||||
print("receiving ...", end=' ')
|
||||
fl()
|
||||
|
||||
f = open(name, 'w')
|
||||
@ -200,10 +200,10 @@ def recvfile_real(local, remote, name):
|
||||
f.close()
|
||||
|
||||
dt = t2-t1
|
||||
print size, "bytes in", round(dt), "seconds",
|
||||
print(size, "bytes in", round(dt), "seconds", end=' ')
|
||||
if dt:
|
||||
print "i.e.", int(size/dt), "bytes/sec",
|
||||
print
|
||||
print("i.e.", int(size/dt), "bytes/sec", end=' ')
|
||||
print()
|
||||
remote._recv(id) # ignored
|
||||
|
||||
def fl():
|
||||
|
@ -56,7 +56,7 @@ class File:
|
||||
|
||||
def __init__(self, file = None):
|
||||
if file and '/' in file:
|
||||
raise ValueError, "no slash allowed in file"
|
||||
raise ValueError("no slash allowed in file")
|
||||
self.file = file
|
||||
self.lseen = self.eseen = self.rseen = 0
|
||||
self.proxy = None
|
||||
@ -76,7 +76,7 @@ class File:
|
||||
def getentry(self, line):
|
||||
words = string.splitfields(line, '/')
|
||||
if self.file and words[1] != self.file:
|
||||
raise ValueError, "file name mismatch"
|
||||
raise ValueError("file name mismatch")
|
||||
self.file = words[1]
|
||||
self.erev = words[2]
|
||||
self.edeleted = 0
|
||||
@ -146,13 +146,13 @@ class File:
|
||||
self.extra)
|
||||
|
||||
def report(self):
|
||||
print '-'*50
|
||||
print('-'*50)
|
||||
def r(key, repr=repr, self=self):
|
||||
try:
|
||||
value = repr(getattr(self, key))
|
||||
except AttributeError:
|
||||
value = "?"
|
||||
print "%-15s:" % key, value
|
||||
print("%-15s:" % key, value)
|
||||
r("file")
|
||||
if self.lseen:
|
||||
r("lsum", hexify)
|
||||
@ -200,7 +200,7 @@ class CVS:
|
||||
if proxy is self.proxy:
|
||||
return
|
||||
self.proxy = proxy
|
||||
for e in self.entries.values():
|
||||
for e in list(self.entries.values()):
|
||||
e.rseen = 0
|
||||
|
||||
def getentries(self):
|
||||
@ -218,12 +218,12 @@ class CVS:
|
||||
def putentries(self):
|
||||
"""Write CVS/Entries back"""
|
||||
f = self.cvsopen("Entries", 'w')
|
||||
for e in self.values():
|
||||
for e in list(self.values()):
|
||||
f.write(e.putentry())
|
||||
f.close()
|
||||
|
||||
def getlocalfiles(self):
|
||||
list = self.entries.keys()
|
||||
list = list(self.entries.keys())
|
||||
addlist = os.listdir(os.curdir)
|
||||
for name in addlist:
|
||||
if name in list:
|
||||
@ -242,7 +242,7 @@ class CVS:
|
||||
if proxy:
|
||||
self.proxy = proxy
|
||||
if not self.proxy:
|
||||
raise RuntimeError, "no RCS proxy"
|
||||
raise RuntimeError("no RCS proxy")
|
||||
addlist = self.proxy.listfiles()
|
||||
for file in addlist:
|
||||
try:
|
||||
@ -252,24 +252,24 @@ class CVS:
|
||||
e.getremote(self.proxy)
|
||||
|
||||
def report(self):
|
||||
for e in self.values():
|
||||
for e in list(self.values()):
|
||||
e.report()
|
||||
print '-'*50
|
||||
print('-'*50)
|
||||
|
||||
def keys(self):
|
||||
keys = self.entries.keys()
|
||||
keys = list(self.entries.keys())
|
||||
keys.sort()
|
||||
return keys
|
||||
|
||||
def values(self):
|
||||
def value(key, self=self):
|
||||
return self.entries[key]
|
||||
return map(value, self.keys())
|
||||
return list(map(value, list(self.keys())))
|
||||
|
||||
def items(self):
|
||||
def item(key, self=self):
|
||||
return (key, self.entries[key])
|
||||
return map(item, self.keys())
|
||||
return list(map(item, list(self.keys())))
|
||||
|
||||
def cvsexists(self, file):
|
||||
file = os.path.join("CVS", file)
|
||||
@ -328,7 +328,7 @@ def unctime(date):
|
||||
year = string.atoi(words[4])
|
||||
month = unctime_monthmap[words[1]]
|
||||
day = string.atoi(words[2])
|
||||
[hh, mm, ss] = map(string.atoi, string.splitfields(words[3], ':'))
|
||||
[hh, mm, ss] = list(map(string.atoi, string.splitfields(words[3], ':')))
|
||||
ss = ss - time.timezone
|
||||
return time.mktime((year, month, day, hh, mm, ss, 0, 0, 0))
|
||||
|
||||
@ -340,14 +340,14 @@ def test_unctime():
|
||||
now = int(time.time())
|
||||
t = time.gmtime(now)
|
||||
at = time.asctime(t)
|
||||
print 'GMT', now, at
|
||||
print 'timezone', time.timezone
|
||||
print 'local', time.ctime(now)
|
||||
print('GMT', now, at)
|
||||
print('timezone', time.timezone)
|
||||
print('local', time.ctime(now))
|
||||
u = unctime(at)
|
||||
print 'unctime()', u
|
||||
print('unctime()', u)
|
||||
gu = time.gmtime(u)
|
||||
print '->', gu
|
||||
print time.asctime(gu)
|
||||
print('->', gu)
|
||||
print(time.asctime(gu))
|
||||
|
||||
def test():
|
||||
x = CVS()
|
||||
|
@ -120,14 +120,14 @@ class Lock:
|
||||
self.cvswfl = self.join(CVSWFL + pid)
|
||||
|
||||
def __del__(self):
|
||||
print "__del__"
|
||||
print("__del__")
|
||||
self.unlock()
|
||||
|
||||
def setlockdir(self):
|
||||
while 1:
|
||||
try:
|
||||
self.lockdir = self.cvslck
|
||||
os.mkdir(self.cvslck, 0777)
|
||||
os.mkdir(self.cvslck, 0o777)
|
||||
return
|
||||
except os.error as msg:
|
||||
self.lockdir = None
|
||||
@ -147,7 +147,7 @@ class Lock:
|
||||
|
||||
def unlockfile(self):
|
||||
if self.lockfile:
|
||||
print "unlink", self.lockfile
|
||||
print("unlink", self.lockfile)
|
||||
try:
|
||||
os.unlink(self.lockfile)
|
||||
except os.error:
|
||||
@ -156,7 +156,7 @@ class Lock:
|
||||
|
||||
def unlockdir(self):
|
||||
if self.lockdir:
|
||||
print "rmdir", self.lockdir
|
||||
print("rmdir", self.lockdir)
|
||||
try:
|
||||
os.rmdir(self.lockdir)
|
||||
except os.error:
|
||||
@ -179,8 +179,8 @@ def sleep(st, repository, delay):
|
||||
user = pwent[0]
|
||||
except KeyError:
|
||||
user = "uid %d" % uid
|
||||
print "[%s]" % time.ctime(time.time())[11:19],
|
||||
print "Waiting for %s's lock in" % user, repository
|
||||
print("[%s]" % time.ctime(time.time())[11:19], end=' ')
|
||||
print("Waiting for %s's lock in" % user, repository)
|
||||
time.sleep(delay)
|
||||
|
||||
|
||||
@ -252,27 +252,27 @@ def test():
|
||||
rl = None
|
||||
wl = None
|
||||
try:
|
||||
print "attempting write lock ..."
|
||||
print("attempting write lock ...")
|
||||
wl = WriteLock(repository)
|
||||
print "got it."
|
||||
print("got it.")
|
||||
wl.unlock()
|
||||
print "attempting read lock ..."
|
||||
print("attempting read lock ...")
|
||||
rl = ReadLock(repository)
|
||||
print "got it."
|
||||
print("got it.")
|
||||
rl.unlock()
|
||||
finally:
|
||||
print [1]
|
||||
print [2]
|
||||
print([1])
|
||||
print([2])
|
||||
if rl:
|
||||
rl.unlock()
|
||||
print [3]
|
||||
print([3])
|
||||
if wl:
|
||||
wl.unlock()
|
||||
print [4]
|
||||
print([4])
|
||||
rl = None
|
||||
print [5]
|
||||
print([5])
|
||||
wl = None
|
||||
print [6]
|
||||
print([6])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
@ -9,7 +9,7 @@ def raw_input(prompt):
|
||||
def main():
|
||||
while 1:
|
||||
try:
|
||||
line = raw_input('$ ')
|
||||
line = input('$ ')
|
||||
except EOFError:
|
||||
break
|
||||
words = line.split()
|
||||
|
@ -50,25 +50,25 @@ def formatrev(rev, prefix):
|
||||
if parsedateprog.match(dateline) >= 0:
|
||||
fields = parsedateprog.group(1, 2, 3, 4, 5, 6)
|
||||
author = parsedateprog.group(7)
|
||||
if authormap.has_key(author): author = authormap[author]
|
||||
tfields = map(string.atoi, fields) + [0, 0, 0]
|
||||
if author in authormap: author = authormap[author]
|
||||
tfields = list(map(string.atoi, fields)) + [0, 0, 0]
|
||||
tfields[5] = tfields[5] - time.timezone
|
||||
t = time.mktime(tuple(tfields))
|
||||
print time.ctime(t), '', author
|
||||
print(time.ctime(t), '', author)
|
||||
words = string.split(log)
|
||||
words[:0] = ['*', prefix + file + ':']
|
||||
maxcol = 72-8
|
||||
col = maxcol
|
||||
for word in words:
|
||||
if col > 0 and col + len(word) >= maxcol:
|
||||
print
|
||||
print '\t' + word,
|
||||
print()
|
||||
print('\t' + word, end=' ')
|
||||
col = -1
|
||||
else:
|
||||
print word,
|
||||
print(word, end=' ')
|
||||
col = col + 1 + len(word)
|
||||
print
|
||||
print
|
||||
print()
|
||||
print()
|
||||
|
||||
startprog = re.compile("^Working file: (.*)$")
|
||||
|
||||
|
@ -90,7 +90,7 @@ class RCS:
|
||||
dict[key] = value
|
||||
status = self._closepipe(f)
|
||||
if status:
|
||||
raise IOError, status
|
||||
raise IOError(status)
|
||||
return dict
|
||||
|
||||
# --- Methods that change files ---
|
||||
@ -160,12 +160,12 @@ class RCS:
|
||||
def listfiles(self, pat = None):
|
||||
"""Return a list of all version files matching optional PATTERN."""
|
||||
files = os.listdir(os.curdir)
|
||||
files = filter(self._isrcs, files)
|
||||
files = list(filter(self._isrcs, files))
|
||||
if os.path.isdir('RCS'):
|
||||
files2 = os.listdir('RCS')
|
||||
files2 = filter(self._isrcs, files2)
|
||||
files2 = list(filter(self._isrcs, files2))
|
||||
files = files + files2
|
||||
files = map(self.realname, files)
|
||||
files = list(map(self.realname, files))
|
||||
return self._filter(files, pat)
|
||||
|
||||
def isvalid(self, name):
|
||||
@ -218,7 +218,7 @@ class RCS:
|
||||
line = f.readline()
|
||||
status = self._closepipe(f)
|
||||
if status:
|
||||
raise IOError, status
|
||||
raise IOError(status)
|
||||
if not line: return None
|
||||
if line[-1] == '\n':
|
||||
line = line[:-1]
|
||||
@ -232,7 +232,7 @@ class RCS:
|
||||
"""
|
||||
name, rev = self._unmangle(name_rev)
|
||||
if not self.isvalid(name):
|
||||
raise os.error, 'not an rcs file %r' % (name,)
|
||||
raise os.error('not an rcs file %r' % (name,))
|
||||
return name, rev
|
||||
|
||||
# --- Internal methods ---
|
||||
@ -269,7 +269,7 @@ class RCS:
|
||||
name, rev = name_rev
|
||||
for c in rev:
|
||||
if c not in self.okchars:
|
||||
raise ValueError, "bad char in rev"
|
||||
raise ValueError("bad char in rev")
|
||||
return name_rev
|
||||
|
||||
def _closepipe(self, f):
|
||||
@ -304,7 +304,7 @@ class RCS:
|
||||
"""
|
||||
cmd = cmd + " </dev/null"
|
||||
sts = os.system(cmd)
|
||||
if sts: raise IOError, "command exit status %d" % sts
|
||||
if sts: raise IOError("command exit status %d" % sts)
|
||||
|
||||
def _filter(self, files, pat = None):
|
||||
"""INTERNAL: Return a sorted copy of the given list of FILES.
|
||||
@ -316,7 +316,7 @@ class RCS:
|
||||
if pat:
|
||||
def keep(name, pat = pat):
|
||||
return fnmatch.fnmatch(name, pat)
|
||||
files = filter(keep, files)
|
||||
files = list(filter(keep, files))
|
||||
else:
|
||||
files = files[:]
|
||||
files.sort()
|
||||
|
@ -90,9 +90,9 @@ class MyFile(File):
|
||||
else: return 'r' # Get rid of entry
|
||||
else: # not self.edeleted
|
||||
if self.rsum:
|
||||
print "warning:",
|
||||
print self.file,
|
||||
print "was lost"
|
||||
print("warning:", end=' ')
|
||||
print(self.file, end=' ')
|
||||
print("was lost")
|
||||
return 'U'
|
||||
else: return 'r' # Get rid of entry
|
||||
else: # self.lsum
|
||||
@ -120,12 +120,12 @@ class MyFile(File):
|
||||
def update(self):
|
||||
code = self.action()
|
||||
if code == '=': return
|
||||
print code, self.file
|
||||
print(code, self.file)
|
||||
if code in ('U', 'N'):
|
||||
self.get()
|
||||
elif code == 'C':
|
||||
print "%s: conflict resolution not yet implemented" % \
|
||||
self.file
|
||||
print("%s: conflict resolution not yet implemented" % \
|
||||
self.file)
|
||||
elif code == 'D':
|
||||
remove(self.file)
|
||||
self.eseen = 0
|
||||
@ -146,11 +146,11 @@ class MyFile(File):
|
||||
self.put(message)
|
||||
return 1
|
||||
elif code == 'R':
|
||||
print "%s: committing removes not yet implemented" % \
|
||||
self.file
|
||||
print("%s: committing removes not yet implemented" % \
|
||||
self.file)
|
||||
elif code == 'C':
|
||||
print "%s: conflict resolution not yet implemented" % \
|
||||
self.file
|
||||
print("%s: conflict resolution not yet implemented" % \
|
||||
self.file)
|
||||
|
||||
def diff(self, opts = []):
|
||||
self.action() # To update lseen, rseen
|
||||
@ -174,22 +174,22 @@ class MyFile(File):
|
||||
tf = tempfile.NamedTemporaryFile()
|
||||
tf.write(data)
|
||||
tf.flush()
|
||||
print 'diff %s -r%s %s' % (flags, rev, fn)
|
||||
print('diff %s -r%s %s' % (flags, rev, fn))
|
||||
sts = os.system('diff %s %s %s' % (flags, tf.name, fn))
|
||||
if sts:
|
||||
print '='*70
|
||||
print('='*70)
|
||||
|
||||
def commitcheck(self):
|
||||
return self.action() != 'C'
|
||||
|
||||
def put(self, message = ""):
|
||||
print "Checking in", self.file, "..."
|
||||
print("Checking in", self.file, "...")
|
||||
data = open(self.file).read()
|
||||
if not self.enew:
|
||||
self.proxy.lock(self.file)
|
||||
messages = self.proxy.put(self.file, data, message)
|
||||
if messages:
|
||||
print messages
|
||||
print(messages)
|
||||
self.setentry(self.proxy.head(self.file), self.lsum)
|
||||
|
||||
def get(self):
|
||||
@ -200,7 +200,7 @@ class MyFile(File):
|
||||
self.setentry(self.rrev, self.rsum)
|
||||
|
||||
def log(self, otherflags):
|
||||
print self.proxy.log(self.file, otherflags)
|
||||
print(self.proxy.log(self.file, otherflags))
|
||||
|
||||
def add(self):
|
||||
self.eseen = 0 # While we're hacking...
|
||||
@ -256,10 +256,10 @@ class RCVS(CVS):
|
||||
if not e.commitcheck():
|
||||
ok = 0
|
||||
if not ok:
|
||||
print "correct above errors first"
|
||||
print("correct above errors first")
|
||||
return
|
||||
if not message:
|
||||
message = raw_input("One-liner: ")
|
||||
message = input("One-liner: ")
|
||||
committed = []
|
||||
for e in list:
|
||||
if e.commit(message):
|
||||
@ -270,20 +270,20 @@ class RCVS(CVS):
|
||||
towhom = "sjoerd@cwi.nl, jack@cwi.nl" # XXX
|
||||
mailtext = MAILFORM % (towhom, ' '.join(files),
|
||||
' '.join(files), message)
|
||||
print '-'*70
|
||||
print mailtext
|
||||
print '-'*70
|
||||
ok = raw_input("OK to mail to %s? " % towhom)
|
||||
print('-'*70)
|
||||
print(mailtext)
|
||||
print('-'*70)
|
||||
ok = input("OK to mail to %s? " % towhom)
|
||||
if ok.lower().strip() in ('y', 'ye', 'yes'):
|
||||
p = os.popen(SENDMAIL, "w")
|
||||
p.write(mailtext)
|
||||
sts = p.close()
|
||||
if sts:
|
||||
print "Sendmail exit status %s" % str(sts)
|
||||
print("Sendmail exit status %s" % str(sts))
|
||||
else:
|
||||
print "Mail sent."
|
||||
print("Mail sent.")
|
||||
else:
|
||||
print "No mail sent."
|
||||
print("No mail sent.")
|
||||
|
||||
def report(self, files):
|
||||
for e in self.whichentries(files):
|
||||
@ -295,15 +295,15 @@ class RCVS(CVS):
|
||||
|
||||
def add(self, files):
|
||||
if not files:
|
||||
raise RuntimeError, "'cvs add' needs at least one file"
|
||||
raise RuntimeError("'cvs add' needs at least one file")
|
||||
list = []
|
||||
for e in self.whichentries(files, 1):
|
||||
e.add()
|
||||
|
||||
def rm(self, files):
|
||||
if not files:
|
||||
raise RuntimeError, "'cvs rm' needs at least one file"
|
||||
raise RuntimeError, "'cvs rm' not yet imlemented"
|
||||
raise RuntimeError("'cvs rm' needs at least one file")
|
||||
raise RuntimeError("'cvs rm' not yet imlemented")
|
||||
|
||||
def log(self, files, opts):
|
||||
flags = ''
|
||||
@ -316,23 +316,23 @@ class RCVS(CVS):
|
||||
if files:
|
||||
list = []
|
||||
for file in files:
|
||||
if self.entries.has_key(file):
|
||||
if file in self.entries:
|
||||
e = self.entries[file]
|
||||
else:
|
||||
e = self.FileClass(file)
|
||||
self.entries[file] = e
|
||||
list.append(e)
|
||||
else:
|
||||
list = self.entries.values()
|
||||
list = list(self.entries.values())
|
||||
for file in self.proxy.listfiles():
|
||||
if self.entries.has_key(file):
|
||||
if file in self.entries:
|
||||
continue
|
||||
e = self.FileClass(file)
|
||||
self.entries[file] = e
|
||||
list.append(e)
|
||||
if localfilestoo:
|
||||
for file in os.listdir(os.curdir):
|
||||
if not self.entries.has_key(file) \
|
||||
if file not in self.entries \
|
||||
and not self.ignored(file):
|
||||
e = self.FileClass(file)
|
||||
self.entries[file] = e
|
||||
@ -376,7 +376,7 @@ class rcvs(CommandFrameWork):
|
||||
continue
|
||||
if os.path.islink(name):
|
||||
continue
|
||||
print "--- entering subdirectory", name, "---"
|
||||
print("--- entering subdirectory", name, "---")
|
||||
os.chdir(name)
|
||||
try:
|
||||
if os.path.isdir("CVS"):
|
||||
@ -385,7 +385,7 @@ class rcvs(CommandFrameWork):
|
||||
self.recurse()
|
||||
finally:
|
||||
os.chdir(os.pardir)
|
||||
print "--- left subdirectory", name, "---"
|
||||
print("--- left subdirectory", name, "---")
|
||||
|
||||
def options(self, opts):
|
||||
self.opts = opts
|
||||
@ -437,7 +437,7 @@ class rcvs(CommandFrameWork):
|
||||
def do_add(self, opts, files):
|
||||
"""add file ..."""
|
||||
if not files:
|
||||
print "'rcvs add' requires at least one file"
|
||||
print("'rcvs add' requires at least one file")
|
||||
return
|
||||
self.cvs.add(files)
|
||||
self.cvs.putentries()
|
||||
@ -445,7 +445,7 @@ class rcvs(CommandFrameWork):
|
||||
def do_remove(self, opts, files):
|
||||
"""remove file ..."""
|
||||
if not files:
|
||||
print "'rcvs remove' requires at least one file"
|
||||
print("'rcvs remove' requires at least one file")
|
||||
return
|
||||
self.cvs.remove(files)
|
||||
self.cvs.putentries()
|
||||
|
@ -18,22 +18,22 @@ def main():
|
||||
cmd = 'head'
|
||||
else:
|
||||
cmd, rest = rest[0], rest[1:]
|
||||
if not commands.has_key(cmd):
|
||||
raise getopt.error, "unknown command"
|
||||
if cmd not in commands:
|
||||
raise getopt.error("unknown command")
|
||||
coptset, func = commands[cmd]
|
||||
copts, files = getopt.getopt(rest, coptset)
|
||||
except getopt.error as msg:
|
||||
print msg
|
||||
print "usage: rrcs [options] command [options] [file] ..."
|
||||
print "where command can be:"
|
||||
print " ci|put # checkin the given files"
|
||||
print " co|get # checkout"
|
||||
print " info # print header info"
|
||||
print " head # print revision of head branch"
|
||||
print " list # list filename if valid"
|
||||
print " log # print full log"
|
||||
print " diff # diff rcs file and work file"
|
||||
print "if no files are given, all remote rcs files are assumed"
|
||||
print(msg)
|
||||
print("usage: rrcs [options] command [options] [file] ...")
|
||||
print("where command can be:")
|
||||
print(" ci|put # checkin the given files")
|
||||
print(" co|get # checkout")
|
||||
print(" info # print header info")
|
||||
print(" head # print revision of head branch")
|
||||
print(" list # list filename if valid")
|
||||
print(" log # print full log")
|
||||
print(" diff # diff rcs file and work file")
|
||||
print("if no files are given, all remote rcs files are assumed")
|
||||
sys.exit(2)
|
||||
x = openrcsclient(opts)
|
||||
if not files:
|
||||
@ -42,7 +42,7 @@ def main():
|
||||
try:
|
||||
func(x, copts, fn)
|
||||
except (IOError, os.error) as msg:
|
||||
print "%s: %s" % (fn, msg)
|
||||
print("%s: %s" % (fn, msg))
|
||||
|
||||
def checkin(x, copts, fn):
|
||||
f = open(fn)
|
||||
@ -50,13 +50,13 @@ def checkin(x, copts, fn):
|
||||
f.close()
|
||||
new = not x.isvalid(fn)
|
||||
if not new and same(x, copts, fn, data):
|
||||
print "%s: unchanged since last checkin" % fn
|
||||
print("%s: unchanged since last checkin" % fn)
|
||||
return
|
||||
print "Checking in", fn, "..."
|
||||
print("Checking in", fn, "...")
|
||||
message = asklogmessage(new)
|
||||
messages = x.put(fn, data, message)
|
||||
if messages:
|
||||
print messages
|
||||
print(messages)
|
||||
|
||||
def checkout(x, copts, fn):
|
||||
data = x.get(fn)
|
||||
@ -72,19 +72,19 @@ def unlock(x, copts, fn):
|
||||
|
||||
def info(x, copts, fn):
|
||||
dict = x.info(fn)
|
||||
keys = dict.keys()
|
||||
keys = list(dict.keys())
|
||||
keys.sort()
|
||||
for key in keys:
|
||||
print key + ':', dict[key]
|
||||
print '='*70
|
||||
print(key + ':', dict[key])
|
||||
print('='*70)
|
||||
|
||||
def head(x, copts, fn):
|
||||
head = x.head(fn)
|
||||
print fn, head
|
||||
print(fn, head)
|
||||
|
||||
def list(x, copts, fn):
|
||||
if x.isvalid(fn):
|
||||
print fn
|
||||
print(fn)
|
||||
|
||||
def log(x, copts, fn):
|
||||
flags = ''
|
||||
@ -92,7 +92,7 @@ def log(x, copts, fn):
|
||||
flags = flags + ' ' + o + a
|
||||
flags = flags[1:]
|
||||
messages = x.log(fn, flags)
|
||||
print messages
|
||||
print(messages)
|
||||
|
||||
def diff(x, copts, fn):
|
||||
if same(x, copts, fn):
|
||||
@ -105,10 +105,10 @@ def diff(x, copts, fn):
|
||||
tf = tempfile.NamedTemporaryFile()
|
||||
tf.write(data)
|
||||
tf.flush()
|
||||
print 'diff %s -r%s %s' % (flags, x.head(fn), fn)
|
||||
print('diff %s -r%s %s' % (flags, x.head(fn), fn))
|
||||
sts = os.system('diff %s %s %s' % (flags, tf.name, fn))
|
||||
if sts:
|
||||
print '='*70
|
||||
print('='*70)
|
||||
|
||||
def same(x, copts, fn, data = None):
|
||||
if data is None:
|
||||
@ -121,12 +121,12 @@ def same(x, copts, fn, data = None):
|
||||
|
||||
def asklogmessage(new):
|
||||
if new:
|
||||
print "enter description,",
|
||||
print("enter description,", end=' ')
|
||||
else:
|
||||
print "enter log message,",
|
||||
print "terminate with single '.' or end of file:"
|
||||
print("enter log message,", end=' ')
|
||||
print("terminate with single '.' or end of file:")
|
||||
if new:
|
||||
print "NOTE: This is NOT the log message!"
|
||||
print("NOTE: This is NOT the log message!")
|
||||
message = ""
|
||||
while 1:
|
||||
sys.stderr.write(">> ")
|
||||
|
@ -3,11 +3,11 @@ class Security:
|
||||
def __init__(self):
|
||||
import os
|
||||
env = os.environ
|
||||
if env.has_key('PYTHON_KEYFILE'):
|
||||
if 'PYTHON_KEYFILE' in env:
|
||||
keyfile = env['PYTHON_KEYFILE']
|
||||
else:
|
||||
keyfile = '.python_keyfile'
|
||||
if env.has_key('HOME'):
|
||||
if 'HOME' in env:
|
||||
keyfile = os.path.join(env['HOME'], keyfile)
|
||||
if not os.path.exists(keyfile):
|
||||
import sys
|
||||
@ -19,7 +19,7 @@ class Security:
|
||||
try:
|
||||
self._key = eval(open(keyfile).readline())
|
||||
except IOError:
|
||||
raise IOError, "python keyfile %s: cannot open" % keyfile
|
||||
raise IOError("python keyfile %s: cannot open" % keyfile)
|
||||
|
||||
def _generate_challenge(self):
|
||||
import random
|
||||
@ -30,4 +30,4 @@ class Security:
|
||||
|
||||
def _encode_challenge(self, challenge):
|
||||
p, m = self._key
|
||||
return pow(long(challenge), p, m)
|
||||
return pow(int(challenge), p, m)
|
||||
|
@ -43,11 +43,11 @@ class Server:
|
||||
self._serve()
|
||||
|
||||
def _serve(self):
|
||||
if self._verbose: print "Wait for connection ..."
|
||||
if self._verbose: print("Wait for connection ...")
|
||||
conn, address = self._socket.accept()
|
||||
if self._verbose: print "Accepted connection from %s" % repr(address)
|
||||
if self._verbose: print("Accepted connection from %s" % repr(address))
|
||||
if not self._verify(conn, address):
|
||||
print "*** Connection from %s refused" % repr(address)
|
||||
print("*** Connection from %s refused" % repr(address))
|
||||
conn.close()
|
||||
return
|
||||
rf = conn.makefile('r')
|
||||
@ -55,7 +55,7 @@ class Server:
|
||||
ok = 1
|
||||
while ok:
|
||||
wf.flush()
|
||||
if self._verbose > 1: print "Wait for next request ..."
|
||||
if self._verbose > 1: print("Wait for next request ...")
|
||||
ok = self._dorequest(rf, wf)
|
||||
|
||||
_valid = ['192.16.201.*', '192.16.197.*', '132.151.1.*', '129.6.64.*']
|
||||
@ -72,22 +72,22 @@ class Server:
|
||||
request = rp.load()
|
||||
except EOFError:
|
||||
return 0
|
||||
if self._verbose > 1: print "Got request: %s" % repr(request)
|
||||
if self._verbose > 1: print("Got request: %s" % repr(request))
|
||||
try:
|
||||
methodname, args, id = request
|
||||
if '.' in methodname:
|
||||
reply = (None, self._special(methodname, args), id)
|
||||
elif methodname[0] == '_':
|
||||
raise NameError, "illegal method name %s" % repr(methodname)
|
||||
raise NameError("illegal method name %s" % repr(methodname))
|
||||
else:
|
||||
method = getattr(self, methodname)
|
||||
reply = (None, method(*args), id)
|
||||
except:
|
||||
reply = (sys.exc_info()[:2], id)
|
||||
if id < 0 and reply[:2] == (None, None):
|
||||
if self._verbose > 1: print "Suppress reply"
|
||||
if self._verbose > 1: print("Suppress reply")
|
||||
return 1
|
||||
if self._verbose > 1: print "Send reply: %s" % repr(reply)
|
||||
if self._verbose > 1: print("Send reply: %s" % repr(reply))
|
||||
wp = pickle.Pickler(wf)
|
||||
wp.dump(reply)
|
||||
return 1
|
||||
@ -97,16 +97,16 @@ class Server:
|
||||
if not hasattr(self, '_methods'):
|
||||
self._methods = tuple(self._listmethods())
|
||||
return self._methods
|
||||
raise NameError, "unrecognized special method name %s" % repr(methodname)
|
||||
raise NameError("unrecognized special method name %s" % repr(methodname))
|
||||
|
||||
def _listmethods(self, cl=None):
|
||||
if not cl: cl = self.__class__
|
||||
names = cl.__dict__.keys()
|
||||
names = filter(lambda x: x[0] != '_', names)
|
||||
names = list(cl.__dict__.keys())
|
||||
names = [x for x in names if x[0] != '_']
|
||||
names.sort()
|
||||
for base in cl.__bases__:
|
||||
basenames = self._listmethods(base)
|
||||
basenames = filter(lambda x, names=names: x not in names, basenames)
|
||||
basenames = list(filter(lambda x, names=names: x not in names, basenames))
|
||||
names[len(names):] = basenames
|
||||
return names
|
||||
|
||||
@ -134,12 +134,12 @@ class SecureServer(Server, Security):
|
||||
response = string.atol(string.strip(response))
|
||||
except string.atol_error:
|
||||
if self._verbose > 0:
|
||||
print "Invalid response syntax", repr(response)
|
||||
print("Invalid response syntax", repr(response))
|
||||
return 0
|
||||
if not self._compare_challenge_response(challenge, response):
|
||||
if self._verbose > 0:
|
||||
print "Invalid response value", repr(response)
|
||||
print("Invalid response value", repr(response))
|
||||
return 0
|
||||
if self._verbose > 1:
|
||||
print "Response matches challenge. Go ahead!"
|
||||
print("Response matches challenge. Go ahead!")
|
||||
return 1
|
||||
|
@ -9,13 +9,13 @@ def main():
|
||||
sumtree(proxy)
|
||||
proxy._close()
|
||||
t2 = time.time()
|
||||
print t2-t1, "seconds"
|
||||
print(t2-t1, "seconds")
|
||||
sys.stdout.write("[Return to exit] ")
|
||||
sys.stdout.flush()
|
||||
sys.stdin.readline()
|
||||
|
||||
def sumtree(proxy):
|
||||
print "PWD =", proxy.pwd()
|
||||
print("PWD =", proxy.pwd())
|
||||
files = proxy.listfiles()
|
||||
proxy.infolist(files)
|
||||
subdirs = proxy.listsubdirs()
|
||||
|
@ -20,7 +20,7 @@ def main():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "")
|
||||
if len(args) > 1:
|
||||
raise getopt.error, "Too many arguments."
|
||||
raise getopt.error("Too many arguments.")
|
||||
except getopt.error as msg:
|
||||
usage(msg)
|
||||
for o, a in opts:
|
||||
@ -37,32 +37,32 @@ def main():
|
||||
def usage(msg=None):
|
||||
sys.stdout = sys.stderr
|
||||
if msg:
|
||||
print msg
|
||||
print "\n", __doc__,
|
||||
print(msg)
|
||||
print("\n", __doc__, end=' ')
|
||||
sys.exit(2)
|
||||
|
||||
def main_thread(port):
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
sock.bind(("", port))
|
||||
sock.listen(5)
|
||||
print "Listening on port", port, "..."
|
||||
print("Listening on port", port, "...")
|
||||
while 1:
|
||||
(conn, addr) = sock.accept()
|
||||
if addr[0] != conn.getsockname()[0]:
|
||||
conn.close()
|
||||
print "Refusing connection from non-local host", addr[0], "."
|
||||
print("Refusing connection from non-local host", addr[0], ".")
|
||||
continue
|
||||
thread.start_new_thread(service_thread, (conn, addr))
|
||||
del conn, addr
|
||||
|
||||
def service_thread(conn, addr):
|
||||
(caddr, cport) = addr
|
||||
print "Thread %s has connection from %s.\n" % (str(thread.get_ident()),
|
||||
caddr),
|
||||
print("Thread %s has connection from %s.\n" % (str(thread.get_ident()),
|
||||
caddr), end=' ')
|
||||
stdin = conn.makefile("r")
|
||||
stdout = conn.makefile("w", 0)
|
||||
run_interpreter(stdin, stdout)
|
||||
print "Thread %s is done.\n" % str(thread.get_ident()),
|
||||
print("Thread %s is done.\n" % str(thread.get_ident()), end=' ')
|
||||
|
||||
def run_interpreter(stdin, stdout):
|
||||
globals = {}
|
||||
@ -110,7 +110,7 @@ def run_command(code, stdin, stdout, globals):
|
||||
try:
|
||||
exec(code, globals)
|
||||
except SystemExit as how:
|
||||
raise SystemExit, how, sys.exc_info()[2]
|
||||
raise SystemExit(how).with_traceback(sys.exc_info()[2])
|
||||
except:
|
||||
type, value, tb = sys.exc_info()
|
||||
if tb: tb = tb.tb_next
|
||||
|
@ -193,10 +193,10 @@ def test():
|
||||
mcl = C(host)
|
||||
list = mcl.Export()
|
||||
for item in list:
|
||||
print item
|
||||
print(item)
|
||||
try:
|
||||
mcl.Mnt(item[0])
|
||||
except:
|
||||
print 'Sorry'
|
||||
print('Sorry')
|
||||
continue
|
||||
mcl.Umnt(item[0])
|
||||
|
@ -187,14 +187,14 @@ def test():
|
||||
if filesys == None:
|
||||
list = mcl.Export()
|
||||
for item in list:
|
||||
print item
|
||||
print(item)
|
||||
return
|
||||
sf = mcl.Mnt(filesys)
|
||||
print sf
|
||||
print(sf)
|
||||
fh = sf[1]
|
||||
if fh:
|
||||
ncl = NFSClient(host)
|
||||
print ncl.Getattr(fh)
|
||||
print(ncl.Getattr(fh))
|
||||
list = ncl.Listdir(fh)
|
||||
for item in list: print item
|
||||
for item in list: print(item)
|
||||
mcl.Umnt(filesys)
|
||||
|
@ -77,19 +77,19 @@ def test():
|
||||
line = strip0(line)
|
||||
name = strip0(name)
|
||||
host = strip0(host)
|
||||
print "%r %r %r %s %s" % (name, host, line, time, idle)
|
||||
print("%r %r %r %s %s" % (name, host, line, time, idle))
|
||||
|
||||
def testbcast():
|
||||
c = BroadcastRnusersClient('<broadcast>')
|
||||
def listit(list, fromaddr):
|
||||
host, port = fromaddr
|
||||
print host + '\t:',
|
||||
print(host + '\t:', end=' ')
|
||||
for (line, name, host, time), idle in list:
|
||||
print strip0(name),
|
||||
print
|
||||
print(strip0(name), end=' ')
|
||||
print()
|
||||
c.set_reply_handler(listit)
|
||||
all = c.Names()
|
||||
print 'Total Count:', len(all)
|
||||
print('Total Count:', len(all))
|
||||
|
||||
def strip0(s):
|
||||
while s and s[-1] == '\0': s = s[:-1]
|
||||
|
@ -95,10 +95,10 @@ class Unpacker(xdr.Unpacker):
|
||||
xid = self.unpack_uint()
|
||||
temp = self.unpack_enum()
|
||||
if temp != CALL:
|
||||
raise BadRPCFormat, 'no CALL but %r' % (temp,)
|
||||
raise BadRPCFormat('no CALL but %r' % (temp,))
|
||||
temp = self.unpack_uint()
|
||||
if temp != RPCVERSION:
|
||||
raise BadRPCVersion, 'bad RPC version %r' % (temp,)
|
||||
raise BadRPCVersion('bad RPC version %r' % (temp,))
|
||||
prog = self.unpack_uint()
|
||||
vers = self.unpack_uint()
|
||||
proc = self.unpack_uint()
|
||||
@ -111,38 +111,34 @@ class Unpacker(xdr.Unpacker):
|
||||
xid = self.unpack_uint()
|
||||
mtype = self.unpack_enum()
|
||||
if mtype != REPLY:
|
||||
raise RuntimeError, 'no REPLY but %r' % (mtype,)
|
||||
raise RuntimeError('no REPLY but %r' % (mtype,))
|
||||
stat = self.unpack_enum()
|
||||
if stat == MSG_DENIED:
|
||||
stat = self.unpack_enum()
|
||||
if stat == RPC_MISMATCH:
|
||||
low = self.unpack_uint()
|
||||
high = self.unpack_uint()
|
||||
raise RuntimeError, \
|
||||
'MSG_DENIED: RPC_MISMATCH: %r' % ((low, high),)
|
||||
raise RuntimeError('MSG_DENIED: RPC_MISMATCH: %r' % ((low, high),))
|
||||
if stat == AUTH_ERROR:
|
||||
stat = self.unpack_uint()
|
||||
raise RuntimeError, \
|
||||
'MSG_DENIED: AUTH_ERROR: %r' % (stat,)
|
||||
raise RuntimeError, 'MSG_DENIED: %r' % (stat,)
|
||||
raise RuntimeError('MSG_DENIED: AUTH_ERROR: %r' % (stat,))
|
||||
raise RuntimeError('MSG_DENIED: %r' % (stat,))
|
||||
if stat != MSG_ACCEPTED:
|
||||
raise RuntimeError, \
|
||||
'Neither MSG_DENIED nor MSG_ACCEPTED: %r' % (stat,)
|
||||
raise RuntimeError('Neither MSG_DENIED nor MSG_ACCEPTED: %r' % (stat,))
|
||||
verf = self.unpack_auth()
|
||||
stat = self.unpack_enum()
|
||||
if stat == PROG_UNAVAIL:
|
||||
raise RuntimeError, 'call failed: PROG_UNAVAIL'
|
||||
raise RuntimeError('call failed: PROG_UNAVAIL')
|
||||
if stat == PROG_MISMATCH:
|
||||
low = self.unpack_uint()
|
||||
high = self.unpack_uint()
|
||||
raise RuntimeError, \
|
||||
'call failed: PROG_MISMATCH: %r' % ((low, high),)
|
||||
raise RuntimeError('call failed: PROG_MISMATCH: %r' % ((low, high),))
|
||||
if stat == PROC_UNAVAIL:
|
||||
raise RuntimeError, 'call failed: PROC_UNAVAIL'
|
||||
raise RuntimeError('call failed: PROC_UNAVAIL')
|
||||
if stat == GARBAGE_ARGS:
|
||||
raise RuntimeError, 'call failed: GARBAGE_ARGS'
|
||||
raise RuntimeError('call failed: GARBAGE_ARGS')
|
||||
if stat != SUCCESS:
|
||||
raise RuntimeError, 'call failed: %r' % (stat,)
|
||||
raise RuntimeError('call failed: %r' % (stat,))
|
||||
return xid, verf
|
||||
# Caller must get procedure-specific part of reply
|
||||
|
||||
@ -193,7 +189,7 @@ def unix_epoch():
|
||||
offset, hh = divmod(hh + offset, 24)
|
||||
d = d + offset
|
||||
_unix_epoch = time.mktime((y, m, d, hh, mm, ss, 0, 0, 0))
|
||||
print "Unix epoch:", time.ctime(_unix_epoch)
|
||||
print("Unix epoch:", time.ctime(_unix_epoch))
|
||||
return _unix_epoch
|
||||
|
||||
|
||||
@ -219,7 +215,7 @@ class Client:
|
||||
|
||||
def makesocket(self):
|
||||
# This MUST be overridden
|
||||
raise RuntimeError, 'makesocket not defined'
|
||||
raise RuntimeError('makesocket not defined')
|
||||
|
||||
def connsocket(self):
|
||||
# Override this if you don't want/need a connection
|
||||
@ -237,7 +233,7 @@ class Client:
|
||||
def make_call(self, proc, args, pack_func, unpack_func):
|
||||
# Don't normally override this (but see Broadcast)
|
||||
if pack_func is None and args is not None:
|
||||
raise TypeError, 'non-null args with null pack_func'
|
||||
raise TypeError('non-null args with null pack_func')
|
||||
self.start_call(proc)
|
||||
if pack_func:
|
||||
pack_func(args)
|
||||
@ -260,7 +256,7 @@ class Client:
|
||||
|
||||
def do_call(self):
|
||||
# This MUST be overridden
|
||||
raise RuntimeError, 'do_call not defined'
|
||||
raise RuntimeError('do_call not defined')
|
||||
|
||||
def mkcred(self):
|
||||
# Override this to use more powerful credentials
|
||||
@ -282,7 +278,7 @@ class Client:
|
||||
|
||||
def sendfrag(sock, last, frag):
|
||||
x = len(frag)
|
||||
if last: x = x | 0x80000000L
|
||||
if last: x = x | 0x80000000
|
||||
header = (chr(int(x>>24 & 0xff)) + chr(int(x>>16 & 0xff)) + \
|
||||
chr(int(x>>8 & 0xff)) + chr(int(x & 0xff)))
|
||||
sock.send(header + frag)
|
||||
@ -294,7 +290,7 @@ def recvfrag(sock):
|
||||
header = sock.recv(4)
|
||||
if len(header) < 4:
|
||||
raise EOFError
|
||||
x = long(ord(header[0]))<<24 | ord(header[1])<<16 | \
|
||||
x = int(ord(header[0]))<<24 | ord(header[1])<<16 | \
|
||||
ord(header[2])<<8 | ord(header[3])
|
||||
last = ((x & 0x80000000) != 0)
|
||||
n = int(x & 0x7fffffff)
|
||||
@ -333,8 +329,8 @@ def bindresvport(sock, host):
|
||||
except socket.error as e:
|
||||
(errno, msg) = e
|
||||
if errno != 114:
|
||||
raise socket.error, (errno, msg)
|
||||
raise RuntimeError, 'can\'t assign reserved port'
|
||||
raise socket.error(errno, msg)
|
||||
raise RuntimeError('can\'t assign reserved port')
|
||||
|
||||
|
||||
# Client using TCP to a specific port
|
||||
@ -353,8 +349,8 @@ class RawTCPClient(Client):
|
||||
xid, verf = u.unpack_replyheader()
|
||||
if xid != self.lastxid:
|
||||
# Can't really happen since this is TCP...
|
||||
raise RuntimeError, 'wrong xid in reply %r instead of %r' % (
|
||||
xid, self.lastxid)
|
||||
raise RuntimeError('wrong xid in reply %r instead of %r' % (
|
||||
xid, self.lastxid))
|
||||
|
||||
|
||||
# Client using UDP to a specific port
|
||||
@ -370,7 +366,7 @@ class RawUDPClient(Client):
|
||||
try:
|
||||
from select import select
|
||||
except ImportError:
|
||||
print 'WARNING: select not found, RPC may hang'
|
||||
print('WARNING: select not found, RPC may hang')
|
||||
select = None
|
||||
BUFSIZE = 8192 # Max UDP buffer size
|
||||
timeout = 1
|
||||
@ -381,7 +377,7 @@ class RawUDPClient(Client):
|
||||
r, w, x = select(r, w, x, timeout)
|
||||
if self.sock not in r:
|
||||
count = count - 1
|
||||
if count < 0: raise RuntimeError, 'timeout'
|
||||
if count < 0: raise RuntimeError('timeout')
|
||||
if timeout < 25: timeout = timeout *2
|
||||
## print 'RESEND', timeout, count
|
||||
self.sock.send(call)
|
||||
@ -417,7 +413,7 @@ class RawBroadcastUDPClient(RawUDPClient):
|
||||
|
||||
def make_call(self, proc, args, pack_func, unpack_func):
|
||||
if pack_func is None and args is not None:
|
||||
raise TypeError, 'non-null args with null pack_func'
|
||||
raise TypeError('non-null args with null pack_func')
|
||||
self.start_call(proc)
|
||||
if pack_func:
|
||||
pack_func(args)
|
||||
@ -426,7 +422,7 @@ class RawBroadcastUDPClient(RawUDPClient):
|
||||
try:
|
||||
from select import select
|
||||
except ImportError:
|
||||
print 'WARNING: select not found, broadcast will hang'
|
||||
print('WARNING: select not found, broadcast will hang')
|
||||
select = None
|
||||
BUFSIZE = 8192 # Max UDP buffer size (for reply)
|
||||
replies = []
|
||||
@ -585,7 +581,7 @@ class TCPClient(RawTCPClient):
|
||||
port = pmap.Getport((prog, vers, IPPROTO_TCP, 0))
|
||||
pmap.close()
|
||||
if port == 0:
|
||||
raise RuntimeError, 'program not registered'
|
||||
raise RuntimeError('program not registered')
|
||||
RawTCPClient.__init__(self, host, prog, vers, port)
|
||||
|
||||
|
||||
@ -596,7 +592,7 @@ class UDPClient(RawUDPClient):
|
||||
port = pmap.Getport((prog, vers, IPPROTO_UDP, 0))
|
||||
pmap.close()
|
||||
if port == 0:
|
||||
raise RuntimeError, 'program not registered'
|
||||
raise RuntimeError('program not registered')
|
||||
RawUDPClient.__init__(self, host, prog, vers, port)
|
||||
|
||||
|
||||
@ -665,13 +661,13 @@ class Server:
|
||||
mapping = self.prog, self.vers, self.prot, self.port
|
||||
p = TCPPortMapperClient(self.host)
|
||||
if not p.Set(mapping):
|
||||
raise RuntimeError, 'register failed'
|
||||
raise RuntimeError('register failed')
|
||||
|
||||
def unregister(self):
|
||||
mapping = self.prog, self.vers, self.prot, self.port
|
||||
p = TCPPortMapperClient(self.host)
|
||||
if not p.Unset(mapping):
|
||||
raise RuntimeError, 'unregister failed'
|
||||
raise RuntimeError('unregister failed')
|
||||
|
||||
def handle(self, call):
|
||||
# Don't use unpack_header but parse the header piecewise
|
||||
@ -736,7 +732,7 @@ class Server:
|
||||
|
||||
def makesocket(self):
|
||||
# This MUST be overridden
|
||||
raise RuntimeError, 'makesocket not defined'
|
||||
raise RuntimeError('makesocket not defined')
|
||||
|
||||
def bindsocket(self):
|
||||
# Override this to bind to a different port (e.g. reserved)
|
||||
@ -767,7 +763,7 @@ class TCPServer(Server):
|
||||
except EOFError:
|
||||
break
|
||||
except socket.error as msg:
|
||||
print 'socket error:', msg
|
||||
print('socket error:', msg)
|
||||
break
|
||||
reply = self.handle(call)
|
||||
if reply is not None:
|
||||
@ -826,11 +822,11 @@ def test():
|
||||
list = pmap.Dump()
|
||||
list.sort()
|
||||
for prog, vers, prot, port in list:
|
||||
print prog, vers,
|
||||
if prot == IPPROTO_TCP: print 'tcp',
|
||||
elif prot == IPPROTO_UDP: print 'udp',
|
||||
else: print prot,
|
||||
print port
|
||||
print(prog, vers, end=' ')
|
||||
if prot == IPPROTO_TCP: print('tcp', end=' ')
|
||||
elif prot == IPPROTO_UDP: print('udp', end=' ')
|
||||
else: print(prot, end=' ')
|
||||
print(port)
|
||||
|
||||
|
||||
# Test program for broadcast operation -- dump everybody's portmapper status
|
||||
@ -843,7 +839,7 @@ def testbcast():
|
||||
bcastaddr = '<broadcast>'
|
||||
def rh(reply, fromaddr):
|
||||
host, port = fromaddr
|
||||
print host + '\t' + repr(reply)
|
||||
print(host + '\t' + repr(reply))
|
||||
pmap = BroadcastUDPPortMapperClient(bcastaddr)
|
||||
pmap.set_reply_handler(rh)
|
||||
pmap.set_timeout(5)
|
||||
@ -861,21 +857,21 @@ def testsvr():
|
||||
def handle_1(self):
|
||||
arg = self.unpacker.unpack_string()
|
||||
self.turn_around()
|
||||
print 'RPC function 1 called, arg', repr(arg)
|
||||
print('RPC function 1 called, arg', repr(arg))
|
||||
self.packer.pack_string(arg + arg)
|
||||
#
|
||||
s = S('', 0x20000000, 1, 0)
|
||||
try:
|
||||
s.unregister()
|
||||
except RuntimeError as msg:
|
||||
print 'RuntimeError:', msg, '(ignored)'
|
||||
print('RuntimeError:', msg, '(ignored)')
|
||||
s.register()
|
||||
print 'Service started...'
|
||||
print('Service started...')
|
||||
try:
|
||||
s.loop()
|
||||
finally:
|
||||
s.unregister()
|
||||
print 'Service interrupted.'
|
||||
print('Service interrupted.')
|
||||
|
||||
|
||||
def testclt():
|
||||
@ -889,6 +885,6 @@ def testclt():
|
||||
self.packer.pack_string, \
|
||||
self.unpacker.unpack_string)
|
||||
c = C(host, 0x20000000, 1)
|
||||
print 'making call...'
|
||||
print('making call...')
|
||||
reply = c.call_1('hello, world, ')
|
||||
print 'call returned', repr(reply)
|
||||
print('call returned', repr(reply))
|
||||
|
@ -7,7 +7,7 @@ except ImportError:
|
||||
struct = None
|
||||
|
||||
|
||||
Long = type(0L)
|
||||
Long = type(0)
|
||||
|
||||
|
||||
class Packer:
|
||||
@ -28,8 +28,8 @@ class Packer:
|
||||
if struct and struct.pack('l', 1) == '\0\0\0\1':
|
||||
def pack_uint(self, x):
|
||||
if type(x) == Long:
|
||||
x = int((x + 0x80000000L) % 0x100000000L \
|
||||
- 0x80000000L)
|
||||
x = int((x + 0x80000000) % 0x100000000 \
|
||||
- 0x80000000)
|
||||
self.buf = self.buf + struct.pack('l', x)
|
||||
|
||||
pack_int = pack_uint
|
||||
@ -56,7 +56,7 @@ class Packer:
|
||||
|
||||
def pack_fstring(self, n, s):
|
||||
if n < 0:
|
||||
raise ValueError, 'fstring size must be nonnegative'
|
||||
raise ValueError('fstring size must be nonnegative')
|
||||
n = ((n+3)/4)*4
|
||||
data = s[:n]
|
||||
data = data + (n - len(data)) * '\0'
|
||||
@ -79,7 +79,7 @@ class Packer:
|
||||
|
||||
def pack_farray(self, n, list, pack_item):
|
||||
if len(list) != n:
|
||||
raise ValueError, 'wrong array size'
|
||||
raise ValueError('wrong array size')
|
||||
for item in list:
|
||||
pack_item(item)
|
||||
|
||||
@ -100,7 +100,7 @@ class Unpacker:
|
||||
|
||||
def done(self):
|
||||
if self.pos < len(self.buf):
|
||||
raise RuntimeError, 'unextracted data remains'
|
||||
raise RuntimeError('unextracted data remains')
|
||||
|
||||
def unpack_uint(self):
|
||||
i = self.pos
|
||||
@ -108,11 +108,11 @@ class Unpacker:
|
||||
data = self.buf[i:j]
|
||||
if len(data) < 4:
|
||||
raise EOFError
|
||||
x = long(ord(data[0]))<<24 | ord(data[1])<<16 | \
|
||||
x = int(ord(data[0]))<<24 | ord(data[1])<<16 | \
|
||||
ord(data[2])<<8 | ord(data[3])
|
||||
# Return a Python long only if the value is not representable
|
||||
# as a nonnegative Python int
|
||||
if x < 0x80000000L: x = int(x)
|
||||
if x < 0x80000000: x = int(x)
|
||||
return x
|
||||
if struct and struct.unpack('l', '\0\0\0\1') == 1:
|
||||
def unpack_uint(self):
|
||||
@ -125,7 +125,7 @@ class Unpacker:
|
||||
|
||||
def unpack_int(self):
|
||||
x = self.unpack_uint()
|
||||
if x >= 0x80000000L: x = x - 0x100000000L
|
||||
if x >= 0x80000000: x = x - 0x100000000
|
||||
return int(x)
|
||||
|
||||
unpack_enum = unpack_int
|
||||
@ -135,11 +135,11 @@ class Unpacker:
|
||||
def unpack_uhyper(self):
|
||||
hi = self.unpack_uint()
|
||||
lo = self.unpack_uint()
|
||||
return long(hi)<<32 | lo
|
||||
return int(hi)<<32 | lo
|
||||
|
||||
def unpack_hyper(self):
|
||||
x = self.unpack_uhyper()
|
||||
if x >= 0x8000000000000000L: x = x - 0x10000000000000000L
|
||||
if x >= 0x8000000000000000: x = x - 0x10000000000000000
|
||||
return x
|
||||
|
||||
def unpack_float(self):
|
||||
@ -162,7 +162,7 @@ class Unpacker:
|
||||
|
||||
def unpack_fstring(self, n):
|
||||
if n < 0:
|
||||
raise ValueError, 'fstring size must be nonnegative'
|
||||
raise ValueError('fstring size must be nonnegative')
|
||||
i = self.pos
|
||||
j = i + (n+3)/4*4
|
||||
if j > len(self.buf):
|
||||
@ -184,7 +184,7 @@ class Unpacker:
|
||||
x = self.unpack_uint()
|
||||
if x == 0: break
|
||||
if x != 1:
|
||||
raise RuntimeError, '0 or 1 expected, got %r' % (x, )
|
||||
raise RuntimeError('0 or 1 expected, got %r' % (x, ))
|
||||
item = unpack_item()
|
||||
list.append(item)
|
||||
return list
|
||||
|
@ -8,7 +8,7 @@ def bottle(n):
|
||||
if n == 1: return "one bottle of beer"
|
||||
return str(n) + " bottles of beer"
|
||||
for i in range(n):
|
||||
print bottle(n-i), "on the wall,"
|
||||
print bottle(n-i) + "."
|
||||
print "Take one down, pass it around,"
|
||||
print bottle(n-i-1), "on the wall."
|
||||
print(bottle(n-i), "on the wall,")
|
||||
print(bottle(n-i) + ".")
|
||||
print("Take one down, pass it around,")
|
||||
print(bottle(n-i-1), "on the wall.")
|
||||
|
@ -143,7 +143,7 @@ def fix(filename):
|
||||
# First copy the file's mode to the temp file
|
||||
try:
|
||||
statbuf = os.stat(filename)
|
||||
os.chmod(tempname, statbuf[ST_MODE] & 07777)
|
||||
os.chmod(tempname, statbuf[ST_MODE] & 0o7777)
|
||||
except os.error as msg:
|
||||
err('%s: warning: chmod failed (%r)\n' % (tempname, msg))
|
||||
# Then make a backup of the original file as filename~
|
||||
@ -176,22 +176,22 @@ def fixline(line):
|
||||
j = tokenprog.match(line, i)
|
||||
if j < 0:
|
||||
# A bad token; forget about the rest of this line
|
||||
print '(Syntax error:)'
|
||||
print line,
|
||||
print('(Syntax error:)')
|
||||
print(line, end=' ')
|
||||
return line
|
||||
a, b = tokenprog.regs[3] # Location of the token proper
|
||||
token = line[a:b]
|
||||
i = i+j
|
||||
if stack and token == stack[-1]:
|
||||
del stack[-1]
|
||||
elif match.has_key(token):
|
||||
elif token in match:
|
||||
stack.append(match[token])
|
||||
elif token == '=' and stack:
|
||||
line = line[:a] + '==' + line[b:]
|
||||
i, n = a + len('=='), len(line)
|
||||
elif token == '==' and not stack:
|
||||
print '(Warning: \'==\' at top level:)'
|
||||
print line,
|
||||
print('(Warning: \'==\' at top level:)')
|
||||
print(line, end=' ')
|
||||
return line
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -36,12 +36,12 @@ def main():
|
||||
if len(sys.argv) > 1:
|
||||
for arg in sys.argv[1:]:
|
||||
n = eval(arg)
|
||||
print n, fact(n)
|
||||
print(n, fact(n))
|
||||
else:
|
||||
try:
|
||||
while 1:
|
||||
n = input()
|
||||
print n, fact(n)
|
||||
n = eval(input())
|
||||
print(n, fact(n))
|
||||
except EOFError:
|
||||
pass
|
||||
|
||||
|
@ -24,7 +24,7 @@ def main(args):
|
||||
unicode_names= []
|
||||
for ix in range(sys.maxunicode+1):
|
||||
try:
|
||||
unicode_names.append( (ix, unicodedata.name(unichr(ix))) )
|
||||
unicode_names.append( (ix, unicodedata.name(chr(ix))) )
|
||||
except ValueError: # no name for the character
|
||||
pass
|
||||
for arg in args:
|
||||
@ -32,9 +32,9 @@ def main(args):
|
||||
matches = [(x,y) for (x,y) in unicode_names
|
||||
if pat.search(y) is not None]
|
||||
if matches:
|
||||
print "***", arg, "matches", "***"
|
||||
print("***", arg, "matches", "***")
|
||||
for (x,y) in matches:
|
||||
print "%s (%d)" % (y,x)
|
||||
print("%s (%d)" % (y,x))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv[1:])
|
||||
|
@ -25,11 +25,11 @@ while 1:
|
||||
break # EOF
|
||||
if line.startswith('From '):
|
||||
# Start of message found
|
||||
print line[:-1],
|
||||
print(line[:-1], end=' ')
|
||||
while 1:
|
||||
line = mail.readline()
|
||||
if not line or line == '\n':
|
||||
break
|
||||
if line.startswith('Subject: '):
|
||||
print repr(line[9:-1]),
|
||||
print
|
||||
print(repr(line[9:-1]), end=' ')
|
||||
print()
|
||||
|
@ -26,8 +26,8 @@ def main():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], 'm:s:')
|
||||
except getopt.error as msg:
|
||||
print msg
|
||||
print 'usage: ftpstats [-m maxitems] [file]'
|
||||
print(msg)
|
||||
print('usage: ftpstats [-m maxitems] [file]')
|
||||
sys.exit(2)
|
||||
for o, a in opts:
|
||||
if o == '-m':
|
||||
@ -42,7 +42,7 @@ def main():
|
||||
try:
|
||||
f = open(file, 'r')
|
||||
except IOError as msg:
|
||||
print file, ':', msg
|
||||
print(file, ':', msg)
|
||||
sys.exit(1)
|
||||
bydate = {}
|
||||
bytime = {}
|
||||
@ -60,7 +60,7 @@ def main():
|
||||
if search and string.find(line, search) < 0:
|
||||
continue
|
||||
if prog.match(line) < 0:
|
||||
print 'Bad line', lineno, ':', repr(line)
|
||||
print('Bad line', lineno, ':', repr(line))
|
||||
continue
|
||||
items = prog.group(1, 2, 3, 4, 5, 6)
|
||||
(logtime, loguser, loghost, logfile, logbytes,
|
||||
@ -93,7 +93,7 @@ def main():
|
||||
add(byuser, loguser, items)
|
||||
add(bytype, direction, items)
|
||||
except KeyboardInterrupt:
|
||||
print 'Interrupted at line', lineno
|
||||
print('Interrupted at line', lineno)
|
||||
show(bytype, 'by transfer direction', maxitems)
|
||||
show(bydir, 'by directory', maxitems)
|
||||
show(byfile, 'by file', maxitems)
|
||||
@ -104,9 +104,9 @@ def main():
|
||||
|
||||
def showbar(dict, title):
|
||||
n = len(title)
|
||||
print '='*((70-n)/2), title, '='*((71-n)/2)
|
||||
print('='*((70-n)/2), title, '='*((71-n)/2))
|
||||
list = []
|
||||
keys = dict.keys()
|
||||
keys = list(dict.keys())
|
||||
keys.sort()
|
||||
for key in keys:
|
||||
n = len(str(key))
|
||||
@ -120,23 +120,23 @@ def showbar(dict, title):
|
||||
for count, key in list:
|
||||
barlength = int(round(maxbarlength*float(count)/maxcount))
|
||||
bar = '*'*barlength
|
||||
print '%5d %-*s %s' % (count, maxkeylength, key, bar)
|
||||
print('%5d %-*s %s' % (count, maxkeylength, key, bar))
|
||||
|
||||
def show(dict, title, maxitems):
|
||||
if len(dict) > maxitems:
|
||||
title = title + ' (first %d)'%maxitems
|
||||
n = len(title)
|
||||
print '='*((70-n)/2), title, '='*((71-n)/2)
|
||||
print('='*((70-n)/2), title, '='*((71-n)/2))
|
||||
list = []
|
||||
keys = dict.keys()
|
||||
keys = list(dict.keys())
|
||||
for key in keys:
|
||||
list.append((-len(dict[key]), key))
|
||||
list.sort()
|
||||
for count, key in list[:maxitems]:
|
||||
print '%5d %s' % (-count, key)
|
||||
print('%5d %s' % (-count, key))
|
||||
|
||||
def add(dict, key, item):
|
||||
if dict.has_key(key):
|
||||
if key in dict:
|
||||
dict[key].append(item)
|
||||
else:
|
||||
dict[key] = [item]
|
||||
|
@ -25,7 +25,7 @@ def main():
|
||||
if printers[i][:2] == '-P':
|
||||
printers[i] = printers[i][2:]
|
||||
else:
|
||||
if posix.environ.has_key('PRINTER'):
|
||||
if 'PRINTER' in posix.environ:
|
||||
printers = [posix.environ['PRINTER']]
|
||||
else:
|
||||
printers = [DEF_PRINTER]
|
||||
@ -36,7 +36,7 @@ def main():
|
||||
text = clearhome
|
||||
for name in printers:
|
||||
text = text + makestatus(name, thisuser) + '\n'
|
||||
print text
|
||||
print(text)
|
||||
time.sleep(delay)
|
||||
|
||||
def makestatus(name, thisuser):
|
||||
@ -66,7 +66,7 @@ def makestatus(name, thisuser):
|
||||
aheadjobs = aheadjobs + 1
|
||||
totalbytes = totalbytes + bytes
|
||||
totaljobs = totaljobs + 1
|
||||
if users.has_key(user):
|
||||
if user in users:
|
||||
ujobs, ubytes = users[user]
|
||||
else:
|
||||
ujobs, ubytes = 0, 0
|
||||
@ -87,7 +87,7 @@ def makestatus(name, thisuser):
|
||||
if totaljobs != len(users):
|
||||
line = line + ' (%d jobs)' % totaljobs
|
||||
if len(users) == 1:
|
||||
line = line + ' for %s' % (users.keys()[0],)
|
||||
line = line + ' for %s' % (list(users.keys())[0],)
|
||||
else:
|
||||
line = line + ' for %d users' % len(users)
|
||||
if userseen:
|
||||
|
@ -15,7 +15,7 @@ def makedirs(p):
|
||||
if p and not os.path.isdir(p):
|
||||
head, tail = os.path.split(p)
|
||||
makedirs(head)
|
||||
os.mkdir(p, 0777)
|
||||
os.mkdir(p, 0o777)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -6,7 +6,7 @@ class Markov:
|
||||
self.choice = choice
|
||||
self.trans = {}
|
||||
def add(self, state, next):
|
||||
if not self.trans.has_key(state):
|
||||
if state not in self.trans:
|
||||
self.trans[state] = [next]
|
||||
else:
|
||||
self.trans[state].append(next)
|
||||
@ -36,19 +36,19 @@ def test():
|
||||
try:
|
||||
opts, args = getopt.getopt(args, '0123456789cdw')
|
||||
except getopt.error:
|
||||
print 'Usage: markov [-#] [-cddqw] [file] ...'
|
||||
print 'Options:'
|
||||
print '-#: 1-digit history size (default 2)'
|
||||
print '-c: characters (default)'
|
||||
print '-w: words'
|
||||
print '-d: more debugging output'
|
||||
print '-q: no debugging output'
|
||||
print 'Input files (default stdin) are split in paragraphs'
|
||||
print 'separated blank lines and each paragraph is split'
|
||||
print 'in words by whitespace, then reconcatenated with'
|
||||
print 'exactly one space separating words.'
|
||||
print 'Output consists of paragraphs separated by blank'
|
||||
print 'lines, where lines are no longer than 72 characters.'
|
||||
print('Usage: markov [-#] [-cddqw] [file] ...')
|
||||
print('Options:')
|
||||
print('-#: 1-digit history size (default 2)')
|
||||
print('-c: characters (default)')
|
||||
print('-w: words')
|
||||
print('-d: more debugging output')
|
||||
print('-q: no debugging output')
|
||||
print('Input files (default stdin) are split in paragraphs')
|
||||
print('separated blank lines and each paragraph is split')
|
||||
print('in words by whitespace, then reconcatenated with')
|
||||
print('exactly one space separating words.')
|
||||
print('Output consists of paragraphs separated by blank')
|
||||
print('lines, where lines are no longer than 72 characters.')
|
||||
histsize = 2
|
||||
do_words = 0
|
||||
debug = 1
|
||||
@ -65,33 +65,33 @@ def test():
|
||||
if filename == '-':
|
||||
f = sys.stdin
|
||||
if f.isatty():
|
||||
print 'Sorry, need stdin from file'
|
||||
print('Sorry, need stdin from file')
|
||||
continue
|
||||
else:
|
||||
f = open(filename, 'r')
|
||||
if debug: print 'processing', filename, '...'
|
||||
if debug: print('processing', filename, '...')
|
||||
text = f.read()
|
||||
f.close()
|
||||
paralist = string.splitfields(text, '\n\n')
|
||||
for para in paralist:
|
||||
if debug > 1: print 'feeding ...'
|
||||
if debug > 1: print('feeding ...')
|
||||
words = string.split(para)
|
||||
if words:
|
||||
if do_words: data = tuple(words)
|
||||
else: data = string.joinfields(words, ' ')
|
||||
m.put(data)
|
||||
except KeyboardInterrupt:
|
||||
print 'Interrupted -- continue with data read so far'
|
||||
print('Interrupted -- continue with data read so far')
|
||||
if not m.trans:
|
||||
print 'No valid input files'
|
||||
print('No valid input files')
|
||||
return
|
||||
if debug: print 'done.'
|
||||
if debug: print('done.')
|
||||
if debug > 1:
|
||||
for key in m.trans.keys():
|
||||
for key in list(m.trans.keys()):
|
||||
if key is None or len(key) < histsize:
|
||||
print repr(key), m.trans[key]
|
||||
if histsize == 0: print repr(''), m.trans['']
|
||||
print
|
||||
print(repr(key), m.trans[key])
|
||||
if histsize == 0: print(repr(''), m.trans[''])
|
||||
print()
|
||||
while 1:
|
||||
data = m.get()
|
||||
if do_words: words = data
|
||||
@ -100,12 +100,12 @@ def test():
|
||||
limit = 72
|
||||
for w in words:
|
||||
if n + len(w) > limit:
|
||||
print
|
||||
print()
|
||||
n = 0
|
||||
print w,
|
||||
print(w, end=' ')
|
||||
n = n + len(w) + 1
|
||||
print
|
||||
print
|
||||
print()
|
||||
print()
|
||||
|
||||
def tuple(list):
|
||||
if len(list) == 0: return ()
|
||||
|
@ -91,19 +91,19 @@ def message(f, delimiter = ''):
|
||||
sys.stderr.write(
|
||||
'Unparseable date: %r\n' % (m.getheader('Date'),))
|
||||
t = os.fstat(f.fileno())[stat.ST_MTIME]
|
||||
print 'From', email, time.ctime(t)
|
||||
print('From', email, time.ctime(t))
|
||||
# Copy RFC822 header
|
||||
for line in m.headers:
|
||||
print line,
|
||||
print(line, end=' ')
|
||||
# Invent Message-ID header if none is present
|
||||
if not m.has_key('message-id'):
|
||||
if 'message-id' not in m:
|
||||
global counter
|
||||
counter = counter + 1
|
||||
msgid = "<%s.%d>" % (hex(t), counter)
|
||||
sys.stderr.write("Adding Message-ID %s (From %s)\n" %
|
||||
(msgid, email))
|
||||
print "Message-ID:", msgid
|
||||
print
|
||||
print("Message-ID:", msgid)
|
||||
print()
|
||||
# Copy body
|
||||
while 1:
|
||||
line = f.readline()
|
||||
@ -115,9 +115,9 @@ def message(f, delimiter = ''):
|
||||
break
|
||||
if line[:5] == 'From ':
|
||||
line = '>' + line
|
||||
print line,
|
||||
print(line, end=' ')
|
||||
# Print trailing newline
|
||||
print
|
||||
print()
|
||||
return sts
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -12,13 +12,13 @@ def main():
|
||||
rcstree = 'RCStree'
|
||||
rcs = 'RCS'
|
||||
if os.path.islink(rcs):
|
||||
print '%r is a symlink to %r' % (rcs, os.readlink(rcs))
|
||||
print('%r is a symlink to %r' % (rcs, os.readlink(rcs)))
|
||||
return
|
||||
if os.path.isdir(rcs):
|
||||
print '%r is an ordinary directory' % (rcs,)
|
||||
print('%r is an ordinary directory' % (rcs,))
|
||||
return
|
||||
if os.path.exists(rcs):
|
||||
print '%r is a file?!?!' % (rcs,)
|
||||
print('%r is a file?!?!' % (rcs,))
|
||||
return
|
||||
#
|
||||
p = os.getcwd()
|
||||
@ -34,7 +34,7 @@ def main():
|
||||
head, tail = os.path.split(p)
|
||||
#print 'head = %r; tail = %r' % (head, tail)
|
||||
if not tail:
|
||||
print 'Sorry, no ancestor dir contains %r' % (rcstree,)
|
||||
print('Sorry, no ancestor dir contains %r' % (rcstree,))
|
||||
return
|
||||
p = head
|
||||
up = os.path.join(os.pardir, up)
|
||||
@ -44,18 +44,18 @@ def main():
|
||||
there = os.path.join(there, down)
|
||||
there = os.path.join(there, rcs)
|
||||
if os.path.isdir(there):
|
||||
print '%r already exists' % (there, )
|
||||
print('%r already exists' % (there, ))
|
||||
else:
|
||||
print 'making %r' % (there,)
|
||||
print('making %r' % (there,))
|
||||
makedirs(there)
|
||||
print 'making symlink %r -> %r' % (rcs, there)
|
||||
print('making symlink %r -> %r' % (rcs, there))
|
||||
os.symlink(there, rcs)
|
||||
|
||||
def makedirs(p):
|
||||
if not os.path.isdir(p):
|
||||
head, tail = os.path.split(p)
|
||||
makedirs(head)
|
||||
os.mkdir(p, 0777)
|
||||
os.mkdir(p, 0o777)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -98,7 +98,7 @@ sublistsize = 4
|
||||
for dir in os.curdir, os.environ['HOME']:
|
||||
rcfile = os.path.join(dir, '.newslistrc.py')
|
||||
if os.path.exists(rcfile):
|
||||
print rcfile
|
||||
print(rcfile)
|
||||
execfile(rcfile)
|
||||
break
|
||||
|
||||
@ -106,7 +106,7 @@ from nntplib import NNTP
|
||||
from stat import *
|
||||
|
||||
rcsrev = '$Revision$'
|
||||
rcsrev = string.join(filter(lambda s: '$' not in s, string.split(rcsrev)))
|
||||
rcsrev = string.join([s for s in string.split(rcsrev) if '$' not in s])
|
||||
desc = {}
|
||||
|
||||
# Make (possibly) relative filenames into absolute ones
|
||||
@ -118,7 +118,7 @@ page = os.path.join(topdir,pagedir)
|
||||
|
||||
# Addtotree creates/augments a tree from a list of group names
|
||||
def addtotree(tree, groups):
|
||||
print 'Updating tree...'
|
||||
print('Updating tree...')
|
||||
for i in groups:
|
||||
parts = string.splitfields(i,'.')
|
||||
makeleaf(tree, parts)
|
||||
@ -128,7 +128,7 @@ def makeleaf(tree,path):
|
||||
j = path[0]
|
||||
l = len(path)
|
||||
|
||||
if not tree.has_key(j):
|
||||
if j not in tree:
|
||||
tree[j] = {}
|
||||
if l == 1:
|
||||
tree[j]['.'] = '.'
|
||||
@ -172,7 +172,7 @@ def printtree(f, tree, indent, p):
|
||||
createpage(p[1:], tree, p)
|
||||
return
|
||||
|
||||
kl = tree.keys()
|
||||
kl = list(tree.keys())
|
||||
|
||||
if l > 1:
|
||||
kl.sort()
|
||||
@ -188,7 +188,7 @@ def printtree(f, tree, indent, p):
|
||||
if i == '.':
|
||||
# Output a newsgroup
|
||||
f.write('<LI><A HREF="news:' + p[1:] + '">'+ p[1:] + '</A> ')
|
||||
if desc.has_key(p[1:]):
|
||||
if p[1:] in desc:
|
||||
f.write(' <I>'+desc[p[1:]]+'</I>\n')
|
||||
else:
|
||||
f.write('\n')
|
||||
@ -213,9 +213,9 @@ def readdesc(descfile):
|
||||
|
||||
try:
|
||||
d = open(descfile, 'r')
|
||||
print 'Reading descriptions...'
|
||||
print('Reading descriptions...')
|
||||
except (IOError):
|
||||
print 'Failed to open description file ' + descfile
|
||||
print('Failed to open description file ' + descfile)
|
||||
return
|
||||
l = d.readline()
|
||||
while l != '':
|
||||
@ -234,29 +234,29 @@ def readdesc(descfile):
|
||||
|
||||
def checkopdir(pagedir):
|
||||
if not os.path.isdir(pagedir):
|
||||
print 'Directory '+pagedir+' does not exist.'
|
||||
print 'Shall I create it for you? (y/n)'
|
||||
print('Directory '+pagedir+' does not exist.')
|
||||
print('Shall I create it for you? (y/n)')
|
||||
if sys.stdin.readline()[0] == 'y':
|
||||
try:
|
||||
os.mkdir(pagedir,0777)
|
||||
os.mkdir(pagedir,0o777)
|
||||
except:
|
||||
print 'Sorry - failed!'
|
||||
print('Sorry - failed!')
|
||||
sys.exit(1)
|
||||
else:
|
||||
print 'OK. Exiting.'
|
||||
print('OK. Exiting.')
|
||||
sys.exit(1)
|
||||
|
||||
# Read and write current local tree ----------------------------------
|
||||
|
||||
def readlocallist(treefile):
|
||||
print 'Reading current local group list...'
|
||||
print('Reading current local group list...')
|
||||
tree = {}
|
||||
try:
|
||||
treetime = time.localtime(os.stat(treefile)[ST_MTIME])
|
||||
except:
|
||||
print '\n*** Failed to open local group cache '+treefile
|
||||
print 'If this is the first time you have run newslist, then'
|
||||
print 'use the -a option to create it.'
|
||||
print('\n*** Failed to open local group cache '+treefile)
|
||||
print('If this is the first time you have run newslist, then')
|
||||
print('use the -a option to create it.')
|
||||
sys.exit(1)
|
||||
treedate = '%02d%02d%02d' % (treetime[0] % 100 ,treetime[1], treetime[2])
|
||||
try:
|
||||
@ -264,7 +264,7 @@ def readlocallist(treefile):
|
||||
tree = marshal.load(dump)
|
||||
dump.close()
|
||||
except (IOError):
|
||||
print 'Cannot open local group list ' + treefile
|
||||
print('Cannot open local group list ' + treefile)
|
||||
return (tree, treedate)
|
||||
|
||||
def writelocallist(treefile, tree):
|
||||
@ -272,45 +272,45 @@ def writelocallist(treefile, tree):
|
||||
dump = open(treefile,'w')
|
||||
groups = marshal.dump(tree,dump)
|
||||
dump.close()
|
||||
print 'Saved list to '+treefile+'\n'
|
||||
print('Saved list to '+treefile+'\n')
|
||||
except:
|
||||
print 'Sorry - failed to write to local group cache '+treefile
|
||||
print 'Does it (or its directory) have the correct permissions?'
|
||||
print('Sorry - failed to write to local group cache '+treefile)
|
||||
print('Does it (or its directory) have the correct permissions?')
|
||||
sys.exit(1)
|
||||
|
||||
# Return list of all groups on server -----------------------------
|
||||
|
||||
def getallgroups(server):
|
||||
print 'Getting list of all groups...'
|
||||
print('Getting list of all groups...')
|
||||
treedate='010101'
|
||||
info = server.list()[1]
|
||||
groups = []
|
||||
print 'Processing...'
|
||||
print('Processing...')
|
||||
if skipempty:
|
||||
print '\nIgnoring following empty groups:'
|
||||
print('\nIgnoring following empty groups:')
|
||||
for i in info:
|
||||
grpname = string.split(i[0])[0]
|
||||
if skipempty and string.atoi(i[1]) < string.atoi(i[2]):
|
||||
print grpname+' ',
|
||||
print(grpname+' ', end=' ')
|
||||
else:
|
||||
groups.append(grpname)
|
||||
print '\n'
|
||||
print('\n')
|
||||
if skipempty:
|
||||
print '(End of empty groups)'
|
||||
print('(End of empty groups)')
|
||||
return groups
|
||||
|
||||
# Return list of new groups on server -----------------------------
|
||||
|
||||
def getnewgroups(server, treedate):
|
||||
print 'Getting list of new groups since start of '+treedate+'...',
|
||||
print('Getting list of new groups since start of '+treedate+'...', end=' ')
|
||||
info = server.newgroups(treedate,'000001')[1]
|
||||
print 'got %d.' % len(info)
|
||||
print 'Processing...',
|
||||
print('got %d.' % len(info))
|
||||
print('Processing...', end=' ')
|
||||
groups = []
|
||||
for i in info:
|
||||
grpname = string.split(i)[0]
|
||||
groups.append(grpname)
|
||||
print 'Done'
|
||||
print('Done')
|
||||
return groups
|
||||
|
||||
# Now the main program --------------------------------------------
|
||||
@ -324,15 +324,15 @@ def main():
|
||||
checkopdir(pagedir);
|
||||
|
||||
try:
|
||||
print 'Connecting to '+newshost+'...'
|
||||
print('Connecting to '+newshost+'...')
|
||||
if sys.version[0] == '0':
|
||||
s = NNTP.init(newshost)
|
||||
else:
|
||||
s = NNTP(newshost)
|
||||
connected = 1
|
||||
except (nntplib.error_temp, nntplib.error_perm) as x:
|
||||
print 'Error connecting to host:', x
|
||||
print 'I\'ll try to use just the local list.'
|
||||
print('Error connecting to host:', x)
|
||||
print('I\'ll try to use just the local list.')
|
||||
connected = 0
|
||||
|
||||
# If -a is specified, read the full list of groups from server
|
||||
@ -355,9 +355,9 @@ def main():
|
||||
# Read group descriptions
|
||||
readdesc(descfile)
|
||||
|
||||
print 'Creating pages...'
|
||||
print('Creating pages...')
|
||||
createpage(rootpage, tree, '')
|
||||
print 'Done'
|
||||
print('Done')
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -11,16 +11,16 @@
|
||||
import sys
|
||||
|
||||
def main():
|
||||
k, a, b, a1, b1 = 2L, 4L, 1L, 12L, 4L
|
||||
k, a, b, a1, b1 = 2, 4, 1, 12, 4
|
||||
while 1:
|
||||
# Next approximation
|
||||
p, q, k = k*k, 2L*k+1L, k+1L
|
||||
p, q, k = k*k, 2*k+1, k+1
|
||||
a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
|
||||
# Print common digits
|
||||
d, d1 = a/b, a1/b1
|
||||
while d == d1:
|
||||
output(d)
|
||||
a, a1 = 10L*(a%b), 10L*(a1%b1)
|
||||
a, a1 = 10*(a%b), 10*(a1%b1)
|
||||
d, d1 = a/b, a1/b1
|
||||
|
||||
def output(d):
|
||||
|
@ -58,7 +58,7 @@ for option, optarg in optlist:
|
||||
NFLAG = 1
|
||||
PFLAG = 1
|
||||
else:
|
||||
print option, 'not recognized???'
|
||||
print(option, 'not recognized???')
|
||||
|
||||
if not ARGS: ARGS.append('-')
|
||||
|
||||
|
@ -12,7 +12,7 @@ def main():
|
||||
primes(min, max)
|
||||
|
||||
def primes(min, max):
|
||||
if 2 >= min: print 2
|
||||
if 2 >= min: print(2)
|
||||
primes = [2]
|
||||
i = 3
|
||||
while i <= max:
|
||||
@ -20,7 +20,7 @@ def primes(min, max):
|
||||
if i%p == 0 or p*p > i: break
|
||||
if i%p != 0:
|
||||
primes.append(i)
|
||||
if i >= min: print i
|
||||
if i >= min: print(i)
|
||||
i = i+2
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -56,16 +56,16 @@ class Queens:
|
||||
self.nfound = self.nfound + 1
|
||||
if self.silent:
|
||||
return
|
||||
print '+-' + '--'*self.n + '+'
|
||||
print('+-' + '--'*self.n + '+')
|
||||
for y in range(self.n-1, -1, -1):
|
||||
print '|',
|
||||
print('|', end=' ')
|
||||
for x in range(self.n):
|
||||
if self.y[x] == y:
|
||||
print "Q",
|
||||
print("Q", end=' ')
|
||||
else:
|
||||
print ".",
|
||||
print '|'
|
||||
print '+-' + '--'*self.n + '+'
|
||||
print(".", end=' ')
|
||||
print('|')
|
||||
print('+-' + '--'*self.n + '+')
|
||||
|
||||
def main():
|
||||
import sys
|
||||
@ -79,7 +79,7 @@ def main():
|
||||
q = Queens(n)
|
||||
q.silent = silent
|
||||
q.solve()
|
||||
print "Found", q.nfound, "solutions."
|
||||
print("Found", q.nfound, "solutions.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
@ -17,7 +17,7 @@ def read(fd):
|
||||
shell = 'sh'
|
||||
filename = 'typescript'
|
||||
mode = 'w'
|
||||
if os.environ.has_key('SHELL'):
|
||||
if 'SHELL' in os.environ:
|
||||
shell = os.environ['SHELL']
|
||||
if '-a' in sys.argv:
|
||||
mode = 'a'
|
||||
|
@ -21,69 +21,70 @@ def main():
|
||||
if sys.argv[1:]:
|
||||
year = int(sys.argv[1])
|
||||
else:
|
||||
year = int(raw_input('In which year were you born? '))
|
||||
year = int(input('In which year were you born? '))
|
||||
if 0<=year<100:
|
||||
print "I'll assume that by", year,
|
||||
print("I'll assume that by", year, end=' ')
|
||||
year = year + 1900
|
||||
print 'you mean', year, 'and not the early Christian era'
|
||||
print('you mean', year, 'and not the early Christian era')
|
||||
elif not (1850<=year<=2002):
|
||||
print "It's hard to believe you were born in", year
|
||||
print("It's hard to believe you were born in", year)
|
||||
return
|
||||
#
|
||||
if sys.argv[2:]:
|
||||
month = int(sys.argv[2])
|
||||
else:
|
||||
month = int(raw_input('And in which month? (1-12) '))
|
||||
month = int(input('And in which month? (1-12) '))
|
||||
if not (1<=month<=12):
|
||||
print 'There is no month numbered', month
|
||||
print('There is no month numbered', month)
|
||||
return
|
||||
#
|
||||
if sys.argv[3:]:
|
||||
day = int(sys.argv[3])
|
||||
else:
|
||||
day = int(raw_input('And on what day of that month? (1-31) '))
|
||||
day = int(input('And on what day of that month? (1-31) '))
|
||||
if month == 2 and calendar.isleap(year):
|
||||
maxday = 29
|
||||
else:
|
||||
maxday = calendar.mdays[month]
|
||||
if not (1<=day<=maxday):
|
||||
print 'There are no', day, 'days in that month!'
|
||||
print('There are no', day, 'days in that month!')
|
||||
return
|
||||
#
|
||||
bdaytuple = (year, month, day)
|
||||
bdaydate = mkdate(bdaytuple)
|
||||
print 'You were born on', format(bdaytuple)
|
||||
print('You were born on', format(bdaytuple))
|
||||
#
|
||||
todaytuple = time.localtime()[:3]
|
||||
todaydate = mkdate(todaytuple)
|
||||
print 'Today is', format(todaytuple)
|
||||
print('Today is', format(todaytuple))
|
||||
#
|
||||
if bdaytuple > todaytuple:
|
||||
print 'You are a time traveler. Go back to the future!'
|
||||
print('You are a time traveler. Go back to the future!')
|
||||
return
|
||||
#
|
||||
if bdaytuple == todaytuple:
|
||||
print 'You were born today. Have a nice life!'
|
||||
print('You were born today. Have a nice life!')
|
||||
return
|
||||
#
|
||||
days = todaydate - bdaydate
|
||||
print 'You have lived', days, 'days'
|
||||
print('You have lived', days, 'days')
|
||||
#
|
||||
age = 0
|
||||
for y in range(year, todaytuple[0] + 1):
|
||||
if bdaytuple < (y, month, day) <= todaytuple:
|
||||
age = age + 1
|
||||
#
|
||||
print 'You are', age, 'years old'
|
||||
print('You are', age, 'years old')
|
||||
#
|
||||
if todaytuple[1:] == bdaytuple[1:]:
|
||||
print 'Congratulations! Today is your', nth(age), 'birthday'
|
||||
print 'Yesterday was your',
|
||||
print('Congratulations! Today is your', nth(age), 'birthday')
|
||||
print('Yesterday was your', end=' ')
|
||||
else:
|
||||
print 'Today is your',
|
||||
print nth(days - age), 'unbirthday'
|
||||
print('Today is your', end=' ')
|
||||
print(nth(days - age), 'unbirthday')
|
||||
|
||||
def format((year, month, day)):
|
||||
def format(xxx_todo_changeme):
|
||||
(year, month, day) = xxx_todo_changeme
|
||||
return '%d %s %d' % (day, calendar.month_name[month], year)
|
||||
|
||||
def nth(n):
|
||||
@ -92,10 +93,11 @@ def nth(n):
|
||||
if n == 3: return '3rd'
|
||||
return '%dth' % n
|
||||
|
||||
def mkdate((year, month, day)):
|
||||
def mkdate(xxx_todo_changeme1):
|
||||
# Januari 1st, in 0 A.D. is arbitrarily defined to be day 1,
|
||||
# even though that day never actually existed and the calendar
|
||||
# was different then...
|
||||
(year, month, day) = xxx_todo_changeme1
|
||||
days = year*365 # years, roughly
|
||||
days = days + (year+3)/4 # plus leap years, roughly
|
||||
days = days - (year+99)/100 # minus non-leap years every century
|
||||
|
@ -20,22 +20,22 @@ class FileObj:
|
||||
try:
|
||||
self.lines = open(filename, 'r').readlines()
|
||||
except IOError as msg:
|
||||
print '*** Can\'t open "%s":' % filename, msg
|
||||
print('*** Can\'t open "%s":' % filename, msg)
|
||||
self.lines = None
|
||||
return
|
||||
print 'diffing', self.filename
|
||||
print('diffing', self.filename)
|
||||
|
||||
def finish(self):
|
||||
if not self.changed:
|
||||
print 'no changes to', self.filename
|
||||
print('no changes to', self.filename)
|
||||
return
|
||||
try:
|
||||
os.rename(self.filename, self.filename + '~')
|
||||
fp = open(self.filename, 'w')
|
||||
except (os.error, IOError) as msg:
|
||||
print '*** Can\'t rewrite "%s":' % self.filename, msg
|
||||
print('*** Can\'t rewrite "%s":' % self.filename, msg)
|
||||
return
|
||||
print 'writing', self.filename
|
||||
print('writing', self.filename)
|
||||
for line in self.lines:
|
||||
fp.write(line)
|
||||
fp.close()
|
||||
@ -43,32 +43,32 @@ class FileObj:
|
||||
|
||||
def process(self, lineno, rest):
|
||||
if self.lines is None:
|
||||
print '(not processed): %s:%s:%s' % (
|
||||
self.filename, lineno, rest),
|
||||
print('(not processed): %s:%s:%s' % (
|
||||
self.filename, lineno, rest), end=' ')
|
||||
return
|
||||
i = eval(lineno) - 1
|
||||
if not 0 <= i < len(self.lines):
|
||||
print '*** Line number out of range: %s:%s:%s' % (
|
||||
self.filename, lineno, rest),
|
||||
print('*** Line number out of range: %s:%s:%s' % (
|
||||
self.filename, lineno, rest), end=' ')
|
||||
return
|
||||
if self.lines[i] == rest:
|
||||
print '(no change): %s:%s:%s' % (
|
||||
self.filename, lineno, rest),
|
||||
print('(no change): %s:%s:%s' % (
|
||||
self.filename, lineno, rest), end=' ')
|
||||
return
|
||||
if not self.changed:
|
||||
self.changed = 1
|
||||
print '%sc%s' % (lineno, lineno)
|
||||
print '<', self.lines[i],
|
||||
print '---'
|
||||
print('%sc%s' % (lineno, lineno))
|
||||
print('<', self.lines[i], end=' ')
|
||||
print('---')
|
||||
self.lines[i] = rest
|
||||
print '>', self.lines[i],
|
||||
print('>', self.lines[i], end=' ')
|
||||
|
||||
def main():
|
||||
if sys.argv[1:]:
|
||||
try:
|
||||
fp = open(sys.argv[1], 'r')
|
||||
except IOError as msg:
|
||||
print 'Can\'t open "%s":' % sys.argv[1], msg
|
||||
print('Can\'t open "%s":' % sys.argv[1], msg)
|
||||
sys.exit(1)
|
||||
else:
|
||||
fp = sys.stdin
|
||||
@ -80,7 +80,7 @@ def main():
|
||||
break
|
||||
n = prog.match(line)
|
||||
if n < 0:
|
||||
print 'Funny line:', line,
|
||||
print('Funny line:', line, end=' ')
|
||||
continue
|
||||
filename, lineno = prog.group(1, 2)
|
||||
if not curfile or filename != curfile.filename:
|
||||
|
@ -21,7 +21,7 @@ def main():
|
||||
s.bind(('', port))
|
||||
s.listen(1)
|
||||
conn, (remotehost, remoteport) = s.accept()
|
||||
print 'connected by', remotehost, remoteport
|
||||
print('connected by', remotehost, remoteport)
|
||||
while 1:
|
||||
data = conn.recv(BUFSIZE)
|
||||
if not data:
|
||||
|
@ -107,13 +107,13 @@ def sendportcmd(s, f, port):
|
||||
def getreply(f):
|
||||
line = f.readline()
|
||||
if not line: return 'EOF'
|
||||
print line,
|
||||
print(line, end=' ')
|
||||
code = line[:3]
|
||||
if line[3:4] == '-':
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line: break # Really an error
|
||||
print line,
|
||||
print(line, end=' ')
|
||||
if line[:3] == code and line[3:4] != '-': break
|
||||
return code
|
||||
|
||||
@ -121,14 +121,14 @@ def getreply(f):
|
||||
# Get the data from the data connection.
|
||||
#
|
||||
def getdata(r):
|
||||
print '(accepting data connection)'
|
||||
print('(accepting data connection)')
|
||||
conn, host = r.accept()
|
||||
print '(data connection accepted)'
|
||||
print('(data connection accepted)')
|
||||
while 1:
|
||||
data = conn.recv(BUFSIZE)
|
||||
if not data: break
|
||||
sys.stdout.write(data)
|
||||
print '(end of data connection)'
|
||||
print('(end of data connection)')
|
||||
|
||||
def raw_input(prompt):
|
||||
sys.stdout.write(prompt)
|
||||
@ -140,7 +140,7 @@ def raw_input(prompt):
|
||||
def getcommand():
|
||||
try:
|
||||
while 1:
|
||||
line = raw_input('ftp.py> ')
|
||||
line = input('ftp.py> ')
|
||||
if line: return line
|
||||
except EOFError:
|
||||
return ''
|
||||
|
@ -60,7 +60,7 @@ def get_menu(selector, host, port):
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line:
|
||||
print '(Unexpected EOF from server)'
|
||||
print('(Unexpected EOF from server)')
|
||||
break
|
||||
if line[-2:] == CRLF:
|
||||
line = line[:-2]
|
||||
@ -69,15 +69,15 @@ def get_menu(selector, host, port):
|
||||
if line == '.':
|
||||
break
|
||||
if not line:
|
||||
print '(Empty line from server)'
|
||||
print('(Empty line from server)')
|
||||
continue
|
||||
typechar = line[0]
|
||||
parts = line[1:].split(TAB)
|
||||
if len(parts) < 4:
|
||||
print '(Bad line from server: %r)' % (line,)
|
||||
print('(Bad line from server: %r)' % (line,))
|
||||
continue
|
||||
if len(parts) > 4:
|
||||
print '(Extra info from server: %r)' % (parts[4:],)
|
||||
print('(Extra info from server: %r)' % (parts[4:],))
|
||||
parts.insert(0, typechar)
|
||||
list.append(parts)
|
||||
f.close()
|
||||
@ -95,7 +95,7 @@ def get_alt_textfile(selector, host, port, func):
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line:
|
||||
print '(Unexpected EOF from server)'
|
||||
print('(Unexpected EOF from server)')
|
||||
break
|
||||
if line[-2:] == CRLF:
|
||||
line = line[:-2]
|
||||
@ -139,61 +139,61 @@ def browser(*args):
|
||||
if n > 2 and args[2]:
|
||||
port = args[2]
|
||||
if n > 3:
|
||||
raise RuntimeError, 'too many args'
|
||||
raise RuntimeError('too many args')
|
||||
try:
|
||||
browse_menu(selector, host, port)
|
||||
except socket.error as msg:
|
||||
print 'Socket error:', msg
|
||||
print('Socket error:', msg)
|
||||
sys.exit(1)
|
||||
except KeyboardInterrupt:
|
||||
print '\n[Goodbye]'
|
||||
print('\n[Goodbye]')
|
||||
|
||||
# Browse a menu
|
||||
def browse_menu(selector, host, port):
|
||||
list = get_menu(selector, host, port)
|
||||
while 1:
|
||||
print '----- MENU -----'
|
||||
print 'Selector:', repr(selector)
|
||||
print 'Host:', host, ' Port:', port
|
||||
print
|
||||
print('----- MENU -----')
|
||||
print('Selector:', repr(selector))
|
||||
print('Host:', host, ' Port:', port)
|
||||
print()
|
||||
for i in range(len(list)):
|
||||
item = list[i]
|
||||
typechar, description = item[0], item[1]
|
||||
print repr(i+1).rjust(3) + ':', description,
|
||||
if typename.has_key(typechar):
|
||||
print typename[typechar]
|
||||
print(repr(i+1).rjust(3) + ':', description, end=' ')
|
||||
if typechar in typename:
|
||||
print(typename[typechar])
|
||||
else:
|
||||
print '<TYPE=' + repr(typechar) + '>'
|
||||
print
|
||||
print('<TYPE=' + repr(typechar) + '>')
|
||||
print()
|
||||
while 1:
|
||||
try:
|
||||
str = raw_input('Choice [CR == up a level]: ')
|
||||
str = input('Choice [CR == up a level]: ')
|
||||
except EOFError:
|
||||
print
|
||||
print()
|
||||
return
|
||||
if not str:
|
||||
return
|
||||
try:
|
||||
choice = int(str)
|
||||
except ValueError:
|
||||
print 'Choice must be a number; try again:'
|
||||
print('Choice must be a number; try again:')
|
||||
continue
|
||||
if not 0 < choice <= len(list):
|
||||
print 'Choice out of range; try again:'
|
||||
print('Choice out of range; try again:')
|
||||
continue
|
||||
break
|
||||
item = list[choice-1]
|
||||
typechar = item[0]
|
||||
[i_selector, i_host, i_port] = item[2:5]
|
||||
if typebrowser.has_key(typechar):
|
||||
if typechar in typebrowser:
|
||||
browserfunc = typebrowser[typechar]
|
||||
try:
|
||||
browserfunc(i_selector, i_host, i_port)
|
||||
except (IOError, socket.error):
|
||||
t, v, tb = sys.exc_info()
|
||||
print '***', t, ':', v
|
||||
print('***', t, ':', v)
|
||||
else:
|
||||
print 'Unsupported object type'
|
||||
print('Unsupported object type')
|
||||
|
||||
# Browse a text file
|
||||
def browse_textfile(selector, host, port):
|
||||
@ -203,7 +203,7 @@ def browse_textfile(selector, host, port):
|
||||
x = SaveLines(p)
|
||||
get_alt_textfile(selector, host, port, x.writeln)
|
||||
except IOError as msg:
|
||||
print 'IOError:', msg
|
||||
print('IOError:', msg)
|
||||
if x:
|
||||
x.close()
|
||||
f = open_savefile()
|
||||
@ -212,9 +212,9 @@ def browse_textfile(selector, host, port):
|
||||
x = SaveLines(f)
|
||||
try:
|
||||
get_alt_textfile(selector, host, port, x.writeln)
|
||||
print 'Done.'
|
||||
print('Done.')
|
||||
except IOError as msg:
|
||||
print 'IOError:', msg
|
||||
print('IOError:', msg)
|
||||
x.close()
|
||||
|
||||
def raw_input(prompt):
|
||||
@ -225,32 +225,32 @@ def raw_input(prompt):
|
||||
# Browse a search index
|
||||
def browse_search(selector, host, port):
|
||||
while 1:
|
||||
print '----- SEARCH -----'
|
||||
print 'Selector:', repr(selector)
|
||||
print 'Host:', host, ' Port:', port
|
||||
print
|
||||
print('----- SEARCH -----')
|
||||
print('Selector:', repr(selector))
|
||||
print('Host:', host, ' Port:', port)
|
||||
print()
|
||||
try:
|
||||
query = raw_input('Query [CR == up a level]: ')
|
||||
query = input('Query [CR == up a level]: ')
|
||||
except EOFError:
|
||||
print
|
||||
print()
|
||||
break
|
||||
query = query.strip()
|
||||
if not query:
|
||||
break
|
||||
if '\t' in query:
|
||||
print 'Sorry, queries cannot contain tabs'
|
||||
print('Sorry, queries cannot contain tabs')
|
||||
continue
|
||||
browse_menu(selector + TAB + query, host, port)
|
||||
|
||||
# "Browse" telnet-based information, i.e. open a telnet session
|
||||
def browse_telnet(selector, host, port):
|
||||
if selector:
|
||||
print 'Log in as', repr(selector)
|
||||
print('Log in as', repr(selector))
|
||||
if type(port) != type(''):
|
||||
port = repr(port)
|
||||
sts = os.system('set -x; exec telnet ' + host + ' ' + port)
|
||||
if sts:
|
||||
print 'Exit status:', sts
|
||||
print('Exit status:', sts)
|
||||
|
||||
# "Browse" a binary file, i.e. save it to a file
|
||||
def browse_binary(selector, host, port):
|
||||
@ -280,7 +280,7 @@ class SaveLines:
|
||||
def close(self):
|
||||
sts = self.f.close()
|
||||
if sts:
|
||||
print 'Exit status:', sts
|
||||
print('Exit status:', sts)
|
||||
|
||||
# Class used to save data while showing progress
|
||||
class SaveWithProgress:
|
||||
@ -291,18 +291,18 @@ class SaveWithProgress:
|
||||
sys.stdout.flush()
|
||||
self.f.write(data)
|
||||
def close(self):
|
||||
print
|
||||
print()
|
||||
sts = self.f.close()
|
||||
if sts:
|
||||
print 'Exit status:', sts
|
||||
print('Exit status:', sts)
|
||||
|
||||
# Ask for and open a save file, or return None if not to save
|
||||
def open_savefile():
|
||||
try:
|
||||
savefile = raw_input( \
|
||||
savefile = input( \
|
||||
'Save as file [CR == don\'t save; |pipeline or ~user/... OK]: ')
|
||||
except EOFError:
|
||||
print
|
||||
print()
|
||||
return None
|
||||
savefile = savefile.strip()
|
||||
if not savefile:
|
||||
@ -312,24 +312,24 @@ def open_savefile():
|
||||
try:
|
||||
p = os.popen(cmd, 'w')
|
||||
except IOError as msg:
|
||||
print repr(cmd), ':', msg
|
||||
print(repr(cmd), ':', msg)
|
||||
return None
|
||||
print 'Piping through', repr(cmd), '...'
|
||||
print('Piping through', repr(cmd), '...')
|
||||
return p
|
||||
if savefile[0] == '~':
|
||||
savefile = os.path.expanduser(savefile)
|
||||
try:
|
||||
f = open(savefile, 'w')
|
||||
except IOError as msg:
|
||||
print repr(savefile), ':', msg
|
||||
print(repr(savefile), ':', msg)
|
||||
return None
|
||||
print 'Saving to', repr(savefile), '...'
|
||||
print('Saving to', repr(savefile), '...')
|
||||
return f
|
||||
|
||||
# Test program
|
||||
def test():
|
||||
if sys.argv[4:]:
|
||||
print 'usage: gopher [ [selector] host [port] ]'
|
||||
print('usage: gopher [ [selector] host [port] ]')
|
||||
sys.exit(2)
|
||||
elif sys.argv[3:]:
|
||||
browser(sys.argv[1], sys.argv[2], sys.argv[3])
|
||||
|
@ -52,7 +52,7 @@ def receiver():
|
||||
while 1:
|
||||
data, sender = s.recvfrom(1500)
|
||||
while data[-1:] == '\0': data = data[:-1] # Strip trailing \0's
|
||||
print sender, ':', repr(data)
|
||||
print(sender, ':', repr(data))
|
||||
|
||||
|
||||
# Open a UDP socket, bind it to a port and select a multicast group
|
||||
@ -76,7 +76,7 @@ def openmcastsock(group, port):
|
||||
group = gethostbyname(group)
|
||||
#
|
||||
# Construct binary group address
|
||||
bytes = map(int, string.split(group, "."))
|
||||
bytes = list(map(int, string.split(group, ".")))
|
||||
grpaddr = 0
|
||||
for byte in bytes: grpaddr = (grpaddr << 8) | byte
|
||||
#
|
||||
|
@ -12,7 +12,7 @@ BUFSIZE = 1024
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 3:
|
||||
print "usage: rpython host command"
|
||||
print("usage: rpython host command")
|
||||
sys.exit(2)
|
||||
host = sys.argv[1]
|
||||
port = PORT
|
||||
@ -30,6 +30,6 @@ def main():
|
||||
data = s.recv(BUFSIZE)
|
||||
if not data: break
|
||||
reply = reply + data
|
||||
print reply,
|
||||
print(reply, end=' ')
|
||||
|
||||
main()
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
import sys
|
||||
from socket import *
|
||||
import StringIO
|
||||
import io
|
||||
import traceback
|
||||
|
||||
PORT = 4127
|
||||
@ -23,7 +23,7 @@ def main():
|
||||
s.listen(1)
|
||||
while 1:
|
||||
conn, (remotehost, remoteport) = s.accept()
|
||||
print 'connected by', remotehost, remoteport
|
||||
print('connected by', remotehost, remoteport)
|
||||
request = ''
|
||||
while 1:
|
||||
data = conn.recv(BUFSIZE)
|
||||
@ -37,12 +37,12 @@ def main():
|
||||
def execute(request):
|
||||
stdout = sys.stdout
|
||||
stderr = sys.stderr
|
||||
sys.stdout = sys.stderr = fakefile = StringIO.StringIO()
|
||||
sys.stdout = sys.stderr = fakefile = io.StringIO()
|
||||
try:
|
||||
try:
|
||||
exec(request, {}, {})
|
||||
except:
|
||||
print
|
||||
print()
|
||||
traceback.print_exc(100)
|
||||
finally:
|
||||
sys.stderr = stderr
|
||||
|
@ -77,7 +77,7 @@ def main():
|
||||
cleandata = ''
|
||||
for c in data:
|
||||
if opt:
|
||||
print ord(c)
|
||||
print(ord(c))
|
||||
s.send(opt + c)
|
||||
opt = ''
|
||||
elif iac:
|
||||
@ -85,18 +85,18 @@ def main():
|
||||
if c == IAC:
|
||||
cleandata = cleandata + c
|
||||
elif c in (DO, DONT):
|
||||
if c == DO: print '(DO)',
|
||||
else: print '(DONT)',
|
||||
if c == DO: print('(DO)', end=' ')
|
||||
else: print('(DONT)', end=' ')
|
||||
opt = IAC + WONT
|
||||
elif c in (WILL, WONT):
|
||||
if c == WILL: print '(WILL)',
|
||||
else: print '(WONT)',
|
||||
if c == WILL: print('(WILL)', end=' ')
|
||||
else: print('(WONT)', end=' ')
|
||||
opt = IAC + DONT
|
||||
else:
|
||||
print '(command)', ord(c)
|
||||
print('(command)', ord(c))
|
||||
elif c == IAC:
|
||||
iac = 1
|
||||
print '(IAC)',
|
||||
print('(IAC)', end=' ')
|
||||
else:
|
||||
cleandata = cleandata + c
|
||||
sys.stdout.write(cleandata)
|
||||
|
@ -33,8 +33,8 @@ def main():
|
||||
|
||||
def usage():
|
||||
sys.stdout = sys.stderr
|
||||
print 'Usage: (on host_A) throughput -s [port]'
|
||||
print 'and then: (on host_B) throughput -c count host_A [port]'
|
||||
print('Usage: (on host_A) throughput -s [port]')
|
||||
print('and then: (on host_B) throughput -c count host_A [port]')
|
||||
sys.exit(2)
|
||||
|
||||
|
||||
@ -46,7 +46,7 @@ def server():
|
||||
s = socket(AF_INET, SOCK_STREAM)
|
||||
s.bind(('', port))
|
||||
s.listen(1)
|
||||
print 'Server ready...'
|
||||
print('Server ready...')
|
||||
while 1:
|
||||
conn, (host, remoteport) = s.accept()
|
||||
while 1:
|
||||
@ -56,7 +56,7 @@ def server():
|
||||
del data
|
||||
conn.send('OK\n')
|
||||
conn.close()
|
||||
print 'Done with', host, 'port', remoteport
|
||||
print('Done with', host, 'port', remoteport)
|
||||
|
||||
|
||||
def client():
|
||||
@ -82,12 +82,12 @@ def client():
|
||||
t4 = time.time()
|
||||
data = s.recv(BUFSIZE)
|
||||
t5 = time.time()
|
||||
print data
|
||||
print 'Raw timers:', t1, t2, t3, t4, t5
|
||||
print 'Intervals:', t2-t1, t3-t2, t4-t3, t5-t4
|
||||
print 'Total:', t5-t1
|
||||
print 'Throughput:', round((BUFSIZE*count*0.001) / (t5-t1), 3),
|
||||
print 'K/sec.'
|
||||
print(data)
|
||||
print('Raw timers:', t1, t2, t3, t4, t5)
|
||||
print('Intervals:', t2-t1, t3-t2, t4-t3, t5-t4)
|
||||
print('Total:', t5-t1)
|
||||
print('Throughput:', round((BUFSIZE*count*0.001) / (t5-t1), 3), end=' ')
|
||||
print('K/sec.')
|
||||
|
||||
|
||||
main()
|
||||
|
@ -23,8 +23,8 @@ def main():
|
||||
|
||||
def usage():
|
||||
sys.stdout = sys.stderr
|
||||
print 'Usage: udpecho -s [port] (server)'
|
||||
print 'or: udpecho -c host [port] <file (client)'
|
||||
print('Usage: udpecho -s [port] (server)')
|
||||
print('or: udpecho -c host [port] <file (client)')
|
||||
sys.exit(2)
|
||||
|
||||
def server():
|
||||
@ -34,10 +34,10 @@ def server():
|
||||
port = ECHO_PORT
|
||||
s = socket(AF_INET, SOCK_DGRAM)
|
||||
s.bind(('', port))
|
||||
print 'udp echo server ready'
|
||||
print('udp echo server ready')
|
||||
while 1:
|
||||
data, addr = s.recvfrom(BUFSIZE)
|
||||
print 'server received %r from %r' % (data, addr)
|
||||
print('server received %r from %r' % (data, addr))
|
||||
s.sendto(data, addr)
|
||||
|
||||
def client():
|
||||
@ -51,13 +51,13 @@ def client():
|
||||
addr = host, port
|
||||
s = socket(AF_INET, SOCK_DGRAM)
|
||||
s.bind(('', 0))
|
||||
print 'udp echo client ready, reading stdin'
|
||||
print('udp echo client ready, reading stdin')
|
||||
while 1:
|
||||
line = sys.stdin.readline()
|
||||
if not line:
|
||||
break
|
||||
s.sendto(line, addr)
|
||||
data, fromaddr = s.recvfrom(BUFSIZE)
|
||||
print 'client received %r from %r' % (data, fromaddr)
|
||||
print('client received %r from %r' % (data, fromaddr))
|
||||
|
||||
main()
|
||||
|
@ -9,4 +9,4 @@ s.connect(FILE)
|
||||
s.send('Hello, world')
|
||||
data = s.recv(1024)
|
||||
s.close()
|
||||
print 'Received', repr(data)
|
||||
print('Received', repr(data))
|
||||
|
@ -8,7 +8,7 @@ FILE = 'unix-socket'
|
||||
s = socket(AF_UNIX, SOCK_STREAM)
|
||||
s.bind(FILE)
|
||||
|
||||
print 'Sock name is: ['+s.getsockname()+']'
|
||||
print('Sock name is: ['+s.getsockname()+']')
|
||||
|
||||
# Wait for a connection
|
||||
s.listen(1)
|
||||
|
@ -78,7 +78,7 @@ class _CoEvent:
|
||||
if self.f is None:
|
||||
return 'main coroutine'
|
||||
else:
|
||||
return 'coroutine for func ' + self.f.func_name
|
||||
return 'coroutine for func ' + self.f.__name__
|
||||
|
||||
def __hash__(self):
|
||||
return id(self)
|
||||
@ -125,9 +125,9 @@ class Coroutine:
|
||||
|
||||
def kill(self):
|
||||
if self.killed:
|
||||
raise TypeError, 'kill() called on dead coroutines'
|
||||
raise TypeError('kill() called on dead coroutines')
|
||||
self.killed = 1
|
||||
for coroutine in self.invokedby.keys():
|
||||
for coroutine in list(self.invokedby.keys()):
|
||||
coroutine.resume()
|
||||
|
||||
def back(self, data=None):
|
||||
@ -137,10 +137,10 @@ class Coroutine:
|
||||
return self.tran( self.main, data )
|
||||
|
||||
def tran(self, target, data=None):
|
||||
if not self.invokedby.has_key(target):
|
||||
raise TypeError, '.tran target %r is not an active coroutine' % (target,)
|
||||
if target not in self.invokedby:
|
||||
raise TypeError('.tran target %r is not an active coroutine' % (target,))
|
||||
if self.killed:
|
||||
raise TypeError, '.tran target %r is killed' % (target,)
|
||||
raise TypeError('.tran target %r is killed' % (target,))
|
||||
self.value = data
|
||||
me = self.active
|
||||
self.invokedby[target] = me
|
||||
@ -152,7 +152,7 @@ class Coroutine:
|
||||
if self.main is not me:
|
||||
raise Killed
|
||||
if self.terminated_by is not None:
|
||||
raise EarlyExit, '%r terminated early' % (self.terminated_by,)
|
||||
raise EarlyExit('%r terminated early' % (self.terminated_by,))
|
||||
|
||||
return self.value
|
||||
|
||||
|
@ -32,7 +32,7 @@ class Generator:
|
||||
# Called by producer for each value; raise Killed if no more needed
|
||||
def put(self, value):
|
||||
if self.killed:
|
||||
raise TypeError, 'put() called on killed generator'
|
||||
raise TypeError('put() called on killed generator')
|
||||
self.value = value
|
||||
self.getlock.release() # Resume consumer thread
|
||||
self.putlock.acquire() # Wait for next get() call
|
||||
@ -41,7 +41,7 @@ class Generator:
|
||||
# Called by producer to get next value; raise EOFError if no more
|
||||
def get(self):
|
||||
if self.killed:
|
||||
raise TypeError, 'get() called on killed generator'
|
||||
raise TypeError('get() called on killed generator')
|
||||
self.putlock.release() # Resume producer thread
|
||||
self.getlock.acquire() # Wait for value to appear
|
||||
if self.done:
|
||||
@ -50,7 +50,7 @@ class Generator:
|
||||
# Called by consumer if no more values wanted
|
||||
def kill(self):
|
||||
if self.killed:
|
||||
raise TypeError, 'kill() called on killed generator'
|
||||
raise TypeError('kill() called on killed generator')
|
||||
self.killed = 1
|
||||
self.putlock.release()
|
||||
# Clone constructor
|
||||
@ -58,27 +58,27 @@ class Generator:
|
||||
return Generator(self.func, self.args)
|
||||
|
||||
def pi(g):
|
||||
k, a, b, a1, b1 = 2L, 4L, 1L, 12L, 4L
|
||||
k, a, b, a1, b1 = 2, 4, 1, 12, 4
|
||||
while 1:
|
||||
# Next approximation
|
||||
p, q, k = k*k, 2L*k+1L, k+1L
|
||||
p, q, k = k*k, 2*k+1, k+1
|
||||
a, b, a1, b1 = a1, b1, p*a+q*a1, p*b+q*b1
|
||||
# Print common digits
|
||||
d, d1 = a/b, a1/b1
|
||||
while d == d1:
|
||||
g.put(int(d))
|
||||
a, a1 = 10L*(a%b), 10L*(a1%b1)
|
||||
a, a1 = 10*(a%b), 10*(a1%b1)
|
||||
d, d1 = a/b, a1/b1
|
||||
|
||||
def test():
|
||||
g = Generator(pi, ())
|
||||
g.kill()
|
||||
g = Generator(pi, ())
|
||||
for i in range(10): print g.get(),
|
||||
print
|
||||
for i in range(10): print(g.get(), end=' ')
|
||||
print()
|
||||
h = g.clone()
|
||||
g.kill()
|
||||
while 1:
|
||||
print h.get(),
|
||||
print(h.get(), end=' ')
|
||||
|
||||
test()
|
||||
|
@ -16,10 +16,10 @@ def printinorder(list):
|
||||
f = co.create(fringe, co, list)
|
||||
try:
|
||||
while 1:
|
||||
print co.tran(f),
|
||||
print(co.tran(f), end=' ')
|
||||
except EarlyExit:
|
||||
pass
|
||||
print
|
||||
print()
|
||||
|
||||
printinorder([1,2,3]) # 1 2 3
|
||||
printinorder([[[[1,[2]]],3]]) # ditto
|
||||
@ -49,16 +49,16 @@ def fcmp(l1, l2):
|
||||
co1.kill(); co2.kill()
|
||||
return cmp(v1,v2)
|
||||
|
||||
print fcmp(range(7), x) # 0; fringes are equal
|
||||
print fcmp(range(6), x) # -1; 1st list ends early
|
||||
print fcmp(x, range(6)) # 1; 2nd list ends early
|
||||
print fcmp(range(8), x) # 1; 2nd list ends early
|
||||
print fcmp(x, range(8)) # -1; 1st list ends early
|
||||
print fcmp([1,[[2],8]],
|
||||
[[[1],2],8]) # 0
|
||||
print fcmp([1,[[3],8]],
|
||||
[[[1],2],8]) # 1
|
||||
print fcmp([1,[[2],8]],
|
||||
[[[1],2],9]) # -1
|
||||
print(fcmp(range(7), x)) # 0; fringes are equal
|
||||
print(fcmp(range(6), x)) # -1; 1st list ends early
|
||||
print(fcmp(x, range(6))) # 1; 2nd list ends early
|
||||
print(fcmp(range(8), x)) # 1; 2nd list ends early
|
||||
print(fcmp(x, range(8))) # -1; 1st list ends early
|
||||
print(fcmp([1,[[2],8]],
|
||||
[[[1],2],8])) # 0
|
||||
print(fcmp([1,[[3],8]],
|
||||
[[[1],2],8])) # 1
|
||||
print(fcmp([1,[[2],8]],
|
||||
[[[1],2],9])) # -1
|
||||
|
||||
# end of example
|
||||
|
@ -123,7 +123,7 @@ def main():
|
||||
|
||||
def selector(dir, name, fullname, stat):
|
||||
# Look for world writable files that are not symlinks
|
||||
return (stat[ST_MODE] & 0002) != 0 and not S_ISLNK(stat[ST_MODE])
|
||||
return (stat[ST_MODE] & 0o002) != 0 and not S_ISLNK(stat[ST_MODE])
|
||||
|
||||
|
||||
# The find procedure -- calls wq.addwork() for subdirectories
|
||||
@ -132,7 +132,7 @@ def find(dir, pred, wq):
|
||||
try:
|
||||
names = os.listdir(dir)
|
||||
except os.error as msg:
|
||||
print repr(dir), ':', msg
|
||||
print(repr(dir), ':', msg)
|
||||
return
|
||||
for name in names:
|
||||
if name not in (os.curdir, os.pardir):
|
||||
@ -140,10 +140,10 @@ def find(dir, pred, wq):
|
||||
try:
|
||||
stat = os.lstat(fullname)
|
||||
except os.error as msg:
|
||||
print repr(fullname), ':', msg
|
||||
print(repr(fullname), ':', msg)
|
||||
continue
|
||||
if pred(dir, name, fullname, stat):
|
||||
print fullname
|
||||
print(fullname)
|
||||
if S_ISDIR(stat[ST_MODE]):
|
||||
if not os.path.ismount(fullname):
|
||||
wq.addwork(find, (fullname, pred, wq))
|
||||
|
@ -89,7 +89,7 @@ def assembler():
|
||||
def putline():
|
||||
while 1:
|
||||
line = co.tran(coassembler)
|
||||
print line
|
||||
print(line)
|
||||
|
||||
import string
|
||||
co = Coroutine()
|
||||
@ -100,6 +100,6 @@ codisassembler = co.create(disassembler)
|
||||
cosquasher = co.create(squasher)
|
||||
|
||||
co.tran(coputline)
|
||||
print 'done'
|
||||
print('done')
|
||||
|
||||
# end of example
|
||||
|
@ -280,8 +280,8 @@ class condition:
|
||||
hasattr(lock, 'release'):
|
||||
self.mutex = lock
|
||||
else:
|
||||
raise TypeError, 'condition constructor requires ' \
|
||||
'a lock argument'
|
||||
raise TypeError('condition constructor requires ' \
|
||||
'a lock argument')
|
||||
|
||||
# lock used to block threads until a signal
|
||||
self.checkout = thread.allocate_lock()
|
||||
@ -304,8 +304,7 @@ class condition:
|
||||
def wait(self):
|
||||
mutex, checkout, idlock = self.mutex, self.checkout, self.idlock
|
||||
if not mutex.locked():
|
||||
raise ValueError, \
|
||||
"condition must be .acquire'd when .wait() invoked"
|
||||
raise ValueError("condition must be .acquire'd when .wait() invoked")
|
||||
|
||||
idlock.acquire()
|
||||
myid = self.id
|
||||
@ -336,7 +335,7 @@ class condition:
|
||||
|
||||
def broadcast(self, num = -1):
|
||||
if num < -1:
|
||||
raise ValueError, '.broadcast called with num %r' % (num,)
|
||||
raise ValueError('.broadcast called with num %r' % (num,))
|
||||
if num == 0:
|
||||
return
|
||||
self.idlock.acquire()
|
||||
@ -402,7 +401,7 @@ class event:
|
||||
class semaphore:
|
||||
def __init__(self, count=1):
|
||||
if count <= 0:
|
||||
raise ValueError, 'semaphore count %d; must be >= 1' % count
|
||||
raise ValueError('semaphore count %d; must be >= 1' % count)
|
||||
self.count = count
|
||||
self.maxcount = count
|
||||
self.nonzero = condition()
|
||||
@ -417,8 +416,8 @@ class semaphore:
|
||||
def v(self):
|
||||
self.nonzero.acquire()
|
||||
if self.count == self.maxcount:
|
||||
raise ValueError, '.v() tried to raise semaphore count above ' \
|
||||
'initial value %r' % self.maxcount
|
||||
raise ValueError('.v() tried to raise semaphore count above ' \
|
||||
'initial value %r' % self.maxcount)
|
||||
self.count = self.count + 1
|
||||
self.nonzero.signal()
|
||||
self.nonzero.release()
|
||||
@ -445,8 +444,7 @@ class mrsw:
|
||||
def read_out(self):
|
||||
self.rwOK.acquire()
|
||||
if self.nr <= 0:
|
||||
raise ValueError, \
|
||||
'.read_out() invoked without an active reader'
|
||||
raise ValueError('.read_out() invoked without an active reader')
|
||||
self.nr = self.nr - 1
|
||||
if self.nr == 0:
|
||||
self.writeOK.signal()
|
||||
@ -463,8 +461,7 @@ class mrsw:
|
||||
def write_out(self):
|
||||
self.rwOK.acquire()
|
||||
if not self.writing:
|
||||
raise ValueError, \
|
||||
'.write_out() invoked without an active writer'
|
||||
raise ValueError('.write_out() invoked without an active writer')
|
||||
self.writing = 0
|
||||
self.nw = self.nw - 1
|
||||
if self.nw:
|
||||
@ -476,8 +473,7 @@ class mrsw:
|
||||
def write_to_read(self):
|
||||
self.rwOK.acquire()
|
||||
if not self.writing:
|
||||
raise ValueError, \
|
||||
'.write_to_read() invoked without an active writer'
|
||||
raise ValueError('.write_to_read() invoked without an active writer')
|
||||
self.writing = 0
|
||||
self.nw = self.nw - 1
|
||||
self.nr = self.nr + 1
|
||||
@ -496,13 +492,13 @@ def _new_thread(func, *args):
|
||||
global TID
|
||||
tid.acquire(); id = TID = TID+1; tid.release()
|
||||
io.acquire(); alive.append(id); \
|
||||
print 'starting thread', id, '--', len(alive), 'alive'; \
|
||||
print('starting thread', id, '--', len(alive), 'alive'); \
|
||||
io.release()
|
||||
thread.start_new_thread( func, (id,) + args )
|
||||
|
||||
def _qsort(tid, a, l, r, finished):
|
||||
# sort a[l:r]; post finished when done
|
||||
io.acquire(); print 'thread', tid, 'qsort', l, r; io.release()
|
||||
io.acquire(); print('thread', tid, 'qsort', l, r); io.release()
|
||||
if r-l > 1:
|
||||
pivot = a[l]
|
||||
j = l+1 # make a[l:j] <= pivot, and a[j:r] > pivot
|
||||
@ -519,44 +515,44 @@ def _qsort(tid, a, l, r, finished):
|
||||
l_subarray_sorted.wait()
|
||||
r_subarray_sorted.wait()
|
||||
|
||||
io.acquire(); print 'thread', tid, 'qsort done'; \
|
||||
io.acquire(); print('thread', tid, 'qsort done'); \
|
||||
alive.remove(tid); io.release()
|
||||
finished.post()
|
||||
|
||||
def _randarray(tid, a, finished):
|
||||
io.acquire(); print 'thread', tid, 'randomizing array'; \
|
||||
io.acquire(); print('thread', tid, 'randomizing array'); \
|
||||
io.release()
|
||||
for i in range(1, len(a)):
|
||||
wh.acquire(); j = randint(0,i); wh.release()
|
||||
a[i], a[j] = a[j], a[i]
|
||||
io.acquire(); print 'thread', tid, 'randomizing done'; \
|
||||
io.acquire(); print('thread', tid, 'randomizing done'); \
|
||||
alive.remove(tid); io.release()
|
||||
finished.post()
|
||||
|
||||
def _check_sort(a):
|
||||
if a != range(len(a)):
|
||||
raise ValueError, ('a not sorted', a)
|
||||
raise ValueError('a not sorted', a)
|
||||
|
||||
def _run_one_sort(tid, a, bar, done):
|
||||
# randomize a, and quicksort it
|
||||
# for variety, all the threads running this enter a barrier
|
||||
# at the end, and post `done' after the barrier exits
|
||||
io.acquire(); print 'thread', tid, 'randomizing', a; \
|
||||
io.acquire(); print('thread', tid, 'randomizing', a); \
|
||||
io.release()
|
||||
finished = event()
|
||||
_new_thread(_randarray, a, finished)
|
||||
finished.wait()
|
||||
|
||||
io.acquire(); print 'thread', tid, 'sorting', a; io.release()
|
||||
io.acquire(); print('thread', tid, 'sorting', a); io.release()
|
||||
finished.clear()
|
||||
_new_thread(_qsort, a, 0, len(a), finished)
|
||||
finished.wait()
|
||||
_check_sort(a)
|
||||
|
||||
io.acquire(); print 'thread', tid, 'entering barrier'; \
|
||||
io.acquire(); print('thread', tid, 'entering barrier'); \
|
||||
io.release()
|
||||
bar.enter()
|
||||
io.acquire(); print 'thread', tid, 'leaving barrier'; \
|
||||
io.acquire(); print('thread', tid, 'leaving barrier'); \
|
||||
io.release()
|
||||
io.acquire(); alive.remove(tid); io.release()
|
||||
bar.enter() # make sure they've all removed themselves from alive
|
||||
@ -586,16 +582,16 @@ def test():
|
||||
_new_thread(_run_one_sort, arrays[i], bar, finished)
|
||||
finished.wait()
|
||||
|
||||
print 'all threads done, and checking results ...'
|
||||
print('all threads done, and checking results ...')
|
||||
if alive:
|
||||
raise ValueError, ('threads still alive at end', alive)
|
||||
raise ValueError('threads still alive at end', alive)
|
||||
for i in range(NSORTS):
|
||||
a = arrays[i]
|
||||
if len(a) != (i+1)*10:
|
||||
raise ValueError, ('length of array', i, 'screwed up')
|
||||
raise ValueError('length of array', i, 'screwed up')
|
||||
_check_sort(a)
|
||||
|
||||
print 'test passed!', TID, 'threads created in all'
|
||||
print('test passed!', TID, 'threads created in all')
|
||||
|
||||
if __name__ == '__main__':
|
||||
test()
|
||||
|
@ -76,7 +76,7 @@ def parent(s):
|
||||
cleandata = ''
|
||||
for c in data:
|
||||
if opt:
|
||||
print ord(c)
|
||||
print(ord(c))
|
||||
## print '(replying: %r)' % (opt+c,)
|
||||
s.send(opt + c)
|
||||
opt = ''
|
||||
@ -85,18 +85,18 @@ def parent(s):
|
||||
if c == IAC:
|
||||
cleandata = cleandata + c
|
||||
elif c in (DO, DONT):
|
||||
if c == DO: print '(DO)',
|
||||
else: print '(DONT)',
|
||||
if c == DO: print('(DO)', end=' ')
|
||||
else: print('(DONT)', end=' ')
|
||||
opt = IAC + WONT
|
||||
elif c in (WILL, WONT):
|
||||
if c == WILL: print '(WILL)',
|
||||
else: print '(WONT)',
|
||||
if c == WILL: print('(WILL)', end=' ')
|
||||
else: print('(WONT)', end=' ')
|
||||
opt = IAC + DONT
|
||||
else:
|
||||
print '(command)', ord(c)
|
||||
print('(command)', ord(c))
|
||||
elif c == IAC:
|
||||
iac = 1
|
||||
print '(IAC)',
|
||||
print('(IAC)', end=' ')
|
||||
else:
|
||||
cleandata = cleandata + c
|
||||
sys.stdout.write(cleandata)
|
||||
|
@ -40,7 +40,7 @@ def RunSample(w):
|
||||
# global variables "demo_opt_from" and "demo_opt_to". Otherwise
|
||||
# the OptionMenu widget will complain about "unknown options"!
|
||||
#
|
||||
for opt in options.keys():
|
||||
for opt in list(options.keys()):
|
||||
from_file.add_command(opt, label=options[opt])
|
||||
to_file.add_command(opt, label=options[opt])
|
||||
|
||||
|
@ -166,7 +166,7 @@ class Demo:
|
||||
try: tkMessageBox.showerror ('Error', text)
|
||||
except: pass
|
||||
self.exit = 1
|
||||
raise SystemExit, 1
|
||||
raise SystemExit(1)
|
||||
|
||||
def destroy (self):
|
||||
self.root.destroy()
|
||||
|
@ -112,7 +112,7 @@ class Dialog:
|
||||
def addchoices(self):
|
||||
self.choices = {}
|
||||
list = []
|
||||
for k, dc in self.options.items():
|
||||
for k, dc in list(self.options.items()):
|
||||
list.append((k, dc))
|
||||
list.sort()
|
||||
for k, (d, c) in list:
|
||||
@ -157,7 +157,7 @@ class PackDialog(Dialog):
|
||||
try:
|
||||
self.dialog.widget.pack(**{self.option: self.current})
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
self.refresh()
|
||||
|
||||
class booleanoption(packoption, BooleanOption): pass
|
||||
@ -213,7 +213,7 @@ class RemotePackDialog(PackDialog):
|
||||
'info',
|
||||
self.widget))
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
return
|
||||
dict = {}
|
||||
for i in range(0, len(words), 2):
|
||||
@ -240,7 +240,7 @@ class RemotePackDialog(PackDialog):
|
||||
self.dialog.master.tk.merge(
|
||||
self.current))
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
self.refresh()
|
||||
|
||||
class booleanoption(remotepackoption, BooleanOption): pass
|
||||
@ -256,11 +256,11 @@ class WidgetDialog(Dialog):
|
||||
Dialog.__init__(self, widget)
|
||||
|
||||
def fixclasses(self):
|
||||
if self.addclasses.has_key(self.klass):
|
||||
if self.klass in self.addclasses:
|
||||
classes = {}
|
||||
for c in (self.classes,
|
||||
self.addclasses[self.klass]):
|
||||
for k in c.keys():
|
||||
for k in list(c.keys()):
|
||||
classes[k] = c[k]
|
||||
self.classes = classes
|
||||
|
||||
@ -273,7 +273,7 @@ class WidgetDialog(Dialog):
|
||||
def update(self):
|
||||
self.current = {}
|
||||
self.options = {}
|
||||
for k, v in self.configuration.items():
|
||||
for k, v in list(self.configuration.items()):
|
||||
if len(v) > 4:
|
||||
self.current[k] = v[4]
|
||||
self.options[k] = v[3], v[2] # default, klass
|
||||
@ -286,7 +286,7 @@ class WidgetDialog(Dialog):
|
||||
try:
|
||||
self.dialog.widget[self.option] = self.current
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
self.refresh()
|
||||
|
||||
class booleanoption(widgetoption, BooleanOption): pass
|
||||
@ -375,7 +375,7 @@ class RemoteWidgetDialog(WidgetDialog):
|
||||
self.widget,
|
||||
'config'))
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
return
|
||||
dict = {}
|
||||
for item in items:
|
||||
@ -399,7 +399,7 @@ class RemoteWidgetDialog(WidgetDialog):
|
||||
'-'+self.option,
|
||||
self.current)
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
self.refresh()
|
||||
|
||||
class booleanoption(remotewidgetoption, BooleanOption): pass
|
||||
@ -446,6 +446,6 @@ def opendialogs(e):
|
||||
try:
|
||||
RemotePackDialog(list, list.app, widget)
|
||||
except TclError as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
|
||||
test()
|
||||
|
@ -75,7 +75,7 @@ class EditableManPage(ScrolledText):
|
||||
# Initialize parsing from a particular file -- must not be busy
|
||||
def _startparser(self, fp):
|
||||
if self.busy():
|
||||
raise RuntimeError, 'startparser: still busy'
|
||||
raise RuntimeError('startparser: still busy')
|
||||
fp.fileno() # Test for file-ness
|
||||
self.fp = fp
|
||||
self.lineno = 0
|
||||
@ -90,7 +90,7 @@ class EditableManPage(ScrolledText):
|
||||
# End parsing -- must be busy, need not be at EOF
|
||||
def _endparser(self):
|
||||
if not self.busy():
|
||||
raise RuntimeError, 'endparser: not busy'
|
||||
raise RuntimeError('endparser: not busy')
|
||||
if self.buffer:
|
||||
self._parseline('')
|
||||
try:
|
||||
|
@ -37,7 +37,7 @@ class ShellWindow(ScrolledText):
|
||||
if not data:
|
||||
self.tk.deletefilehandler(file)
|
||||
pid, sts = os.waitpid(self.pid, 0)
|
||||
print 'pid', pid, 'status', sts
|
||||
print('pid', pid, 'status', sts)
|
||||
self.pid = None
|
||||
detail = sts>>8
|
||||
cause = sts & 0xff
|
||||
|
@ -81,7 +81,7 @@ def go():
|
||||
'',
|
||||
-1,
|
||||
'OK')
|
||||
print 'pressed button', i
|
||||
print('pressed button', i)
|
||||
i = dialog(mainWidget,
|
||||
'File Modified',
|
||||
'File "tcl.h" has been modified since '
|
||||
@ -92,7 +92,7 @@ def go():
|
||||
'Save File',
|
||||
'Discard Changes',
|
||||
'Return To Editor')
|
||||
print 'pressed button', i
|
||||
print('pressed button', i)
|
||||
|
||||
def test():
|
||||
import sys
|
||||
|
@ -28,7 +28,7 @@ def main():
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], '')
|
||||
except getopt.error as msg:
|
||||
print msg
|
||||
print(msg)
|
||||
sys.exit(2)
|
||||
for arg in args:
|
||||
if arg[:1] == '+':
|
||||
@ -278,8 +278,6 @@ def rescan():
|
||||
scanbox.insert('end', line)
|
||||
|
||||
def scanfolder(folder = 'inbox', sequence = 'all'):
|
||||
return map(
|
||||
lambda line: line[:-1],
|
||||
os.popen('scan +%s %s' % (folder, sequence), 'r').readlines())
|
||||
return [line[:-1] for line in os.popen('scan +%s %s' % (folder, sequence), 'r').readlines()]
|
||||
|
||||
main()
|
||||
|
@ -134,7 +134,7 @@ def fillAppsMenu():
|
||||
file_m_apps.add('command')
|
||||
file_m_apps.delete(0, 'last')
|
||||
names = root.winfo_interps()
|
||||
names = map(None, names) # convert tuple to list
|
||||
names = list(names) # convert tuple to list
|
||||
names.sort()
|
||||
for name in names:
|
||||
try:
|
||||
|
@ -80,7 +80,7 @@ for s in (HEARTS, DIAMONDS):
|
||||
for s in (CLUBS, SPADES):
|
||||
COLOR[s] = BLACK
|
||||
|
||||
ALLSUITS = COLOR.keys()
|
||||
ALLSUITS = list(COLOR.keys())
|
||||
NSUITS = len(ALLSUITS)
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ NVALUES = len(ALLVALUES)
|
||||
# dummy element at index 0 so it can be indexed directly with the card
|
||||
# value.
|
||||
|
||||
VALNAMES = ["", "A"] + map(str, range(2, 11)) + ["J", "Q", "K"]
|
||||
VALNAMES = ["", "A"] + list(map(str, range(2, 11))) + ["J", "Q", "K"]
|
||||
|
||||
|
||||
# Solitaire constants. The only one I can think of is the number of
|
||||
|
@ -344,7 +344,7 @@ def steps(here, there):
|
||||
|
||||
def interpolate(oldpts, newpts, n):
|
||||
if len(oldpts) != len(newpts):
|
||||
raise ValueError, "can't interpolate arrays of different length"
|
||||
raise ValueError("can't interpolate arrays of different length")
|
||||
pts = [0]*len(oldpts)
|
||||
res = [tuple(oldpts)]
|
||||
for i in range(1, n):
|
||||
|
@ -136,13 +136,13 @@ class Sheet:
|
||||
return maxx, maxy
|
||||
|
||||
def reset(self):
|
||||
for cell in self.cells.itervalues():
|
||||
for cell in self.cells.values():
|
||||
if hasattr(cell, 'reset'):
|
||||
cell.reset()
|
||||
|
||||
def recalc(self):
|
||||
self.reset()
|
||||
for cell in self.cells.itervalues():
|
||||
for cell in self.cells.values():
|
||||
if hasattr(cell, 'recalc'):
|
||||
cell.recalc(self.rexec)
|
||||
|
||||
@ -160,7 +160,7 @@ class Sheet:
|
||||
full[0, y] = text, alignment = str(y), RIGHT
|
||||
colwidth[0] = max(colwidth[0], len(text))
|
||||
# Add sheet cells in columns with x>0 and y>0
|
||||
for (x, y), cell in self.cells.iteritems():
|
||||
for (x, y), cell in self.cells.items():
|
||||
if x <= 0 or y <= 0:
|
||||
continue
|
||||
if hasattr(cell, 'recalc'):
|
||||
@ -192,13 +192,13 @@ class Sheet:
|
||||
if line:
|
||||
line += '|'
|
||||
line += text
|
||||
print line
|
||||
print(line)
|
||||
if y == 0:
|
||||
print sep
|
||||
print(sep)
|
||||
|
||||
def xml(self):
|
||||
out = ['<spreadsheet>']
|
||||
for (x, y), cell in self.cells.iteritems():
|
||||
for (x, y), cell in self.cells.items():
|
||||
if hasattr(cell, 'xml'):
|
||||
cellxml = cell.xml()
|
||||
else:
|
||||
@ -236,7 +236,7 @@ class SheetParser:
|
||||
def startelement(self, tag, attrs):
|
||||
method = getattr(self, 'start_'+tag, None)
|
||||
if method:
|
||||
for key, value in attrs.iteritems():
|
||||
for key, value in attrs.items():
|
||||
attrs[key] = str(value) # XXX Convert Unicode to 8-bit
|
||||
method(attrs)
|
||||
self.texts = []
|
||||
@ -268,7 +268,7 @@ class SheetParser:
|
||||
|
||||
def end_long(self, text):
|
||||
try:
|
||||
self.value = long(text)
|
||||
self.value = int(text)
|
||||
except:
|
||||
self.value = None
|
||||
|
||||
@ -325,7 +325,7 @@ class BaseCell:
|
||||
class NumericCell(BaseCell):
|
||||
|
||||
def __init__(self, value, fmt="%s", alignment=RIGHT):
|
||||
assert isinstance(value, (int, long, float, complex))
|
||||
assert isinstance(value, (int, int, float, complex))
|
||||
assert alignment in (LEFT, CENTER, RIGHT)
|
||||
self.value = value
|
||||
self.fmt = fmt
|
||||
@ -366,7 +366,7 @@ class NumericCell(BaseCell):
|
||||
class StringCell(BaseCell):
|
||||
|
||||
def __init__(self, text, fmt="%s", alignment=LEFT):
|
||||
assert isinstance(text, (str, unicode))
|
||||
assert isinstance(text, (str, str))
|
||||
assert alignment in (LEFT, CENTER, RIGHT)
|
||||
self.text = text
|
||||
self.fmt = fmt
|
||||
@ -699,7 +699,7 @@ class SheetGUI:
|
||||
x1, x2 = x2, x1
|
||||
if y1 > y2:
|
||||
y1, y2 = y2, y1
|
||||
for (x, y), cell in self.gridcells.iteritems():
|
||||
for (x, y), cell in self.gridcells.items():
|
||||
if x1 <= x <= x2 and y1 <= y <= y2:
|
||||
cell['bg'] = 'lightBlue'
|
||||
gridcell = self.gridcells.get(self.currentxy)
|
||||
@ -735,7 +735,7 @@ class SheetGUI:
|
||||
x1, x2 = x2, x1
|
||||
if y1 > y2:
|
||||
y1, y2 = y2, y1
|
||||
for (x, y), cell in self.gridcells.iteritems():
|
||||
for (x, y), cell in self.gridcells.items():
|
||||
if x1 <= x <= x2 and y1 <= y <= y2:
|
||||
cell['bg'] = 'white'
|
||||
|
||||
@ -775,7 +775,7 @@ class SheetGUI:
|
||||
if text.startswith('='):
|
||||
cell = FormulaCell(text[1:])
|
||||
else:
|
||||
for cls in int, long, float, complex:
|
||||
for cls in int, int, float, complex:
|
||||
try:
|
||||
value = cls(text)
|
||||
except:
|
||||
@ -794,7 +794,7 @@ class SheetGUI:
|
||||
def sync(self):
|
||||
"Fill the GUI cells from the sheet cells."
|
||||
self.sheet.recalc()
|
||||
for (x, y), gridcell in self.gridcells.iteritems():
|
||||
for (x, y), gridcell in self.gridcells.items():
|
||||
if x == 0 or y == 0:
|
||||
continue
|
||||
cell = self.sheet.getcell(x, y)
|
||||
|
@ -5,7 +5,7 @@
|
||||
from Tkinter import *
|
||||
|
||||
if TkVersion < 4.0:
|
||||
raise ImportError, "This version of svkill requires Tk 4.0 or later"
|
||||
raise ImportError("This version of svkill requires Tk 4.0 or later")
|
||||
|
||||
from string import splitfields
|
||||
from string import split
|
||||
|
@ -172,8 +172,8 @@ class SelectionBox:
|
||||
|
||||
def updatelist(self):
|
||||
key = self.entry.get()
|
||||
ok = filter(lambda name, key=key, n=len(key): name[:n]==key,
|
||||
self.choices)
|
||||
ok = list(filter(lambda name, key=key, n=len(key): name[:n]==key,
|
||||
self.choices))
|
||||
if not ok:
|
||||
self.frame.bell()
|
||||
self.listbox.delete(0, AtEnd())
|
||||
@ -205,7 +205,7 @@ class SelectionBox:
|
||||
def search_string(self, search):
|
||||
if not search:
|
||||
self.frame.bell()
|
||||
print 'Empty search string'
|
||||
print('Empty search string')
|
||||
return
|
||||
if not self.casevar.get():
|
||||
map = re.IGNORECASE
|
||||
@ -218,7 +218,7 @@ class SelectionBox:
|
||||
prog = re.compile(search)
|
||||
except re.error as msg:
|
||||
self.frame.bell()
|
||||
print 'Regex error:', msg
|
||||
print('Regex error:', msg)
|
||||
return
|
||||
here = self.text.index(AtInsert())
|
||||
lineno = string.atoi(here[:string.find(here, '.')])
|
||||
|
@ -24,7 +24,7 @@ while 1:
|
||||
try:
|
||||
result = tk.call('eval', cmd)
|
||||
except _tkinter.TclError as msg:
|
||||
print 'TclError:', msg
|
||||
print('TclError:', msg)
|
||||
else:
|
||||
if result: print result
|
||||
if result: print(result)
|
||||
cmd = ''
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user