mirror of
https://github.com/python/cpython.git
synced 2024-11-24 00:38:00 +01:00
New == syntax
This commit is contained in:
parent
4d8e859e8f
commit
bdfcfccbe5
@ -12,17 +12,17 @@ error = 'fact.error' # exception
|
||||
|
||||
def fact(n):
|
||||
if n < 1: raise error # fact() argument should be >= 1
|
||||
if n = 1: return [] # special case
|
||||
if n == 1: return [] # special case
|
||||
res = []
|
||||
# Treat even factors special, so we can use i = i+2 later
|
||||
while n%2 = 0:
|
||||
while n%2 == 0:
|
||||
res.append(2)
|
||||
n = n/2
|
||||
# Try odd numbers up to sqrt(n)
|
||||
limit = sqrt(n+1)
|
||||
i = 3
|
||||
while i <= limit:
|
||||
if n%i = 0:
|
||||
if n%i == 0:
|
||||
res.append(i)
|
||||
n = n/i
|
||||
limit = sqrt(n+1)
|
||||
|
@ -24,13 +24,13 @@ except RuntimeError:
|
||||
while 1:
|
||||
line = mail.readline()
|
||||
if not line: break # EOF
|
||||
if line[:5] = 'From ':
|
||||
if line[:5] == 'From ':
|
||||
# Start of message found
|
||||
print line[:-1],
|
||||
while 1:
|
||||
line = mail.readline()
|
||||
if not line: break # EOF
|
||||
if line = '\n': break # Blank line ends headers
|
||||
if line[:8] = 'Subject:':
|
||||
if line == '\n': break # Blank line ends headers
|
||||
if line[:8] == 'Subject:':
|
||||
print `line[9:-1]`,
|
||||
print
|
||||
|
@ -23,7 +23,7 @@ def main():
|
||||
# Strip '-P' from printer names just in case
|
||||
# the user specified it...
|
||||
for i in range(len(printers)):
|
||||
if printers[i][:2] = '-P':
|
||||
if printers[i][:2] == '-P':
|
||||
printers[i] = printers[i][2:]
|
||||
else:
|
||||
if posix.environ.has_key('PRINTER'):
|
||||
@ -54,13 +54,13 @@ def makestatus(name, thisuser):
|
||||
if not line: break
|
||||
fields = string.split(line)
|
||||
n = len(fields)
|
||||
if len(fields) >= 6 and fields[n-1] = 'bytes':
|
||||
if len(fields) >= 6 and fields[n-1] == 'bytes':
|
||||
rank = fields[0]
|
||||
user = fields[1]
|
||||
job = fields[2]
|
||||
files = fields[3:-2]
|
||||
bytes = eval(fields[n-2])
|
||||
if user = thisuser:
|
||||
if user == thisuser:
|
||||
userseen = 1
|
||||
elif not userseen:
|
||||
aheadbytes = aheadbytes + bytes
|
||||
@ -77,9 +77,9 @@ def makestatus(name, thisuser):
|
||||
else:
|
||||
if fields and fields[0] <> 'Rank':
|
||||
line = string.strip(line)
|
||||
if line = 'no entries':
|
||||
if line == 'no entries':
|
||||
line = name + ': idle'
|
||||
elif line[-22:] = ' is ready and printing':
|
||||
elif line[-22:] == ' is ready and printing':
|
||||
line = name
|
||||
lines.append(line)
|
||||
#
|
||||
@ -87,12 +87,12 @@ def makestatus(name, thisuser):
|
||||
line = `(totalbytes+1023)/1024` + ' K'
|
||||
if totaljobs <> len(users):
|
||||
line = line + ' (' + `totaljobs` + ' jobs)'
|
||||
if len(users) = 1:
|
||||
if len(users) == 1:
|
||||
line = line + ' for ' + users.keys()[0]
|
||||
else:
|
||||
line = line + ' for ' + `len(users)` + ' users'
|
||||
if userseen:
|
||||
if aheadjobs = 0:
|
||||
if aheadjobs == 0:
|
||||
line = line + ' (' + thisuser + ' first)'
|
||||
else:
|
||||
line = line + ' (' + `(aheadbytes+1023)/1024`
|
||||
|
@ -19,7 +19,7 @@ def main():
|
||||
# Print common digits
|
||||
d, d1 = a/b, a1/b1
|
||||
#print a, b, a1, b1
|
||||
while d = d1:
|
||||
while d == d1:
|
||||
# Use write() to avoid spaces between the digits
|
||||
sys.stdout.write(`int(d)`)
|
||||
# Flush so the output is seen immediately
|
||||
|
@ -17,7 +17,7 @@ def primes(min, max):
|
||||
i = 3
|
||||
while i <= max:
|
||||
for p in primes:
|
||||
if i%p = 0 or p*p > i: break
|
||||
if i%p == 0 or p*p > i: break
|
||||
if i%p <> 0:
|
||||
primes.append(i)
|
||||
if i >= min: print i
|
||||
|
@ -16,7 +16,7 @@ day_0 = 3 # The epoch begins on a Thursday (Monday = 0)
|
||||
|
||||
# Return 1 for leap years, 0 for non-leap years
|
||||
def isleap(year):
|
||||
return year % 4 = 0 and (year % 100 <> 0 or year % 400 = 0)
|
||||
return year % 4 == 0 and (year % 100 <> 0 or year % 400 == 0)
|
||||
|
||||
# Constants for months referenced later
|
||||
January = 1
|
||||
@ -45,7 +45,7 @@ def gmtime(secs):
|
||||
yday = days
|
||||
month = January
|
||||
while 1:
|
||||
md = mdays[month] + (month = February and isleap(year))
|
||||
md = mdays[month] + (month == February and isleap(year))
|
||||
if days < md: break
|
||||
days = days - md
|
||||
month = month + 1
|
||||
@ -122,7 +122,7 @@ def weekday(year, month, day):
|
||||
# Return weekday (0-6 ~ Mon-Sun) and number of days (28-31) for year, month
|
||||
def monthrange(year, month):
|
||||
day1 = weekday(year, month, 1)
|
||||
ndays = mdays[month] + (month = February and isleap(year))
|
||||
ndays = mdays[month] + (month == February and isleap(year))
|
||||
return day1, ndays
|
||||
|
||||
# Return a matrix representing a month's calendar
|
||||
@ -161,7 +161,7 @@ def center(str, width):
|
||||
# Print a single week (no newline)
|
||||
def prweek(week, width):
|
||||
for day in week:
|
||||
if day = 0: print ' '*width,
|
||||
if day == 0: print ' '*width,
|
||||
else:
|
||||
if width > 2: print ' '*(width-3),
|
||||
if day < 10: print '',
|
||||
|
@ -19,7 +19,7 @@ def cmp(f1, f2): # Compare two files, use the cache if possible.
|
||||
if s1[0] <> 8 or s2[0] <> 8:
|
||||
# Either is a not a plain file -- always report as different
|
||||
return 0
|
||||
if s1 = s2:
|
||||
if s1 == s2:
|
||||
# type, size & mtime match -- report same
|
||||
return 1
|
||||
if s1[:2] <> s2[:2]: # Types or sizes differ, don't bother
|
||||
@ -30,7 +30,7 @@ def cmp(f1, f2): # Compare two files, use the cache if possible.
|
||||
try:
|
||||
cs1, cs2, outcome = cache[key]
|
||||
# cache hit
|
||||
if s1 = cs1 and s2 = cs2:
|
||||
if s1 == cs1 and s2 == cs2:
|
||||
# cached signatures match
|
||||
return outcome
|
||||
# stale cached signature(s)
|
||||
|
@ -29,7 +29,7 @@ def cmp(f1, f2):
|
||||
if not S_ISREG(s1[0]) or not S_ISREG(s2[0]):
|
||||
# Either is a not a plain file -- always report as different
|
||||
return 0
|
||||
if s1 = s2:
|
||||
if s1 == s2:
|
||||
# type, size & mtime match -- report same
|
||||
return 1
|
||||
if s1[:2] <> s2[:2]: # Types or sizes differ, don't bother
|
||||
@ -40,7 +40,7 @@ def cmp(f1, f2):
|
||||
if cache.has_key(key):
|
||||
cs1, cs2, outcome = cache[key]
|
||||
# cache hit
|
||||
if s1 = cs1 and s2 = cs2:
|
||||
if s1 == cs1 and s2 == cs2:
|
||||
# cached signatures match
|
||||
return outcome
|
||||
# stale cached signature(s)
|
||||
|
@ -25,8 +25,8 @@ def getstatusoutput(cmd):
|
||||
pipe = posix.popen('{ ' + cmd + '; } 2>&1', 'r')
|
||||
text = pipe.read()
|
||||
sts = pipe.close()
|
||||
if sts = None: sts = 0
|
||||
if text[-1:] = '\n': text = text[:-1]
|
||||
if sts == None: sts = 0
|
||||
if text[-1:] == '\n': text = text[:-1]
|
||||
return sts, text
|
||||
|
||||
|
||||
|
@ -174,7 +174,7 @@ def cmp(a, b):
|
||||
#
|
||||
def remove(list, item):
|
||||
for i in range(len(list)):
|
||||
if list[i] = item:
|
||||
if list[i] == item:
|
||||
del list[i]
|
||||
break
|
||||
|
||||
|
@ -22,8 +22,8 @@ def disassemble(co, lasti):
|
||||
while i < n:
|
||||
c = code[i]
|
||||
op = ord(c)
|
||||
if op = SET_LINENO and i > 0: print # Extra blank line
|
||||
if i = lasti: print '-->',
|
||||
if op == SET_LINENO and i > 0: print # Extra blank line
|
||||
if i == lasti: print '-->',
|
||||
else: print ' ',
|
||||
if i in labels: print '>>',
|
||||
else: print ' ',
|
||||
|
@ -31,7 +31,7 @@ def dumpsymtab(dict):
|
||||
def dumpvar(name, x):
|
||||
import sys
|
||||
t = type(x)
|
||||
if t = type({}):
|
||||
if t == type({}):
|
||||
print name, '= {}'
|
||||
for key in x.keys():
|
||||
item = x[key]
|
||||
@ -42,7 +42,7 @@ def dumpvar(name, x):
|
||||
if not printable(x):
|
||||
print '#',
|
||||
print name, '=', `x`
|
||||
elif t = type(sys):
|
||||
elif t == type(sys):
|
||||
print 'import', name, '#', x
|
||||
else:
|
||||
print '#', name, '=', x
|
||||
@ -58,6 +58,6 @@ def printable(x):
|
||||
if not printable(item):
|
||||
return 0
|
||||
return 1
|
||||
if x = {}:
|
||||
if x == {}:
|
||||
return 1
|
||||
return 0
|
||||
|
@ -5,64 +5,70 @@ def fnmatch(name, pat):
|
||||
# Check for simple case: no special characters
|
||||
#
|
||||
if not ('*' in pat or '?' in pat or '[' in pat):
|
||||
return name = pat
|
||||
return name == pat
|
||||
#
|
||||
# Check for common cases: *suffix and prefix*
|
||||
#
|
||||
if pat[0] = '*':
|
||||
if pat[0] == '*':
|
||||
p1 = pat[1:]
|
||||
if not ('*' in p1 or '?' in p1 or '[' in p1):
|
||||
start = len(name) - len(p1)
|
||||
return start >= 0 and name[start:] = p1
|
||||
elif pat[-1:] = '*':
|
||||
return start >= 0 and name[start:] == p1
|
||||
elif pat[-1:] == '*':
|
||||
p1 = pat[:-1]
|
||||
if not ('*' in p1 or '?' in p1 or '[' in p1):
|
||||
return name[:len(p1)] = p1
|
||||
return name[:len(p1)] == p1
|
||||
#
|
||||
# General case
|
||||
#
|
||||
return fnmatch1(name, pat)
|
||||
|
||||
def fnmatch1(name, pat):
|
||||
for i in range(len(pat)):
|
||||
i, n = 0, len(pat)
|
||||
while i < n:
|
||||
c = pat[i]
|
||||
if c = '*':
|
||||
if c == '*':
|
||||
p1 = pat[i+1:]
|
||||
if not ('*' in p1 or '?' in p1 or '[' in p1):
|
||||
start = len(name) - len(p1)
|
||||
return start >= 0 and name[start:] = p1
|
||||
return start >= 0 and name[start:] == p1
|
||||
for i in range(i, len(name) + 1):
|
||||
if fnmatch1(name[i:], p1):
|
||||
return 1
|
||||
return 0
|
||||
elif c = '?':
|
||||
elif c == '?':
|
||||
if len(name) <= i : return 0
|
||||
elif c = '[':
|
||||
elif c == '[':
|
||||
c, rest = name[i], name[i+1:]
|
||||
i, n = i+1, len(pat) - 1
|
||||
match = 0
|
||||
exclude = 0
|
||||
if i < n and pat[i] = '!':
|
||||
if i < n and pat[i] == '!':
|
||||
exclude = 1
|
||||
i = i+1
|
||||
while i < n:
|
||||
if pat[i] = c: match = 1
|
||||
if pat[i] == c: match = 1
|
||||
i = i+1
|
||||
if i >= n or pat[i] = ']':
|
||||
if i >= n or pat[i] == ']':
|
||||
break
|
||||
if pat[i] = '-':
|
||||
if pat[i] == '-':
|
||||
i = i+1
|
||||
if i >= n or pat[i] = ']':
|
||||
if i >= n or pat[i] == ']':
|
||||
break
|
||||
match = (pat[i-2] <= c <= pat[i])
|
||||
if pat[i-2] <= c <= pat[i]:
|
||||
match = 1
|
||||
i = i+1
|
||||
if match = exclude:
|
||||
if i >= n or pat[i] == ']':
|
||||
break
|
||||
if match == exclude:
|
||||
return 0
|
||||
return fnmatch1(rest, pat[i+1:])
|
||||
else:
|
||||
if name[i:i+1] <> c:
|
||||
return 0
|
||||
return 1
|
||||
i = i+1
|
||||
# We don't get here if the pattern contained * or [...]
|
||||
return i >= len(name)
|
||||
|
||||
def fnmatchlist(names, pat):
|
||||
res = []
|
||||
|
@ -22,15 +22,15 @@ error = 'getopt error'
|
||||
|
||||
def getopt(args, options):
|
||||
list = []
|
||||
while args and args[0][0] = '-' and args[0] <> '-':
|
||||
if args[0] = '--':
|
||||
while args and args[0][0] == '-' and args[0] <> '-':
|
||||
if args[0] == '--':
|
||||
args = args[1:]
|
||||
break
|
||||
optstring, args = args[0][1:], args[1:]
|
||||
while optstring <> '':
|
||||
opt, optstring = optstring[0], optstring[1:]
|
||||
if classify(opt, options): # May raise exception as well
|
||||
if optstring = '':
|
||||
if optstring == '':
|
||||
if not args:
|
||||
raise error, 'option -' + opt + ' requires argument'
|
||||
optstring, args = args[0], args[1:]
|
||||
@ -42,6 +42,6 @@ def getopt(args, options):
|
||||
|
||||
def classify(opt, options): # Helper to check type of option
|
||||
for i in range(len(options)):
|
||||
if opt = options[i] <> ':':
|
||||
return options[i+1:i+2] = ':'
|
||||
if opt == options[i] <> ':':
|
||||
return options[i+1:i+2] == ':'
|
||||
raise error, 'option -' + opt + ' not recognized'
|
||||
|
@ -7,7 +7,7 @@ import fnmatch
|
||||
def glob(pathname):
|
||||
if not has_magic(pathname): return [pathname]
|
||||
dirname, basename = path.split(pathname)
|
||||
if dirname[-1:] = '/' and dirname <> '/':
|
||||
if dirname[-1:] == '/' and dirname <> '/':
|
||||
dirname = dirname[:-1]
|
||||
if has_magic(dirname):
|
||||
list = glob(dirname)
|
||||
@ -34,9 +34,10 @@ def glob1(dirname, pattern):
|
||||
names = posix.listdir(dirname)
|
||||
except posix.error:
|
||||
return []
|
||||
names.sort()
|
||||
result = []
|
||||
for name in names:
|
||||
if name[0] <> '.' or pattern[0] = '.':
|
||||
if name[0] <> '.' or pattern[0] == '.':
|
||||
if fnmatch.fnmatch(name, pattern): result.append(name)
|
||||
return result
|
||||
|
||||
|
@ -30,7 +30,7 @@ def ggrep(syntax, pat, filename):
|
||||
prefix = string.rjust(`lineno`, 3) + ': '
|
||||
print prefix + line
|
||||
if 0: # XXX
|
||||
start, end = prog.regs()[0]
|
||||
start, end = prog.regs[0]
|
||||
line = line[:start]
|
||||
if '\t' not in line:
|
||||
prefix = ' ' * (len(prefix) + start)
|
||||
|
@ -69,7 +69,7 @@ def stretch(s, a, b):
|
||||
ib = ib+b
|
||||
if i >= m:
|
||||
break
|
||||
if ib = ja:
|
||||
if ib == ja:
|
||||
out.append(y[i])
|
||||
else:
|
||||
out.append((y[i]*(ja-(ib-b)) + y[i-1]*(ib-ja)) / b)
|
||||
|
@ -49,7 +49,7 @@ def parse_forms(filename):
|
||||
def _open_formfile(filename):
|
||||
if filename[-3:] <> '.fd':
|
||||
filename = filename + '.fd'
|
||||
if filename[0] = '/':
|
||||
if filename[0] == '/':
|
||||
try:
|
||||
fp = open(filename,'r')
|
||||
except IOError:
|
||||
@ -62,7 +62,7 @@ def _open_formfile(filename):
|
||||
break
|
||||
except IOError:
|
||||
fp = None
|
||||
if fp = None:
|
||||
if fp == None:
|
||||
raise error, 'Cannot find forms file ' + filename
|
||||
return fp
|
||||
|
||||
@ -77,7 +77,7 @@ def _parse_fd_header(file):
|
||||
# Now skip until we know number of forms
|
||||
while 1:
|
||||
datum = _parse_1_line(file)
|
||||
if type(datum) = type(()) and datum[0] = 'Numberofforms':
|
||||
if type(datum) == type(()) and datum[0] == 'Numberofforms':
|
||||
break
|
||||
return datum[1]
|
||||
#
|
||||
@ -89,7 +89,7 @@ def _parse_fd_form(file, name):
|
||||
if datum <> FORMLINE:
|
||||
raise error, 'Missing === FORM === line'
|
||||
form = _parse_object(file)
|
||||
if form.Name = name or name = None:
|
||||
if form.Name == name or name == None:
|
||||
objs = []
|
||||
for j in range(form.Numberofobjects):
|
||||
obj = _parse_object(file)
|
||||
@ -147,7 +147,7 @@ def _parse_line(line):
|
||||
if not a:
|
||||
return line
|
||||
name = line[:a[1][1]]
|
||||
if name[0] = 'N':
|
||||
if name[0] == 'N':
|
||||
name = string.joinfields(string.split(name),'')
|
||||
name = string.lower(name)
|
||||
name = string.upper(name[0]) + name[1:]
|
||||
@ -167,7 +167,7 @@ def _readline(file):
|
||||
|
||||
def _parse_1_line(file):
|
||||
line = _readline(file)
|
||||
while line = '':
|
||||
while line == '':
|
||||
line = _readline(file)
|
||||
return _parse_line(line)
|
||||
|
||||
@ -176,7 +176,7 @@ def _skip_object(file):
|
||||
while not line in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
pos = file.tell()
|
||||
line = _readline(file)
|
||||
if line = FORMLINE:
|
||||
if line == FORMLINE:
|
||||
file.seek(pos)
|
||||
|
||||
def _parse_object(file):
|
||||
@ -185,7 +185,7 @@ def _parse_object(file):
|
||||
pos = file.tell()
|
||||
datum = _parse_1_line(file)
|
||||
if datum in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
if datum = FORMLINE:
|
||||
if datum == FORMLINE:
|
||||
file.seek(pos)
|
||||
return obj
|
||||
if type(datum) <> type(()):
|
||||
@ -266,27 +266,27 @@ def _create_object(form, odata):
|
||||
# Internal crfunc: helper function that returns correct create function
|
||||
#
|
||||
def _select_crfunc(fm, cl):
|
||||
if cl = FL.BEGIN_GROUP: return fm.bgn_group
|
||||
elif cl = FL.END_GROUP: return fm.end_group
|
||||
elif cl = FL.BITMAP: return fm.add_bitmap
|
||||
elif cl = FL.BOX: return fm.add_box
|
||||
elif cl = FL.BROWSER: return fm.add_browser
|
||||
elif cl = FL.BUTTON: return fm.add_button
|
||||
elif cl = FL.CHART: return fm.add_chart
|
||||
elif cl = FL.CHOICE: return fm.add_choice
|
||||
elif cl = FL.CLOCK: return fm.add_clock
|
||||
elif cl = FL.COUNTER: return fm.add_counter
|
||||
elif cl = FL.DIAL: return fm.add_dial
|
||||
elif cl = FL.FREE: return fm.add_free
|
||||
elif cl = FL.INPUT: return fm.add_input
|
||||
elif cl = FL.LIGHTBUTTON: return fm.add_lightbutton
|
||||
elif cl = FL.MENU: return fm.add_menu
|
||||
elif cl = FL.POSITIONER: return fm.add_positioner
|
||||
elif cl = FL.ROUNDBUTTON: return fm.add_roundbutton
|
||||
elif cl = FL.SLIDER: return fm.add_slider
|
||||
elif cl = FL.VALSLIDER: return fm.add_valslider
|
||||
elif cl = FL.TEXT: return fm.add_text
|
||||
elif cl = FL.TIMER: return fm.add_timer
|
||||
if cl == FL.BEGIN_GROUP: return fm.bgn_group
|
||||
elif cl == FL.END_GROUP: return fm.end_group
|
||||
elif cl == FL.BITMAP: return fm.add_bitmap
|
||||
elif cl == FL.BOX: return fm.add_box
|
||||
elif cl == FL.BROWSER: return fm.add_browser
|
||||
elif cl == FL.BUTTON: return fm.add_button
|
||||
elif cl == FL.CHART: return fm.add_chart
|
||||
elif cl == FL.CHOICE: return fm.add_choice
|
||||
elif cl == FL.CLOCK: return fm.add_clock
|
||||
elif cl == FL.COUNTER: return fm.add_counter
|
||||
elif cl == FL.DIAL: return fm.add_dial
|
||||
elif cl == FL.FREE: return fm.add_free
|
||||
elif cl == FL.INPUT: return fm.add_input
|
||||
elif cl == FL.LIGHTBUTTON: return fm.add_lightbutton
|
||||
elif cl == FL.MENU: return fm.add_menu
|
||||
elif cl == FL.POSITIONER: return fm.add_positioner
|
||||
elif cl == FL.ROUNDBUTTON: return fm.add_roundbutton
|
||||
elif cl == FL.SLIDER: return fm.add_slider
|
||||
elif cl == FL.VALSLIDER: return fm.add_valslider
|
||||
elif cl == FL.TEXT: return fm.add_text
|
||||
elif cl == FL.TIMER: return fm.add_timer
|
||||
else:
|
||||
raise error, 'Unknown object type: ' + `cl`
|
||||
|
||||
|
@ -17,7 +17,7 @@ debug = 0
|
||||
# Test if an object is a list.
|
||||
#
|
||||
def is_list(x):
|
||||
return type(x) = type([])
|
||||
return type(x) == type([])
|
||||
|
||||
|
||||
# Reverse a list.
|
||||
@ -34,7 +34,7 @@ def reverse(list):
|
||||
#
|
||||
def getattrlist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] = name:
|
||||
if item and is_list(item) and item[0] == name:
|
||||
return item[1:]
|
||||
return []
|
||||
|
||||
@ -43,8 +43,8 @@ def getattrlist(list, name):
|
||||
#
|
||||
def getproplist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] = 'prop':
|
||||
if len(item) > 1 and item[1] = name:
|
||||
if item and is_list(item) and item[0] == 'prop':
|
||||
if len(item) > 1 and item[1] == name:
|
||||
return item[2:]
|
||||
return []
|
||||
|
||||
@ -53,7 +53,7 @@ def getproplist(list, name):
|
||||
#
|
||||
def is_endgroup(list):
|
||||
x = getproplist(list, 'end-of-group')
|
||||
return (x and x[0] = '#t')
|
||||
return (x and x[0] == '#t')
|
||||
|
||||
|
||||
# Neatly display an actuator definition given as S-expression
|
||||
@ -63,13 +63,13 @@ def show_actuator(prefix, a):
|
||||
for item in a:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] = 'al':
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Subactuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) = 2:
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) = 3 and item[0] = 'prop':
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
@ -82,13 +82,13 @@ def show_panel(prefix, p):
|
||||
for item in p:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] = 'al':
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Actuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) = 2:
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) = 3 and item[0] = 'prop':
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
@ -112,14 +112,14 @@ def dummy_callback(arg):
|
||||
#
|
||||
def assign_members(target, attrlist, exclist, prefix):
|
||||
for item in attrlist:
|
||||
if is_list(item) and len(item) = 2 and item[0] not in exclist:
|
||||
if is_list(item) and len(item) == 2 and item[0] not in exclist:
|
||||
name, value = item[0], item[1]
|
||||
ok = 1
|
||||
if value[0] in '-0123456789':
|
||||
value = eval(value)
|
||||
elif value[0] = '"':
|
||||
elif value[0] == '"':
|
||||
value = value[1:-1]
|
||||
elif value = 'move-then-resize':
|
||||
elif value == 'move-then-resize':
|
||||
# Strange default set by Panel Editor...
|
||||
ok = 0
|
||||
else:
|
||||
@ -148,7 +148,7 @@ def build_actuator(descr):
|
||||
else:
|
||||
actuatorname = ''
|
||||
type = descr[0]
|
||||
if type[:4] = 'pnl_': type = type[4:]
|
||||
if type[:4] == 'pnl_': type = type[4:]
|
||||
act = pnl.mkact(type)
|
||||
act.downfunc = act.activefunc = act.upfunc = dummy_callback
|
||||
#
|
||||
@ -158,9 +158,9 @@ def build_actuator(descr):
|
||||
#
|
||||
datalist = getattrlist(descr, 'data')
|
||||
prefix = ''
|
||||
if type[-4:] = 'puck':
|
||||
if type[-4:] == 'puck':
|
||||
prefix = 'puck_'
|
||||
elif type = 'mouse':
|
||||
elif type == 'mouse':
|
||||
prefix = 'mouse_'
|
||||
assign_members(act, datalist, [], prefix)
|
||||
#
|
||||
|
@ -20,16 +20,16 @@ def tokenize_string(s):
|
||||
c = s[:1]
|
||||
if c in whitespace:
|
||||
s = s[1:]
|
||||
elif c = ';':
|
||||
elif c == ';':
|
||||
s = ''
|
||||
elif c = '"':
|
||||
elif c == '"':
|
||||
n = len(s)
|
||||
i = 1
|
||||
while i < n:
|
||||
c = s[i]
|
||||
i = i+1
|
||||
if c = '"': break
|
||||
if c = '\\': i = i+1
|
||||
if c == '"': break
|
||||
if c == '\\': i = i+1
|
||||
tokens.append(s[:i])
|
||||
s = s[i:]
|
||||
elif c in operators:
|
||||
@ -78,9 +78,9 @@ def parse_expr(tokens):
|
||||
while 1:
|
||||
if not tokens:
|
||||
raise syntax_error, 'missing ")"'
|
||||
if tokens[0] = ')':
|
||||
if tokens[0] == ')':
|
||||
return expr, tokens[1:]
|
||||
elif tokens[0] = '(':
|
||||
elif tokens[0] == '(':
|
||||
subexpr, tokens = parse_expr(tokens)
|
||||
expr.append(subexpr)
|
||||
else:
|
||||
|
@ -31,7 +31,7 @@ def dumpsymtab(dict):
|
||||
def dumpvar(name, x):
|
||||
import sys
|
||||
t = type(x)
|
||||
if t = type({}):
|
||||
if t == type({}):
|
||||
print name, '= {}'
|
||||
for key in x.keys():
|
||||
item = x[key]
|
||||
@ -42,7 +42,7 @@ def dumpvar(name, x):
|
||||
if not printable(x):
|
||||
print '#',
|
||||
print name, '=', `x`
|
||||
elif t = type(sys):
|
||||
elif t == type(sys):
|
||||
print 'import', name, '#', x
|
||||
else:
|
||||
print '#', name, '=', x
|
||||
@ -58,6 +58,6 @@ def printable(x):
|
||||
if not printable(item):
|
||||
return 0
|
||||
return 1
|
||||
if x = {}:
|
||||
if x == {}:
|
||||
return 1
|
||||
return 0
|
||||
|
@ -30,7 +30,7 @@ def ggrep(syntax, pat, filename):
|
||||
prefix = string.rjust(`lineno`, 3) + ': '
|
||||
print prefix + line
|
||||
if 0: # XXX
|
||||
start, end = prog.regs()[0]
|
||||
start, end = prog.regs[0]
|
||||
line = line[:start]
|
||||
if '\t' not in line:
|
||||
prefix = ' ' * (len(prefix) + start)
|
||||
|
@ -53,7 +53,7 @@ def listattrs(x):
|
||||
return total
|
||||
i = 0
|
||||
while i+1 < len(total):
|
||||
if total[i] = total[i+1]:
|
||||
if total[i] == total[i+1]:
|
||||
del total[i+1]
|
||||
else:
|
||||
i = i+1
|
||||
@ -62,7 +62,7 @@ def listattrs(x):
|
||||
# Helper to recognize functions
|
||||
#
|
||||
def is_function(x):
|
||||
return type(x) = type(is_function)
|
||||
return type(x) == type(is_function)
|
||||
|
||||
# Approximation of builtin dir(); this lists the user's
|
||||
# variables by default, not the current local name space.
|
||||
@ -71,7 +71,7 @@ def is_function(x):
|
||||
#
|
||||
class _dirclass:
|
||||
def dir(args):
|
||||
if type(args) = type(()):
|
||||
if type(args) == type(()):
|
||||
return listattrs(args[1])
|
||||
else:
|
||||
import __main__
|
||||
|
@ -40,19 +40,19 @@ def browser(tb):
|
||||
break
|
||||
cmd = string.strip(line)
|
||||
if cmd:
|
||||
if cmd = 'quit':
|
||||
if cmd == 'quit':
|
||||
break
|
||||
elif cmd = 'list':
|
||||
elif cmd == 'list':
|
||||
browserlist(tb)
|
||||
elif cmd = 'up':
|
||||
elif cmd == 'up':
|
||||
if ptr-1 >= 0: ptr = ptr-1
|
||||
else: print 'Bottom of stack.'
|
||||
elif cmd = 'down':
|
||||
elif cmd == 'down':
|
||||
if ptr+1 < len(tblist): ptr = ptr+1
|
||||
else: print 'Top of stack.'
|
||||
elif cmd = 'locals':
|
||||
elif cmd == 'locals':
|
||||
printsymbols(tb.tb_frame.f_locals)
|
||||
elif cmd = 'globals':
|
||||
elif cmd == 'globals':
|
||||
printsymbols(tb.tb_frame.f_globals)
|
||||
elif cmd in ('?', 'help'):
|
||||
browserhelp()
|
||||
@ -65,10 +65,10 @@ def browserlist(tb):
|
||||
last = lineno
|
||||
first = max(1, last-10)
|
||||
for i in range(first, last+1):
|
||||
if i = lineno: prefix = '***' + string.rjust(`i`, 4) + ':'
|
||||
if i == lineno: prefix = '***' + string.rjust(`i`, 4) + ':'
|
||||
else: prefix = string.rjust(`i`, 7) + ':'
|
||||
line = readfileline(filename, i)
|
||||
if line[-1:] = '\n': line = line[:-1]
|
||||
if line[-1:] == '\n': line = line[:-1]
|
||||
print prefix + line
|
||||
|
||||
def browserexec(tb, cmd):
|
||||
@ -126,24 +126,24 @@ def printsymbols(d):
|
||||
print
|
||||
|
||||
def printobject(v, maxlevel):
|
||||
if v = None:
|
||||
if v == None:
|
||||
print 'None',
|
||||
elif type(v) in (type(0), type(0.0)):
|
||||
print v,
|
||||
elif type(v) = type(''):
|
||||
elif type(v) == type(''):
|
||||
if len(v) > 20:
|
||||
print `v[:17] + '...'`,
|
||||
else:
|
||||
print `v`,
|
||||
elif type(v) = type(()):
|
||||
elif type(v) == type(()):
|
||||
print '(',
|
||||
printlist(v, maxlevel)
|
||||
print ')',
|
||||
elif type(v) = type([]):
|
||||
elif type(v) == type([]):
|
||||
print '[',
|
||||
printlist(v, maxlevel)
|
||||
print ']',
|
||||
elif type(v) = type({}):
|
||||
elif type(v) == type({}):
|
||||
print '{',
|
||||
printdict(v, maxlevel)
|
||||
print '}',
|
||||
@ -152,7 +152,7 @@ def printobject(v, maxlevel):
|
||||
|
||||
def printlist(v, maxlevel):
|
||||
n = len(v)
|
||||
if n = 0: return
|
||||
if n == 0: return
|
||||
if maxlevel <= 0:
|
||||
print '...',
|
||||
return
|
||||
@ -164,7 +164,7 @@ def printlist(v, maxlevel):
|
||||
def printdict(v, maxlevel):
|
||||
keys = v.keys()
|
||||
n = len(keys)
|
||||
if n = 0: return
|
||||
if n == 0: return
|
||||
if maxlevel <= 0:
|
||||
print '...',
|
||||
return
|
||||
@ -187,8 +187,8 @@ def readfileline(filename, lineno):
|
||||
cache_ok = 0
|
||||
if _filecache.has_key(filename):
|
||||
cached_stat, lines = _filecache[filename]
|
||||
if stat[ST_SIZE] = cached_stat[ST_SIZE] and \
|
||||
stat[ST_MTIME] = cached_stat[ST_MTIME]:
|
||||
if stat[ST_SIZE] == cached_stat[ST_SIZE] and \
|
||||
stat[ST_MTIME] == cached_stat[ST_MTIME]:
|
||||
cache_ok = 1
|
||||
else:
|
||||
print 'Stale cache entry for', filename
|
||||
|
@ -110,7 +110,7 @@ class LabelAppearance:
|
||||
#
|
||||
def draw(self, (d, area)):
|
||||
area = _rect.intersect(area, self.bounds)
|
||||
if area = _rect.empty:
|
||||
if area == _rect.empty:
|
||||
return
|
||||
d.cliprect(area)
|
||||
self.drawit(d)
|
||||
|
@ -43,7 +43,7 @@ class CSplit(Split):
|
||||
# XXX One day Python will have automatic conversions...
|
||||
n = len(self.children)
|
||||
fn = float(n)
|
||||
if n = 0: return
|
||||
if n == 0: return
|
||||
(left, top), (right, bottom) = bounds
|
||||
width, height = right-left, bottom-top
|
||||
child_width, child_height = width*3/(n+4), height*3/(n+4)
|
||||
|
@ -25,7 +25,7 @@ class DirList(VSplit):
|
||||
if path.isdir(path.join(dirname, name)):
|
||||
fullname = path.join(dirname, name)
|
||||
btn = SubdirButton().definetext(self, fullname)
|
||||
elif name[-3:] = '.py':
|
||||
elif name[-3:] == '.py':
|
||||
btn = ModuleButton().definetext(self, name)
|
||||
else:
|
||||
btn = FileButton().definetext(self, name)
|
||||
|
@ -116,7 +116,7 @@ class Split:
|
||||
if not self.keybd_focus:
|
||||
self.set_keybd_focus(self.keybd_interest[0])
|
||||
type, detail = type_detail
|
||||
if type = WE_COMMAND and detail = WC_TAB and \
|
||||
if type == WE_COMMAND and detail == WC_TAB and \
|
||||
len(self.keybd_interest) > 1:
|
||||
self.next_keybd_focus()
|
||||
return
|
||||
@ -144,9 +144,9 @@ class Split:
|
||||
self.timer_interest.remove(child)
|
||||
if child in self.altdraw_interest:
|
||||
self.altdraw_interest.remove(child)
|
||||
if child = self.mouse_focus:
|
||||
if child == self.mouse_focus:
|
||||
self.mouse_focus = None
|
||||
if child = self.keybd_focus:
|
||||
if child == self.keybd_focus:
|
||||
self.keybd_focus = None
|
||||
#
|
||||
def need_mouse(self, child):
|
||||
@ -154,7 +154,7 @@ class Split:
|
||||
self.mouse_interest.append(child)
|
||||
self.parent.need_mouse(self)
|
||||
def no_mouse(self, child):
|
||||
if child = self.mouse_focus:
|
||||
if child == self.mouse_focus:
|
||||
self.mouse_focus = None
|
||||
if child in self.mouse_interest:
|
||||
self.mouse_interest.remove(child)
|
||||
@ -168,7 +168,7 @@ class Split:
|
||||
if not self.keybd_focus:
|
||||
self.set_keybd_focus(child)
|
||||
def no_keybd(self, child):
|
||||
if child = self.keybd_focus:
|
||||
if child == self.keybd_focus:
|
||||
self.keybd_focus = None # Don't call child.deactivate()
|
||||
if child in self.keybd_interest:
|
||||
self.keybd_interest.remove(child)
|
||||
|
@ -51,7 +51,7 @@ class StripChart(LabelAppearance, NoReactivity):
|
||||
#
|
||||
def draw(self, (d, area)):
|
||||
area = rect.intersect(area, self.bounds)
|
||||
if area = rect.empty:
|
||||
if area == rect.empty:
|
||||
return
|
||||
d.cliprect(area)
|
||||
d.erase(self.bounds)
|
||||
|
@ -149,26 +149,26 @@ class WindowParent(ManageOneChild):
|
||||
# Only call dispatch once we are realized
|
||||
#
|
||||
def dispatch(self, (type, win, detail)):
|
||||
if type = WE_DRAW:
|
||||
if type == WE_DRAW:
|
||||
d = self.win.begindrawing()
|
||||
self.child.draw(d, detail)
|
||||
del d
|
||||
if self.do_altdraw: self.child.altdraw(detail)
|
||||
elif type = WE_MOUSE_DOWN:
|
||||
elif type == WE_MOUSE_DOWN:
|
||||
if self.do_mouse: self.child.mouse_down(detail)
|
||||
elif type = WE_MOUSE_MOVE:
|
||||
elif type == WE_MOUSE_MOVE:
|
||||
if self.do_mouse: self.child.mouse_move(detail)
|
||||
elif type = WE_MOUSE_UP:
|
||||
elif type == WE_MOUSE_UP:
|
||||
if self.do_mouse: self.child.mouse_up(detail)
|
||||
elif type in (WE_CHAR, WE_COMMAND):
|
||||
if self.do_keybd: self.child.keybd(type, detail)
|
||||
elif type = WE_TIMER:
|
||||
elif type == WE_TIMER:
|
||||
if self.do_timer: self.child.timer()
|
||||
elif type = WE_SIZE:
|
||||
elif type == WE_SIZE:
|
||||
self.fixup()
|
||||
elif type = WE_CLOSE:
|
||||
elif type == WE_CLOSE:
|
||||
self.close_trigger()
|
||||
elif type = WE_MENU:
|
||||
elif type == WE_MENU:
|
||||
self.menu_trigger(detail)
|
||||
if self.pending_destroy:
|
||||
self.destroy()
|
||||
|
@ -21,7 +21,7 @@ def delayfunc(msecs):
|
||||
#
|
||||
# Use millisleep for very short delays or if there are no windows
|
||||
#
|
||||
if msecs < 100 or mainloop.countwindows() = 0:
|
||||
if msecs < 100 or mainloop.countwindows() == 0:
|
||||
if msecs > 0:
|
||||
time.millisleep(msecs)
|
||||
return
|
||||
@ -46,7 +46,7 @@ cancel = q.cancel
|
||||
# Emptiness check must check both queues
|
||||
#
|
||||
def empty():
|
||||
return q.empty() and mainloop.countwindows() = 0
|
||||
return q.empty() and mainloop.countwindows() == 0
|
||||
|
||||
# Run until there is nothing left to do
|
||||
#
|
||||
|
@ -10,7 +10,7 @@ import dircache
|
||||
|
||||
def action(w, string, i, detail):
|
||||
(h, v), clicks, button, mask = detail
|
||||
if clicks = 2:
|
||||
if clicks == 2:
|
||||
name = path.join(w.name, string)
|
||||
try:
|
||||
w2 = anywin.open(name)
|
||||
|
@ -175,20 +175,20 @@ def test():
|
||||
winsize = w.getwinsize()
|
||||
while 1:
|
||||
type, window, detail = stdwinq.getevent()
|
||||
if type = WE_CLOSE:
|
||||
if type == WE_CLOSE:
|
||||
break
|
||||
elif type = WE_SIZE:
|
||||
elif type == WE_SIZE:
|
||||
newsize = w.getwinsize()
|
||||
if newsize <> winsize:
|
||||
w.change((0,0), winsize)
|
||||
winsize = newsize
|
||||
w.change((0,0), winsize)
|
||||
elif type = WE_MOUSE_DOWN:
|
||||
elif type == WE_MOUSE_DOWN:
|
||||
stage = (stage + 1) % len(stages)
|
||||
justify, center, title = stages[stage]
|
||||
w.settitle(title)
|
||||
w.change((0, 0), (1000, 1000))
|
||||
elif type = WE_DRAW:
|
||||
elif type == WE_DRAW:
|
||||
width, height = winsize
|
||||
f = formatter().init(w.begindrawing(), 0, 0, width)
|
||||
f.center = center
|
||||
@ -198,7 +198,7 @@ def test():
|
||||
for font in font1, font2, font1:
|
||||
f.setfont(font)
|
||||
for word in words:
|
||||
space = 1 + (word[-1:] = '.')
|
||||
space = 1 + (word[-1:] == '.')
|
||||
f.addword(word, space)
|
||||
if center and space > 1:
|
||||
f.flush()
|
||||
|
@ -49,44 +49,44 @@ def mainloop(): # Handle events until no windows left
|
||||
|
||||
def treatevent(e): # Handle a stdwin event
|
||||
type, w, detail = e
|
||||
if type = WE_DRAW:
|
||||
if type == WE_DRAW:
|
||||
w.draw(w, detail)
|
||||
elif type = WE_MENU:
|
||||
elif type == WE_MENU:
|
||||
m, item = detail
|
||||
m.action[item](w, m, item)
|
||||
elif type = WE_COMMAND:
|
||||
elif type == WE_COMMAND:
|
||||
treatcommand(w, detail)
|
||||
elif type = WE_CHAR:
|
||||
elif type == WE_CHAR:
|
||||
w.char(w, detail)
|
||||
elif type = WE_MOUSE_DOWN:
|
||||
elif type == WE_MOUSE_DOWN:
|
||||
if detail[1] > 1: w.m2down(w, detail)
|
||||
else: w.mdown(w, detail)
|
||||
elif type = WE_MOUSE_MOVE:
|
||||
elif type == WE_MOUSE_MOVE:
|
||||
w.mmove(w, detail)
|
||||
elif type = WE_MOUSE_UP:
|
||||
elif type == WE_MOUSE_UP:
|
||||
if detail[1] > 1: w.m2up(w, detail)
|
||||
else: w.mup(w, detail)
|
||||
elif type = WE_SIZE:
|
||||
elif type == WE_SIZE:
|
||||
w.size(w, w.getwinsize())
|
||||
elif type = WE_ACTIVATE:
|
||||
elif type == WE_ACTIVATE:
|
||||
w.activate(w)
|
||||
elif type = WE_DEACTIVATE:
|
||||
elif type == WE_DEACTIVATE:
|
||||
w.deactivate(w)
|
||||
elif type = WE_MOVE:
|
||||
elif type == WE_MOVE:
|
||||
w.move(w)
|
||||
elif type = WE_TIMER:
|
||||
elif type == WE_TIMER:
|
||||
w.timer(w)
|
||||
elif type = WE_CLOSE:
|
||||
elif type == WE_CLOSE:
|
||||
w.close(w)
|
||||
|
||||
def treatcommand(w, type): # Handle a we_command event
|
||||
if type = WC_CLOSE:
|
||||
if type == WC_CLOSE:
|
||||
w.close(w)
|
||||
elif type = WC_RETURN:
|
||||
elif type == WC_RETURN:
|
||||
w.enter(w)
|
||||
elif type = WC_TAB:
|
||||
elif type == WC_TAB:
|
||||
w.tab(w)
|
||||
elif type = WC_BACKSPACE:
|
||||
elif type == WC_BACKSPACE:
|
||||
w.backspace(w)
|
||||
elif type in (WC_LEFT, WC_UP, WC_RIGHT, WC_DOWN):
|
||||
w.arrow(w, type)
|
||||
@ -101,13 +101,13 @@ def close(w): # Close method
|
||||
break
|
||||
|
||||
def arrow(w, detail): # Arrow key method
|
||||
if detail = WC_LEFT:
|
||||
if detail == WC_LEFT:
|
||||
w.kleft(w)
|
||||
elif detail = WC_UP:
|
||||
elif detail == WC_UP:
|
||||
w.kup(w)
|
||||
elif detail = WC_RIGHT:
|
||||
elif detail == WC_RIGHT:
|
||||
w.kright(w)
|
||||
elif detail = WC_DOWN:
|
||||
elif detail == WC_DOWN:
|
||||
w.kdown(w)
|
||||
|
||||
|
||||
|
@ -164,13 +164,13 @@ def whichcol(w, h): # Return column number (may be >= len(w.data))
|
||||
return len(w.data)
|
||||
|
||||
def arrow(w, type):
|
||||
if type = WC_LEFT:
|
||||
if type == WC_LEFT:
|
||||
incr = -1, 0
|
||||
elif type = WC_UP:
|
||||
elif type == WC_UP:
|
||||
incr = 0, -1
|
||||
elif type = WC_RIGHT:
|
||||
elif type == WC_RIGHT:
|
||||
incr = 1, 0
|
||||
elif type = WC_DOWN:
|
||||
elif type == WC_DOWN:
|
||||
incr = 0, 1
|
||||
else:
|
||||
return
|
||||
|
@ -21,7 +21,7 @@ def isabs(s):
|
||||
|
||||
def join(s, t):
|
||||
if (not s) or isabs(t): return t
|
||||
if t[:1] = ':': t = t[1:]
|
||||
if t[:1] == ':': t = t[1:]
|
||||
if ':' not in s:
|
||||
s = ':' + s
|
||||
if s[-1:] <> ':':
|
||||
@ -40,7 +40,7 @@ def split(s):
|
||||
if ':' not in s: return '', s
|
||||
colon = 0
|
||||
for i in range(len(s)):
|
||||
if s[i] = ':': colon = i+1
|
||||
if s[i] == ':': colon = i+1
|
||||
return s[:colon], s[colon:]
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@ def listattrs(x):
|
||||
return total
|
||||
i = 0
|
||||
while i+1 < len(total):
|
||||
if total[i] = total[i+1]:
|
||||
if total[i] == total[i+1]:
|
||||
del total[i+1]
|
||||
else:
|
||||
i = i+1
|
||||
@ -62,7 +62,7 @@ def listattrs(x):
|
||||
# Helper to recognize functions
|
||||
#
|
||||
def is_function(x):
|
||||
return type(x) = type(is_function)
|
||||
return type(x) == type(is_function)
|
||||
|
||||
# Approximation of builtin dir(); this lists the user's
|
||||
# variables by default, not the current local name space.
|
||||
@ -71,7 +71,7 @@ def is_function(x):
|
||||
#
|
||||
class _dirclass:
|
||||
def dir(args):
|
||||
if type(args) = type(()):
|
||||
if type(args) == type(()):
|
||||
return listattrs(args[1])
|
||||
else:
|
||||
import __main__
|
||||
|
@ -160,23 +160,23 @@ def dumptype(x, typedict, types, stack):
|
||||
typedict[xrepr] = uid
|
||||
if typeswitch.has_key(xrepr):
|
||||
print FN, '[', `uid`, '] =', typeswitch[xrepr]
|
||||
elif x = type(sys):
|
||||
elif x == type(sys):
|
||||
print 'import sys'
|
||||
print FN, '[', `uid`, '] = type(sys)'
|
||||
elif x = type(sys.stderr):
|
||||
elif x == type(sys.stderr):
|
||||
print 'import sys'
|
||||
print FN, '[', `uid`, '] = type(sys.stderr)'
|
||||
elif x = type(dumptype):
|
||||
elif x == type(dumptype):
|
||||
print 'def some_function(): pass'
|
||||
print FN, '[', `uid`, '] = type(some_function)'
|
||||
elif x = type(some_class):
|
||||
elif x == type(some_class):
|
||||
print 'class some_class(): pass'
|
||||
print FN, '[', `uid`, '] = type(some_class)'
|
||||
elif x = type(some_instance):
|
||||
elif x == type(some_instance):
|
||||
print 'class another_class(): pass'
|
||||
print 'some_instance = another_class()'
|
||||
print FN, '[', `uid`, '] = type(some_instance)'
|
||||
elif x = type(some_instance.method):
|
||||
elif x == type(some_instance.method):
|
||||
print 'class yet_another_class():'
|
||||
print ' def method(): pass'
|
||||
print 'another_instance = yet_another_class()'
|
||||
|
@ -49,7 +49,7 @@ def parse_forms(filename):
|
||||
def _open_formfile(filename):
|
||||
if filename[-3:] <> '.fd':
|
||||
filename = filename + '.fd'
|
||||
if filename[0] = '/':
|
||||
if filename[0] == '/':
|
||||
try:
|
||||
fp = open(filename,'r')
|
||||
except IOError:
|
||||
@ -62,7 +62,7 @@ def _open_formfile(filename):
|
||||
break
|
||||
except IOError:
|
||||
fp = None
|
||||
if fp = None:
|
||||
if fp == None:
|
||||
raise error, 'Cannot find forms file ' + filename
|
||||
return fp
|
||||
|
||||
@ -77,7 +77,7 @@ def _parse_fd_header(file):
|
||||
# Now skip until we know number of forms
|
||||
while 1:
|
||||
datum = _parse_1_line(file)
|
||||
if type(datum) = type(()) and datum[0] = 'Numberofforms':
|
||||
if type(datum) == type(()) and datum[0] == 'Numberofforms':
|
||||
break
|
||||
return datum[1]
|
||||
#
|
||||
@ -89,7 +89,7 @@ def _parse_fd_form(file, name):
|
||||
if datum <> FORMLINE:
|
||||
raise error, 'Missing === FORM === line'
|
||||
form = _parse_object(file)
|
||||
if form.Name = name or name = None:
|
||||
if form.Name == name or name == None:
|
||||
objs = []
|
||||
for j in range(form.Numberofobjects):
|
||||
obj = _parse_object(file)
|
||||
@ -147,7 +147,7 @@ def _parse_line(line):
|
||||
if not a:
|
||||
return line
|
||||
name = line[:a[1][1]]
|
||||
if name[0] = 'N':
|
||||
if name[0] == 'N':
|
||||
name = string.joinfields(string.split(name),'')
|
||||
name = string.lower(name)
|
||||
name = string.upper(name[0]) + name[1:]
|
||||
@ -167,7 +167,7 @@ def _readline(file):
|
||||
|
||||
def _parse_1_line(file):
|
||||
line = _readline(file)
|
||||
while line = '':
|
||||
while line == '':
|
||||
line = _readline(file)
|
||||
return _parse_line(line)
|
||||
|
||||
@ -176,7 +176,7 @@ def _skip_object(file):
|
||||
while not line in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
pos = file.tell()
|
||||
line = _readline(file)
|
||||
if line = FORMLINE:
|
||||
if line == FORMLINE:
|
||||
file.seek(pos)
|
||||
|
||||
def _parse_object(file):
|
||||
@ -185,7 +185,7 @@ def _parse_object(file):
|
||||
pos = file.tell()
|
||||
datum = _parse_1_line(file)
|
||||
if datum in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
if datum = FORMLINE:
|
||||
if datum == FORMLINE:
|
||||
file.seek(pos)
|
||||
return obj
|
||||
if type(datum) <> type(()):
|
||||
@ -266,27 +266,27 @@ def _create_object(form, odata):
|
||||
# Internal crfunc: helper function that returns correct create function
|
||||
#
|
||||
def _select_crfunc(fm, cl):
|
||||
if cl = FL.BEGIN_GROUP: return fm.bgn_group
|
||||
elif cl = FL.END_GROUP: return fm.end_group
|
||||
elif cl = FL.BITMAP: return fm.add_bitmap
|
||||
elif cl = FL.BOX: return fm.add_box
|
||||
elif cl = FL.BROWSER: return fm.add_browser
|
||||
elif cl = FL.BUTTON: return fm.add_button
|
||||
elif cl = FL.CHART: return fm.add_chart
|
||||
elif cl = FL.CHOICE: return fm.add_choice
|
||||
elif cl = FL.CLOCK: return fm.add_clock
|
||||
elif cl = FL.COUNTER: return fm.add_counter
|
||||
elif cl = FL.DIAL: return fm.add_dial
|
||||
elif cl = FL.FREE: return fm.add_free
|
||||
elif cl = FL.INPUT: return fm.add_input
|
||||
elif cl = FL.LIGHTBUTTON: return fm.add_lightbutton
|
||||
elif cl = FL.MENU: return fm.add_menu
|
||||
elif cl = FL.POSITIONER: return fm.add_positioner
|
||||
elif cl = FL.ROUNDBUTTON: return fm.add_roundbutton
|
||||
elif cl = FL.SLIDER: return fm.add_slider
|
||||
elif cl = FL.VALSLIDER: return fm.add_valslider
|
||||
elif cl = FL.TEXT: return fm.add_text
|
||||
elif cl = FL.TIMER: return fm.add_timer
|
||||
if cl == FL.BEGIN_GROUP: return fm.bgn_group
|
||||
elif cl == FL.END_GROUP: return fm.end_group
|
||||
elif cl == FL.BITMAP: return fm.add_bitmap
|
||||
elif cl == FL.BOX: return fm.add_box
|
||||
elif cl == FL.BROWSER: return fm.add_browser
|
||||
elif cl == FL.BUTTON: return fm.add_button
|
||||
elif cl == FL.CHART: return fm.add_chart
|
||||
elif cl == FL.CHOICE: return fm.add_choice
|
||||
elif cl == FL.CLOCK: return fm.add_clock
|
||||
elif cl == FL.COUNTER: return fm.add_counter
|
||||
elif cl == FL.DIAL: return fm.add_dial
|
||||
elif cl == FL.FREE: return fm.add_free
|
||||
elif cl == FL.INPUT: return fm.add_input
|
||||
elif cl == FL.LIGHTBUTTON: return fm.add_lightbutton
|
||||
elif cl == FL.MENU: return fm.add_menu
|
||||
elif cl == FL.POSITIONER: return fm.add_positioner
|
||||
elif cl == FL.ROUNDBUTTON: return fm.add_roundbutton
|
||||
elif cl == FL.SLIDER: return fm.add_slider
|
||||
elif cl == FL.VALSLIDER: return fm.add_valslider
|
||||
elif cl == FL.TEXT: return fm.add_text
|
||||
elif cl == FL.TIMER: return fm.add_timer
|
||||
else:
|
||||
raise error, 'Unknown object type: ' + `cl`
|
||||
|
||||
|
@ -17,7 +17,7 @@ debug = 0
|
||||
# Test if an object is a list.
|
||||
#
|
||||
def is_list(x):
|
||||
return type(x) = type([])
|
||||
return type(x) == type([])
|
||||
|
||||
|
||||
# Reverse a list.
|
||||
@ -34,7 +34,7 @@ def reverse(list):
|
||||
#
|
||||
def getattrlist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] = name:
|
||||
if item and is_list(item) and item[0] == name:
|
||||
return item[1:]
|
||||
return []
|
||||
|
||||
@ -43,8 +43,8 @@ def getattrlist(list, name):
|
||||
#
|
||||
def getproplist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] = 'prop':
|
||||
if len(item) > 1 and item[1] = name:
|
||||
if item and is_list(item) and item[0] == 'prop':
|
||||
if len(item) > 1 and item[1] == name:
|
||||
return item[2:]
|
||||
return []
|
||||
|
||||
@ -53,7 +53,7 @@ def getproplist(list, name):
|
||||
#
|
||||
def is_endgroup(list):
|
||||
x = getproplist(list, 'end-of-group')
|
||||
return (x and x[0] = '#t')
|
||||
return (x and x[0] == '#t')
|
||||
|
||||
|
||||
# Neatly display an actuator definition given as S-expression
|
||||
@ -63,13 +63,13 @@ def show_actuator(prefix, a):
|
||||
for item in a:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] = 'al':
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Subactuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) = 2:
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) = 3 and item[0] = 'prop':
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
@ -82,13 +82,13 @@ def show_panel(prefix, p):
|
||||
for item in p:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] = 'al':
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Actuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) = 2:
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) = 3 and item[0] = 'prop':
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
@ -112,14 +112,14 @@ def dummy_callback(arg):
|
||||
#
|
||||
def assign_members(target, attrlist, exclist, prefix):
|
||||
for item in attrlist:
|
||||
if is_list(item) and len(item) = 2 and item[0] not in exclist:
|
||||
if is_list(item) and len(item) == 2 and item[0] not in exclist:
|
||||
name, value = item[0], item[1]
|
||||
ok = 1
|
||||
if value[0] in '-0123456789':
|
||||
value = eval(value)
|
||||
elif value[0] = '"':
|
||||
elif value[0] == '"':
|
||||
value = value[1:-1]
|
||||
elif value = 'move-then-resize':
|
||||
elif value == 'move-then-resize':
|
||||
# Strange default set by Panel Editor...
|
||||
ok = 0
|
||||
else:
|
||||
@ -148,7 +148,7 @@ def build_actuator(descr):
|
||||
else:
|
||||
actuatorname = ''
|
||||
type = descr[0]
|
||||
if type[:4] = 'pnl_': type = type[4:]
|
||||
if type[:4] == 'pnl_': type = type[4:]
|
||||
act = pnl.mkact(type)
|
||||
act.downfunc = act.activefunc = act.upfunc = dummy_callback
|
||||
#
|
||||
@ -158,9 +158,9 @@ def build_actuator(descr):
|
||||
#
|
||||
datalist = getattrlist(descr, 'data')
|
||||
prefix = ''
|
||||
if type[-4:] = 'puck':
|
||||
if type[-4:] == 'puck':
|
||||
prefix = 'puck_'
|
||||
elif type = 'mouse':
|
||||
elif type == 'mouse':
|
||||
prefix = 'mouse_'
|
||||
assign_members(act, datalist, [], prefix)
|
||||
#
|
||||
|
@ -20,16 +20,16 @@ def tokenize_string(s):
|
||||
c = s[:1]
|
||||
if c in whitespace:
|
||||
s = s[1:]
|
||||
elif c = ';':
|
||||
elif c == ';':
|
||||
s = ''
|
||||
elif c = '"':
|
||||
elif c == '"':
|
||||
n = len(s)
|
||||
i = 1
|
||||
while i < n:
|
||||
c = s[i]
|
||||
i = i+1
|
||||
if c = '"': break
|
||||
if c = '\\': i = i+1
|
||||
if c == '"': break
|
||||
if c == '\\': i = i+1
|
||||
tokens.append(s[:i])
|
||||
s = s[i:]
|
||||
elif c in operators:
|
||||
@ -78,9 +78,9 @@ def parse_expr(tokens):
|
||||
while 1:
|
||||
if not tokens:
|
||||
raise syntax_error, 'missing ")"'
|
||||
if tokens[0] = ')':
|
||||
if tokens[0] == ')':
|
||||
return expr, tokens[1:]
|
||||
elif tokens[0] = '(':
|
||||
elif tokens[0] == '(':
|
||||
subexpr, tokens = parse_expr(tokens)
|
||||
expr.append(subexpr)
|
||||
else:
|
||||
|
@ -39,9 +39,9 @@ def times(a, b):
|
||||
return res
|
||||
|
||||
def power(a, n): # Raise polynomial a to the positive integral power n
|
||||
if n = 0: return [1]
|
||||
if n = 1: return a
|
||||
if n/2*2 = n:
|
||||
if n == 0: return [1]
|
||||
if n == 1: return a
|
||||
if n/2*2 == n:
|
||||
b = power(a, n/2)
|
||||
return times(b, b)
|
||||
return times(power(a, n-1), a)
|
||||
|
@ -10,8 +10,8 @@ import stat
|
||||
# (begins with '/').
|
||||
#
|
||||
def join(a, b):
|
||||
if b[:1] = '/': return b
|
||||
if a = '' or a[-1:] = '/': return a + b
|
||||
if b[:1] == '/': return b
|
||||
if a == '' or a[-1:] == '/': return a + b
|
||||
# Note: join('x', '') returns 'x/'; is this what we want?
|
||||
return a + '/' + b
|
||||
|
||||
@ -27,7 +27,7 @@ def split(p):
|
||||
head, tail = '', ''
|
||||
for c in p:
|
||||
tail = tail + c
|
||||
if c = '/':
|
||||
if c == '/':
|
||||
head, tail = head + tail, ''
|
||||
return head, tail
|
||||
|
||||
@ -40,9 +40,9 @@ def split(p):
|
||||
def splitext(p):
|
||||
root, ext = '', ''
|
||||
for c in p:
|
||||
if c = '/':
|
||||
if c == '/':
|
||||
root, ext = root + ext + c, ''
|
||||
elif c = '.' or ext:
|
||||
elif c == '.' or ext:
|
||||
ext = ext + c
|
||||
else:
|
||||
root = root + c
|
||||
@ -64,7 +64,7 @@ def commonprefix(m):
|
||||
for i in range(len(prefix)):
|
||||
if prefix[:i+1] <> item[:i+1]:
|
||||
prefix = prefix[:i]
|
||||
if i = 0: return ''
|
||||
if i == 0: return ''
|
||||
break
|
||||
return prefix
|
||||
|
||||
@ -122,8 +122,8 @@ def sameopenfile(fp1, fp2):
|
||||
# describing the same file?
|
||||
#
|
||||
def samestat(s1, s2):
|
||||
return s1[stat.ST_INO] = s2[stat.ST_INO] and \
|
||||
s1[stat.ST_DEV] = s2[stat.STD_DEV]
|
||||
return s1[stat.ST_INO] == s2[stat.ST_INO] and \
|
||||
s1[stat.ST_DEV] == s2[stat.STD_DEV]
|
||||
|
||||
|
||||
# Subroutine and global data used by ismount().
|
||||
@ -137,7 +137,7 @@ def _getmounts():
|
||||
lines = string.splitfields(data, '\n')
|
||||
for line in lines:
|
||||
words = string.split(line)
|
||||
if len(words) >= 3 and words[1] = 'on':
|
||||
if len(words) >= 3 and words[1] == 'on':
|
||||
mounts.append(words[2])
|
||||
return mounts
|
||||
|
||||
|
@ -49,7 +49,7 @@ class scheduler:
|
||||
for i in range(len(q)):
|
||||
qtime, qpri, qact, qarg = q[i]
|
||||
if time < qtime: break
|
||||
if time = qtime and priority < qpri: break
|
||||
if time == qtime and priority < qpri: break
|
||||
else:
|
||||
i = len(q)
|
||||
q.insert(i, event)
|
||||
@ -72,7 +72,7 @@ class scheduler:
|
||||
# Check whether the queue is empty.
|
||||
#
|
||||
def empty(self):
|
||||
return len(self.queue) = 0
|
||||
return len(self.queue) == 0
|
||||
#
|
||||
# Run: execute events until the queue is empty.
|
||||
#
|
||||
|
14
Lib/stat.py
14
Lib/stat.py
@ -36,22 +36,22 @@ S_IFLNK = 0120000
|
||||
S_IFSOCK = 0140000
|
||||
|
||||
def S_ISDIR(mode):
|
||||
return S_IFMT(mode) = S_IFDIR
|
||||
return S_IFMT(mode) == S_IFDIR
|
||||
|
||||
def S_ISCHR(mode):
|
||||
return S_IFMT(mode) = S_IFCHR
|
||||
return S_IFMT(mode) == S_IFCHR
|
||||
|
||||
def S_ISBLK(mode):
|
||||
return S_IFMT(mode) = S_IFBLK
|
||||
return S_IFMT(mode) == S_IFBLK
|
||||
|
||||
def S_ISREG(mode):
|
||||
return S_IFMT(mode) = S_IFREG
|
||||
return S_IFMT(mode) == S_IFREG
|
||||
|
||||
def S_ISFIFO(mode):
|
||||
return S_IFMT(mode) = S_IFIFO
|
||||
return S_IFMT(mode) == S_IFIFO
|
||||
|
||||
def S_ISLNK(mode):
|
||||
return S_IFMT(mode) = S_IFLNK
|
||||
return S_IFMT(mode) == S_IFLNK
|
||||
|
||||
def S_ISSOCK(mode):
|
||||
return S_IFMT(mode) = S_IFSOCK
|
||||
return S_IFMT(mode) == S_IFSOCK
|
||||
|
@ -44,7 +44,7 @@ def forget(path):
|
||||
def forget_prefix(prefix):
|
||||
n = len(prefix)
|
||||
for path in cache.keys():
|
||||
if path[:n] = prefix:
|
||||
if path[:n] == prefix:
|
||||
del cache[path]
|
||||
|
||||
|
||||
@ -52,16 +52,16 @@ def forget_prefix(prefix):
|
||||
# entries in subdirectories.
|
||||
#
|
||||
def forget_dir(prefix):
|
||||
if prefix[-1:] = '/' and prefix <> '/':
|
||||
if prefix[-1:] == '/' and prefix <> '/':
|
||||
prefix = prefix[:-1]
|
||||
forget(prefix)
|
||||
if prefix[-1:] <> '/':
|
||||
prefix = prefix + '/'
|
||||
n = len(prefix)
|
||||
for path in cache.keys():
|
||||
if path[:n] = prefix:
|
||||
if path[:n] == prefix:
|
||||
rest = path[n:]
|
||||
if rest[-1:] = '/': rest = rest[:-1]
|
||||
if rest[-1:] == '/': rest = rest[:-1]
|
||||
if '/' not in rest:
|
||||
del cache[path]
|
||||
|
||||
|
@ -110,7 +110,7 @@ class LabelAppearance:
|
||||
#
|
||||
def draw(self, (d, area)):
|
||||
area = _rect.intersect(area, self.bounds)
|
||||
if area = _rect.empty:
|
||||
if area == _rect.empty:
|
||||
return
|
||||
d.cliprect(area)
|
||||
self.drawit(d)
|
||||
|
@ -43,7 +43,7 @@ class CSplit(Split):
|
||||
# XXX One day Python will have automatic conversions...
|
||||
n = len(self.children)
|
||||
fn = float(n)
|
||||
if n = 0: return
|
||||
if n == 0: return
|
||||
(left, top), (right, bottom) = bounds
|
||||
width, height = right-left, bottom-top
|
||||
child_width, child_height = width*3/(n+4), height*3/(n+4)
|
||||
|
@ -25,7 +25,7 @@ class DirList(VSplit):
|
||||
if path.isdir(path.join(dirname, name)):
|
||||
fullname = path.join(dirname, name)
|
||||
btn = SubdirButton().definetext(self, fullname)
|
||||
elif name[-3:] = '.py':
|
||||
elif name[-3:] == '.py':
|
||||
btn = ModuleButton().definetext(self, name)
|
||||
else:
|
||||
btn = FileButton().definetext(self, name)
|
||||
|
@ -116,7 +116,7 @@ class Split:
|
||||
if not self.keybd_focus:
|
||||
self.set_keybd_focus(self.keybd_interest[0])
|
||||
type, detail = type_detail
|
||||
if type = WE_COMMAND and detail = WC_TAB and \
|
||||
if type == WE_COMMAND and detail == WC_TAB and \
|
||||
len(self.keybd_interest) > 1:
|
||||
self.next_keybd_focus()
|
||||
return
|
||||
@ -144,9 +144,9 @@ class Split:
|
||||
self.timer_interest.remove(child)
|
||||
if child in self.altdraw_interest:
|
||||
self.altdraw_interest.remove(child)
|
||||
if child = self.mouse_focus:
|
||||
if child == self.mouse_focus:
|
||||
self.mouse_focus = None
|
||||
if child = self.keybd_focus:
|
||||
if child == self.keybd_focus:
|
||||
self.keybd_focus = None
|
||||
#
|
||||
def need_mouse(self, child):
|
||||
@ -154,7 +154,7 @@ class Split:
|
||||
self.mouse_interest.append(child)
|
||||
self.parent.need_mouse(self)
|
||||
def no_mouse(self, child):
|
||||
if child = self.mouse_focus:
|
||||
if child == self.mouse_focus:
|
||||
self.mouse_focus = None
|
||||
if child in self.mouse_interest:
|
||||
self.mouse_interest.remove(child)
|
||||
@ -168,7 +168,7 @@ class Split:
|
||||
if not self.keybd_focus:
|
||||
self.set_keybd_focus(child)
|
||||
def no_keybd(self, child):
|
||||
if child = self.keybd_focus:
|
||||
if child == self.keybd_focus:
|
||||
self.keybd_focus = None # Don't call child.deactivate()
|
||||
if child in self.keybd_interest:
|
||||
self.keybd_interest.remove(child)
|
||||
|
@ -51,7 +51,7 @@ class StripChart(LabelAppearance, NoReactivity):
|
||||
#
|
||||
def draw(self, (d, area)):
|
||||
area = rect.intersect(area, self.bounds)
|
||||
if area = rect.empty:
|
||||
if area == rect.empty:
|
||||
return
|
||||
d.cliprect(area)
|
||||
d.erase(self.bounds)
|
||||
|
@ -149,26 +149,26 @@ class WindowParent(ManageOneChild):
|
||||
# Only call dispatch once we are realized
|
||||
#
|
||||
def dispatch(self, (type, win, detail)):
|
||||
if type = WE_DRAW:
|
||||
if type == WE_DRAW:
|
||||
d = self.win.begindrawing()
|
||||
self.child.draw(d, detail)
|
||||
del d
|
||||
if self.do_altdraw: self.child.altdraw(detail)
|
||||
elif type = WE_MOUSE_DOWN:
|
||||
elif type == WE_MOUSE_DOWN:
|
||||
if self.do_mouse: self.child.mouse_down(detail)
|
||||
elif type = WE_MOUSE_MOVE:
|
||||
elif type == WE_MOUSE_MOVE:
|
||||
if self.do_mouse: self.child.mouse_move(detail)
|
||||
elif type = WE_MOUSE_UP:
|
||||
elif type == WE_MOUSE_UP:
|
||||
if self.do_mouse: self.child.mouse_up(detail)
|
||||
elif type in (WE_CHAR, WE_COMMAND):
|
||||
if self.do_keybd: self.child.keybd(type, detail)
|
||||
elif type = WE_TIMER:
|
||||
elif type == WE_TIMER:
|
||||
if self.do_timer: self.child.timer()
|
||||
elif type = WE_SIZE:
|
||||
elif type == WE_SIZE:
|
||||
self.fixup()
|
||||
elif type = WE_CLOSE:
|
||||
elif type == WE_CLOSE:
|
||||
self.close_trigger()
|
||||
elif type = WE_MENU:
|
||||
elif type == WE_MENU:
|
||||
self.menu_trigger(detail)
|
||||
if self.pending_destroy:
|
||||
self.destroy()
|
||||
|
@ -21,7 +21,7 @@ def delayfunc(msecs):
|
||||
#
|
||||
# Use millisleep for very short delays or if there are no windows
|
||||
#
|
||||
if msecs < 100 or mainloop.countwindows() = 0:
|
||||
if msecs < 100 or mainloop.countwindows() == 0:
|
||||
if msecs > 0:
|
||||
time.millisleep(msecs)
|
||||
return
|
||||
@ -46,7 +46,7 @@ cancel = q.cancel
|
||||
# Emptiness check must check both queues
|
||||
#
|
||||
def empty():
|
||||
return q.empty() and mainloop.countwindows() = 0
|
||||
return q.empty() and mainloop.countwindows() == 0
|
||||
|
||||
# Run until there is nothing left to do
|
||||
#
|
||||
|
@ -10,7 +10,7 @@ import dircache
|
||||
|
||||
def action(w, string, i, detail):
|
||||
(h, v), clicks, button, mask = detail
|
||||
if clicks = 2:
|
||||
if clicks == 2:
|
||||
name = path.join(w.name, string)
|
||||
try:
|
||||
w2 = anywin.open(name)
|
||||
|
@ -175,20 +175,20 @@ def test():
|
||||
winsize = w.getwinsize()
|
||||
while 1:
|
||||
type, window, detail = stdwinq.getevent()
|
||||
if type = WE_CLOSE:
|
||||
if type == WE_CLOSE:
|
||||
break
|
||||
elif type = WE_SIZE:
|
||||
elif type == WE_SIZE:
|
||||
newsize = w.getwinsize()
|
||||
if newsize <> winsize:
|
||||
w.change((0,0), winsize)
|
||||
winsize = newsize
|
||||
w.change((0,0), winsize)
|
||||
elif type = WE_MOUSE_DOWN:
|
||||
elif type == WE_MOUSE_DOWN:
|
||||
stage = (stage + 1) % len(stages)
|
||||
justify, center, title = stages[stage]
|
||||
w.settitle(title)
|
||||
w.change((0, 0), (1000, 1000))
|
||||
elif type = WE_DRAW:
|
||||
elif type == WE_DRAW:
|
||||
width, height = winsize
|
||||
f = formatter().init(w.begindrawing(), 0, 0, width)
|
||||
f.center = center
|
||||
@ -198,7 +198,7 @@ def test():
|
||||
for font in font1, font2, font1:
|
||||
f.setfont(font)
|
||||
for word in words:
|
||||
space = 1 + (word[-1:] = '.')
|
||||
space = 1 + (word[-1:] == '.')
|
||||
f.addword(word, space)
|
||||
if center and space > 1:
|
||||
f.flush()
|
||||
|
@ -49,44 +49,44 @@ def mainloop(): # Handle events until no windows left
|
||||
|
||||
def treatevent(e): # Handle a stdwin event
|
||||
type, w, detail = e
|
||||
if type = WE_DRAW:
|
||||
if type == WE_DRAW:
|
||||
w.draw(w, detail)
|
||||
elif type = WE_MENU:
|
||||
elif type == WE_MENU:
|
||||
m, item = detail
|
||||
m.action[item](w, m, item)
|
||||
elif type = WE_COMMAND:
|
||||
elif type == WE_COMMAND:
|
||||
treatcommand(w, detail)
|
||||
elif type = WE_CHAR:
|
||||
elif type == WE_CHAR:
|
||||
w.char(w, detail)
|
||||
elif type = WE_MOUSE_DOWN:
|
||||
elif type == WE_MOUSE_DOWN:
|
||||
if detail[1] > 1: w.m2down(w, detail)
|
||||
else: w.mdown(w, detail)
|
||||
elif type = WE_MOUSE_MOVE:
|
||||
elif type == WE_MOUSE_MOVE:
|
||||
w.mmove(w, detail)
|
||||
elif type = WE_MOUSE_UP:
|
||||
elif type == WE_MOUSE_UP:
|
||||
if detail[1] > 1: w.m2up(w, detail)
|
||||
else: w.mup(w, detail)
|
||||
elif type = WE_SIZE:
|
||||
elif type == WE_SIZE:
|
||||
w.size(w, w.getwinsize())
|
||||
elif type = WE_ACTIVATE:
|
||||
elif type == WE_ACTIVATE:
|
||||
w.activate(w)
|
||||
elif type = WE_DEACTIVATE:
|
||||
elif type == WE_DEACTIVATE:
|
||||
w.deactivate(w)
|
||||
elif type = WE_MOVE:
|
||||
elif type == WE_MOVE:
|
||||
w.move(w)
|
||||
elif type = WE_TIMER:
|
||||
elif type == WE_TIMER:
|
||||
w.timer(w)
|
||||
elif type = WE_CLOSE:
|
||||
elif type == WE_CLOSE:
|
||||
w.close(w)
|
||||
|
||||
def treatcommand(w, type): # Handle a we_command event
|
||||
if type = WC_CLOSE:
|
||||
if type == WC_CLOSE:
|
||||
w.close(w)
|
||||
elif type = WC_RETURN:
|
||||
elif type == WC_RETURN:
|
||||
w.enter(w)
|
||||
elif type = WC_TAB:
|
||||
elif type == WC_TAB:
|
||||
w.tab(w)
|
||||
elif type = WC_BACKSPACE:
|
||||
elif type == WC_BACKSPACE:
|
||||
w.backspace(w)
|
||||
elif type in (WC_LEFT, WC_UP, WC_RIGHT, WC_DOWN):
|
||||
w.arrow(w, type)
|
||||
@ -101,13 +101,13 @@ def close(w): # Close method
|
||||
break
|
||||
|
||||
def arrow(w, detail): # Arrow key method
|
||||
if detail = WC_LEFT:
|
||||
if detail == WC_LEFT:
|
||||
w.kleft(w)
|
||||
elif detail = WC_UP:
|
||||
elif detail == WC_UP:
|
||||
w.kup(w)
|
||||
elif detail = WC_RIGHT:
|
||||
elif detail == WC_RIGHT:
|
||||
w.kright(w)
|
||||
elif detail = WC_DOWN:
|
||||
elif detail == WC_DOWN:
|
||||
w.kdown(w)
|
||||
|
||||
|
||||
|
@ -164,13 +164,13 @@ def whichcol(w, h): # Return column number (may be >= len(w.data))
|
||||
return len(w.data)
|
||||
|
||||
def arrow(w, type):
|
||||
if type = WC_LEFT:
|
||||
if type == WC_LEFT:
|
||||
incr = -1, 0
|
||||
elif type = WC_UP:
|
||||
elif type == WC_UP:
|
||||
incr = 0, -1
|
||||
elif type = WC_RIGHT:
|
||||
elif type == WC_RIGHT:
|
||||
incr = 1, 0
|
||||
elif type = WC_DOWN:
|
||||
elif type == WC_DOWN:
|
||||
incr = 0, 1
|
||||
else:
|
||||
return
|
||||
|
@ -56,7 +56,7 @@ def split(s):
|
||||
i, n = 0, len(s)
|
||||
while i < n:
|
||||
while i < n and s[i] in whitespace: i = i+1
|
||||
if i = n: break
|
||||
if i == n: break
|
||||
j = i
|
||||
while j < n and s[j] not in whitespace: j = j+1
|
||||
res.append(s[i:j])
|
||||
@ -71,7 +71,7 @@ def splitfields(s, sep):
|
||||
nsep = len(sep)
|
||||
i = j = 0
|
||||
while j+nsep <= ns:
|
||||
if s[j:j+nsep] = sep:
|
||||
if s[j:j+nsep] == sep:
|
||||
res.append(s[i:j])
|
||||
i = j = j + nsep
|
||||
else:
|
||||
@ -98,7 +98,7 @@ index_error = 'substring not found in string.index'
|
||||
def index(s, sub):
|
||||
n = len(sub)
|
||||
for i in range(len(s) + 1 - n):
|
||||
if sub = s[i:i+n]: return i
|
||||
if sub == s[i:i+n]: return i
|
||||
raise index_error, (s, sub)
|
||||
|
||||
# Convert string to integer
|
||||
@ -137,7 +137,7 @@ def center(s, width):
|
||||
# Decadent feature: the argument may be a string or a number
|
||||
# (Use of this is deprecated; it should be a string as with ljust c.s.)
|
||||
def zfill(x, width):
|
||||
if type(x) = type(''): s = x
|
||||
if type(x) == type(''): s = x
|
||||
else: s = `x`
|
||||
n = len(s)
|
||||
if n >= width: return s
|
||||
|
@ -56,7 +56,7 @@ def split(s):
|
||||
i, n = 0, len(s)
|
||||
while i < n:
|
||||
while i < n and s[i] in whitespace: i = i+1
|
||||
if i = n: break
|
||||
if i == n: break
|
||||
j = i
|
||||
while j < n and s[j] not in whitespace: j = j+1
|
||||
res.append(s[i:j])
|
||||
@ -71,7 +71,7 @@ def splitfields(s, sep):
|
||||
nsep = len(sep)
|
||||
i = j = 0
|
||||
while j+nsep <= ns:
|
||||
if s[j:j+nsep] = sep:
|
||||
if s[j:j+nsep] == sep:
|
||||
res.append(s[i:j])
|
||||
i = j = j + nsep
|
||||
else:
|
||||
@ -98,7 +98,7 @@ index_error = 'substring not found in string.index'
|
||||
def index(s, sub):
|
||||
n = len(sub)
|
||||
for i in range(len(s) + 1 - n):
|
||||
if sub = s[i:i+n]: return i
|
||||
if sub == s[i:i+n]: return i
|
||||
raise index_error, (s, sub)
|
||||
|
||||
# Convert string to integer
|
||||
@ -137,7 +137,7 @@ def center(s, width):
|
||||
# Decadent feature: the argument may be a string or a number
|
||||
# (Use of this is deprecated; it should be a string as with ljust c.s.)
|
||||
def zfill(x, width):
|
||||
if type(x) = type(''): s = x
|
||||
if type(x) == type(''): s = x
|
||||
else: s = `x`
|
||||
n = len(s)
|
||||
if n >= width: return s
|
||||
|
@ -44,7 +44,7 @@ def gethdr(fp):
|
||||
def printhdr(file):
|
||||
hdr = gethdr(open(file, 'r'))
|
||||
data_size, encoding, sample_rate, channels, info = hdr
|
||||
while info[-1:] = '\0':
|
||||
while info[-1:] == '\0':
|
||||
info = info[:-1]
|
||||
print 'File name: ', file
|
||||
print 'Data size: ', data_size
|
||||
|
34
Lib/tb.py
34
Lib/tb.py
@ -40,19 +40,19 @@ def browser(tb):
|
||||
break
|
||||
cmd = string.strip(line)
|
||||
if cmd:
|
||||
if cmd = 'quit':
|
||||
if cmd == 'quit':
|
||||
break
|
||||
elif cmd = 'list':
|
||||
elif cmd == 'list':
|
||||
browserlist(tb)
|
||||
elif cmd = 'up':
|
||||
elif cmd == 'up':
|
||||
if ptr-1 >= 0: ptr = ptr-1
|
||||
else: print 'Bottom of stack.'
|
||||
elif cmd = 'down':
|
||||
elif cmd == 'down':
|
||||
if ptr+1 < len(tblist): ptr = ptr+1
|
||||
else: print 'Top of stack.'
|
||||
elif cmd = 'locals':
|
||||
elif cmd == 'locals':
|
||||
printsymbols(tb.tb_frame.f_locals)
|
||||
elif cmd = 'globals':
|
||||
elif cmd == 'globals':
|
||||
printsymbols(tb.tb_frame.f_globals)
|
||||
elif cmd in ('?', 'help'):
|
||||
browserhelp()
|
||||
@ -65,10 +65,10 @@ def browserlist(tb):
|
||||
last = lineno
|
||||
first = max(1, last-10)
|
||||
for i in range(first, last+1):
|
||||
if i = lineno: prefix = '***' + string.rjust(`i`, 4) + ':'
|
||||
if i == lineno: prefix = '***' + string.rjust(`i`, 4) + ':'
|
||||
else: prefix = string.rjust(`i`, 7) + ':'
|
||||
line = readfileline(filename, i)
|
||||
if line[-1:] = '\n': line = line[:-1]
|
||||
if line[-1:] == '\n': line = line[:-1]
|
||||
print prefix + line
|
||||
|
||||
def browserexec(tb, cmd):
|
||||
@ -126,24 +126,24 @@ def printsymbols(d):
|
||||
print
|
||||
|
||||
def printobject(v, maxlevel):
|
||||
if v = None:
|
||||
if v == None:
|
||||
print 'None',
|
||||
elif type(v) in (type(0), type(0.0)):
|
||||
print v,
|
||||
elif type(v) = type(''):
|
||||
elif type(v) == type(''):
|
||||
if len(v) > 20:
|
||||
print `v[:17] + '...'`,
|
||||
else:
|
||||
print `v`,
|
||||
elif type(v) = type(()):
|
||||
elif type(v) == type(()):
|
||||
print '(',
|
||||
printlist(v, maxlevel)
|
||||
print ')',
|
||||
elif type(v) = type([]):
|
||||
elif type(v) == type([]):
|
||||
print '[',
|
||||
printlist(v, maxlevel)
|
||||
print ']',
|
||||
elif type(v) = type({}):
|
||||
elif type(v) == type({}):
|
||||
print '{',
|
||||
printdict(v, maxlevel)
|
||||
print '}',
|
||||
@ -152,7 +152,7 @@ def printobject(v, maxlevel):
|
||||
|
||||
def printlist(v, maxlevel):
|
||||
n = len(v)
|
||||
if n = 0: return
|
||||
if n == 0: return
|
||||
if maxlevel <= 0:
|
||||
print '...',
|
||||
return
|
||||
@ -164,7 +164,7 @@ def printlist(v, maxlevel):
|
||||
def printdict(v, maxlevel):
|
||||
keys = v.keys()
|
||||
n = len(keys)
|
||||
if n = 0: return
|
||||
if n == 0: return
|
||||
if maxlevel <= 0:
|
||||
print '...',
|
||||
return
|
||||
@ -187,8 +187,8 @@ def readfileline(filename, lineno):
|
||||
cache_ok = 0
|
||||
if _filecache.has_key(filename):
|
||||
cached_stat, lines = _filecache[filename]
|
||||
if stat[ST_SIZE] = cached_stat[ST_SIZE] and \
|
||||
stat[ST_MTIME] = cached_stat[ST_MTIME]:
|
||||
if stat[ST_SIZE] == cached_stat[ST_SIZE] and \
|
||||
stat[ST_MTIME] == cached_stat[ST_MTIME]:
|
||||
cache_ok = 1
|
||||
else:
|
||||
print 'Stale cache entry for', filename
|
||||
|
@ -40,9 +40,13 @@ if 0xff <> 255: raise TestFailed, 'hex number'
|
||||
if 0377 <> 255: raise TestFailed, 'octal number'
|
||||
x = 3.14
|
||||
x = 0.314
|
||||
x = .14
|
||||
x = 3.
|
||||
x = 3e14
|
||||
x = 3E14
|
||||
x = 3e-14
|
||||
x = 3.e14
|
||||
x = .14e3
|
||||
x = 0L
|
||||
x = 0l
|
||||
x = 0xffffffffffffffffL
|
||||
@ -209,11 +213,11 @@ print 'test' # and_test ('or' and_test)*
|
||||
### comparison: expr (comp_op expr)*
|
||||
### comp_op: '<'|'>'|'='|'>' '='|'<' '='|'<' '>'|'in'|'not' 'in'|'is'|'is' 'not'
|
||||
if 1: pass
|
||||
if 1 = 1: pass
|
||||
if 1 < 1 > 1 = 1 >= 1 <= 1 <> 1 in 1 not in 1 is 1 is not 1: pass
|
||||
if not 1 = 1 = 1: pass
|
||||
if not 1 = 1 and 1 and 1: pass
|
||||
if 1 and 1 or 1 and 1 and 1 or not 1 = 1 = 1 and 1: pass
|
||||
if 1 == 1: pass
|
||||
if 1 < 1 > 1 == 1 >= 1 <= 1 <> 1 in 1 not in 1 is 1 is not 1: pass
|
||||
if not 1 == 1 == 1: pass
|
||||
if not 1 == 1 and 1 and 1: pass
|
||||
if 1 and 1 or 1 and 1 and 1 or not 1 == 1 == 1 and 1: pass
|
||||
|
||||
print 'expr' # term (('+'|'-') term)*
|
||||
x = 1
|
||||
@ -236,17 +240,34 @@ x = 1
|
||||
c = sys.path[0]
|
||||
x = time.time()
|
||||
x = sys.modules['time'].time()
|
||||
a = '01234'
|
||||
c = a[0]
|
||||
c = a[0:5]
|
||||
c = a[:5]
|
||||
c = a[0:]
|
||||
c = a[:]
|
||||
c = a[-5:]
|
||||
c = a[:-1]
|
||||
c = a[-4:-3]
|
||||
for a in '01234', (0,1,2,3,4), [0,1,2,3,4]:
|
||||
c = a[0]
|
||||
c = a[-1]
|
||||
c = a[0:5]
|
||||
c = a[:5]
|
||||
c = a[0:]
|
||||
c = a[:]
|
||||
c = a[-5:]
|
||||
c = a[:-1]
|
||||
c = a[-4:-3]
|
||||
a = [0,1,2,3,4]
|
||||
del a[0]
|
||||
a = [0,1,2,3,4]
|
||||
del a[-1]
|
||||
a = [0,1,2,3,4]
|
||||
del a[1:2]
|
||||
a = [0,1,2,3,4]
|
||||
del a[:1]
|
||||
a = [0,1,2,3,4]
|
||||
del a[-1:]
|
||||
a = [0,1,2,3,4]
|
||||
a[0] = 0
|
||||
a[-1] = 4
|
||||
a[1:2] = [1]
|
||||
a[1:4] = [0]
|
||||
a[1:-1] = [1,2,3]
|
||||
|
||||
print 'atom' # '(' [testlist] ')' | '[' [testlist] ']' | '{' '}' | '`' testlist '`' | NAME | NUMBER | STRING
|
||||
print 'atom' # '(' [tetslist] ')' | '[' [testlist] ']' | '{' '}' | '`' testlist '`' | NAME | NUMBER | STRING
|
||||
x = (1)
|
||||
x = (1 or 2 or 3)
|
||||
x = (1 or 2 or 3, 2, 3)
|
||||
@ -476,7 +497,7 @@ import string
|
||||
reload(string)
|
||||
|
||||
print 'type'
|
||||
if type('') <> type('123') or type('') = type(()):
|
||||
if type('') <> type('123') or type('') == type(()):
|
||||
raise TestFailed, 'type()'
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@ def make_all(mat):
|
||||
return all
|
||||
|
||||
def make_elements(n, d):
|
||||
if d = 0: return [poly.one(0, 0)]
|
||||
if d == 0: return [poly.one(0, 0)]
|
||||
sub = make_elements(n, d-1)
|
||||
all = []
|
||||
for a in sub:
|
||||
@ -75,7 +75,7 @@ def checkfield(n, p):
|
||||
inv1 = inv[:]
|
||||
all1.sort()
|
||||
inv1.sort()
|
||||
if all1 = inv1: print 'BINGO!'
|
||||
if all1 == inv1: print 'BINGO!'
|
||||
else:
|
||||
print 'Sorry:', n, p
|
||||
print all
|
||||
|
@ -37,17 +37,17 @@ def _stat(name):
|
||||
cache[name] = NONE
|
||||
return NONE
|
||||
cache[name] = list
|
||||
if name[-1:] = ':': cache[name[:-1]] = list
|
||||
if name[-1:] == ':': cache[name[:-1]] = list
|
||||
else: cache[name+':'] = list
|
||||
return list
|
||||
|
||||
def isdir(name):
|
||||
st = _stat(name)
|
||||
return type(st) = LISTTYPE
|
||||
return type(st) == LISTTYPE
|
||||
|
||||
def isfile(name):
|
||||
st = _stat(name)
|
||||
return st = FILE
|
||||
return st == FILE
|
||||
|
||||
def exists(name):
|
||||
st = _stat(name)
|
||||
@ -55,7 +55,7 @@ def exists(name):
|
||||
|
||||
def listdir(name):
|
||||
st = _stat(name)
|
||||
if type(st) = LISTTYPE:
|
||||
if type(st) == LISTTYPE:
|
||||
return st
|
||||
else:
|
||||
raise RuntimeError, 'list non-directory'
|
||||
|
@ -17,13 +17,13 @@ except NameError:
|
||||
statfunc = posix.stat
|
||||
|
||||
# Parse options
|
||||
if sys.argv[1] = '-m':
|
||||
if sys.argv[1] == '-m':
|
||||
itime = ST_MTIME
|
||||
del sys.argv[1]
|
||||
elif sys.argv[1] = '-c':
|
||||
elif sys.argv[1] == '-c':
|
||||
itime = ST_CTIME
|
||||
del sys.argv[1]
|
||||
elif sys.argv[1] = '-a':
|
||||
elif sys.argv[1] == '-a':
|
||||
itime = ST_CTIME
|
||||
del sys.argv[1]
|
||||
else:
|
||||
|
@ -10,9 +10,9 @@ def main():
|
||||
silent = 0
|
||||
verbose = 0
|
||||
if sys.argv[1:]:
|
||||
if sys.argv[1] = '-v':
|
||||
if sys.argv[1] == '-v':
|
||||
verbose = 1
|
||||
elif sys.argv[1] = '-s':
|
||||
elif sys.argv[1] == '-s':
|
||||
silent = 1
|
||||
MAGIC = '\0\0\0\0'
|
||||
try:
|
||||
@ -32,7 +32,7 @@ def main():
|
||||
print 'Checking', `dirname`, '...'
|
||||
names.sort()
|
||||
for name in names:
|
||||
if name[-3:] = '.py':
|
||||
if name[-3:] == '.py':
|
||||
name = path.join(dirname, name)
|
||||
try:
|
||||
st = posix.stat(name)
|
||||
@ -55,7 +55,7 @@ def main():
|
||||
print `name_c`
|
||||
continue
|
||||
mtime = get_long(mtime_str)
|
||||
if mtime = 0 or mtime = -1:
|
||||
if mtime == 0 or mtime == -1:
|
||||
print 'Bad ".pyc" file', `name_c`
|
||||
elif mtime <> st[ST_MTIME]:
|
||||
print 'Out-of-date ".pyc" file',
|
||||
|
@ -17,7 +17,7 @@ def visit(pattern, dirname, names):
|
||||
name = path.join(dirname, name)
|
||||
try:
|
||||
linkto = posix.readlink(name)
|
||||
if linkto[:n] = pattern:
|
||||
if linkto[:n] == pattern:
|
||||
print name, '->', linkto
|
||||
except posix.error:
|
||||
pass
|
||||
|
@ -170,18 +170,18 @@ def main():
|
||||
return 1
|
||||
optu = optc = optd = 0
|
||||
for opt, void in optlist:
|
||||
if opt = '-u':
|
||||
if opt == '-u':
|
||||
optu = 1
|
||||
elif opt = '-c':
|
||||
elif opt == '-c':
|
||||
optc = 1
|
||||
elif opt = '-d':
|
||||
elif opt == '-d':
|
||||
optd = 1
|
||||
if optu = optc = optd = 0:
|
||||
if optu == optc == optd == 0:
|
||||
optu = optc = optd = 1
|
||||
if not args:
|
||||
args = ['-']
|
||||
for file in args:
|
||||
if file = '-':
|
||||
if file == '-':
|
||||
readinput(sys.stdin)
|
||||
else:
|
||||
readinput(open(file, 'r'))
|
||||
|
@ -67,13 +67,13 @@ m_from = regexp.compile('^[ \t]*import[ \t]+([^#]+)')
|
||||
def process(filename, table):
|
||||
fp = open(filename, 'r')
|
||||
mod = path.basename(filename)
|
||||
if mod[-3:] = '.py':
|
||||
if mod[-3:] == '.py':
|
||||
mod = mod[:-3]
|
||||
table[mod] = list = []
|
||||
while 1:
|
||||
line = fp.readline()
|
||||
if not line: break
|
||||
while line[-1:] = '\\':
|
||||
while line[-1:] == '\\':
|
||||
nextline = fp.readline()
|
||||
if not nextline: break
|
||||
line = line[:-1] + nextline
|
||||
|
@ -33,7 +33,7 @@ def treat_file(file):
|
||||
print 'Cannot open', file
|
||||
return
|
||||
base = path.basename(file)
|
||||
if base[-3:] = '.py': base = base[:-3]
|
||||
if base[-3:] == '.py': base = base[:-3]
|
||||
s = base + '\t' + file + '\t' + '1\n'
|
||||
tags.append(s)
|
||||
while 1:
|
||||
|
@ -22,7 +22,7 @@ def main():
|
||||
def getsuffix(file):
|
||||
suff = ''
|
||||
for i in range(len(file)):
|
||||
if file[i] = '.':
|
||||
if file[i] == '.':
|
||||
suff = file[i:]
|
||||
return suff
|
||||
|
||||
|
@ -23,7 +23,7 @@ for prog in sys.argv[1:]:
|
||||
mode = S_IMODE(st[ST_MODE])
|
||||
if mode % 2 or mode/8 % 2 or mode/64 % 2:
|
||||
if ident:
|
||||
if st[:3] = ident:
|
||||
if st[:3] == ident:
|
||||
s = ': same as '
|
||||
else:
|
||||
s = ': also '
|
||||
|
@ -50,19 +50,19 @@ def skipfile(file):
|
||||
# Skip executables
|
||||
try:
|
||||
data = open(file, 'r').read(len(EXECMAGIC))
|
||||
if data = EXECMAGIC: return 1
|
||||
if data == EXECMAGIC: return 1
|
||||
except:
|
||||
pass
|
||||
return 0
|
||||
|
||||
def badprefix(file):
|
||||
for bad in badprefixes:
|
||||
if file[:len(bad)] = bad: return 1
|
||||
if file[:len(bad)] == bad: return 1
|
||||
return 0
|
||||
|
||||
def badsuffix(file):
|
||||
for bad in badsuffixes:
|
||||
if file[-len(bad):] = bad: return 1
|
||||
if file[-len(bad):] == bad: return 1
|
||||
return 0
|
||||
|
||||
def go(args):
|
||||
|
Loading…
Reference in New Issue
Block a user