mirror of https://github.com/python/cpython.git
Convert all remaining *simple* cases of regex usage to re usage.
This commit is contained in:
parent
426916e50e
commit
9694fcab53
|
@ -461,9 +461,9 @@ def invert(self, d, region):
|
||||||
self.paralist[para2].invert(d, pos1, pos2)
|
self.paralist[para2].invert(d, pos1, pos2)
|
||||||
#
|
#
|
||||||
def search(self, prog):
|
def search(self, prog):
|
||||||
import regex, string
|
import re, string
|
||||||
if type(prog) == type(''):
|
if type(prog) == type(''):
|
||||||
prog = regex.compile(string.lower(prog))
|
prog = re.compile(string.lower(prog))
|
||||||
if self.selection:
|
if self.selection:
|
||||||
iold = self.selection[0][0]
|
iold = self.selection[0][0]
|
||||||
else:
|
else:
|
||||||
|
@ -474,8 +474,9 @@ def search(self, prog):
|
||||||
continue
|
continue
|
||||||
p = self.paralist[i]
|
p = self.paralist[i]
|
||||||
text = string.lower(p.extract())
|
text = string.lower(p.extract())
|
||||||
if prog.search(text) >= 0:
|
match = prog.search(text)
|
||||||
a, b = prog.regs[0]
|
if match:
|
||||||
|
a, b = match.group(0)
|
||||||
long1 = i, a
|
long1 = i, a
|
||||||
long2 = i, b
|
long2 = i, b
|
||||||
hit = long1, long2
|
hit = long1, long2
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
corresponding to PATTERN. (It does not compile it.)
|
corresponding to PATTERN. (It does not compile it.)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
_cache = {}
|
_cache = {}
|
||||||
|
|
||||||
def fnmatch(name, pat):
|
def fnmatch(name, pat):
|
||||||
|
@ -42,11 +44,8 @@ def fnmatchcase(name, pat):
|
||||||
|
|
||||||
if not _cache.has_key(pat):
|
if not _cache.has_key(pat):
|
||||||
res = translate(pat)
|
res = translate(pat)
|
||||||
import regex
|
_cache[pat] = re.compile(res)
|
||||||
save_syntax = regex.set_syntax(0)
|
return _cache[pat].match(name) is not None
|
||||||
_cache[pat] = regex.compile(res)
|
|
||||||
save_syntax = regex.set_syntax(save_syntax)
|
|
||||||
return _cache[pat].match(name) == len(name)
|
|
||||||
|
|
||||||
def translate(pat):
|
def translate(pat):
|
||||||
"""Translate a shell PATTERN to a regular expression.
|
"""Translate a shell PATTERN to a regular expression.
|
||||||
|
@ -85,8 +84,6 @@ def translate(pat):
|
||||||
stuff = stuff[1:] + stuff[0]
|
stuff = stuff[1:] + stuff[0]
|
||||||
stuff = '[' + stuff + ']'
|
stuff = '[' + stuff + ']'
|
||||||
res = res + stuff
|
res = res + stuff
|
||||||
elif c in '\\.+^$':
|
|
||||||
res = res + ('\\' + c)
|
|
||||||
else:
|
else:
|
||||||
res = res + c
|
res = res + re.escape(c)
|
||||||
return res
|
return res + "$"
|
||||||
|
|
|
@ -11,11 +11,11 @@
|
||||||
# digits_behind: number of digits behind the decimal point
|
# digits_behind: number of digits behind the decimal point
|
||||||
|
|
||||||
|
|
||||||
import regex
|
import re
|
||||||
|
|
||||||
# Compiled regular expression to "decode" a number
|
# Compiled regular expression to "decode" a number
|
||||||
decoder = regex.compile( \
|
decoder = re.compile( \
|
||||||
'^\([-+]?\)0*\([0-9]*\)\(\(\.[0-9]*\)?\)\(\([eE][-+]?[0-9]+\)?\)$')
|
'^([-+]?)0*([0-9]*)((\.[0-9]*)?)(([eE][-+]?[0-9]+)?)$')
|
||||||
# \0 the whole thing
|
# \0 the whole thing
|
||||||
# \1 leading sign or empty
|
# \1 leading sign or empty
|
||||||
# \2 digits left of decimal point
|
# \2 digits left of decimal point
|
||||||
|
@ -30,10 +30,9 @@
|
||||||
# fraction is 0 or more digits
|
# fraction is 0 or more digits
|
||||||
# expo is an integer
|
# expo is an integer
|
||||||
def extract(s):
|
def extract(s):
|
||||||
if decoder.match(s) < 0: raise NotANumber
|
m = decoder.match(s)
|
||||||
(a1, b1), (a2, b2), (a3, b3), (a4, b4), (a5, b5) = decoder.regs[1:6]
|
if not m: raise NotANumber
|
||||||
sign, intpart, fraction, exppart = \
|
sign, intpart, fraction, exppart = m.group(1, 2, 3, 5)
|
||||||
s[a1:b1], s[a2:b2], s[a3:b3], s[a5:b5]
|
|
||||||
if sign == '+': sign = ''
|
if sign == '+': sign = ''
|
||||||
if fraction: fraction = fraction[1:]
|
if fraction: fraction = fraction[1:]
|
||||||
if exppart: expo = eval(exppart[1:])
|
if exppart: expo = eval(exppart[1:])
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import fnmatch
|
import fnmatch
|
||||||
import regex
|
import re
|
||||||
|
|
||||||
|
|
||||||
def glob(pathname):
|
def glob(pathname):
|
||||||
|
@ -50,7 +50,7 @@ def glob1(dirname, pattern):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
magic_check = regex.compile('[*?[]')
|
magic_check = re.compile('[*?[]')
|
||||||
|
|
||||||
def has_magic(s):
|
def has_magic(s):
|
||||||
return magic_check.search(s) >= 0
|
return magic_check.search(s) is not None
|
||||||
|
|
|
@ -7,10 +7,7 @@
|
||||||
# To update the symbols in this file, 'cd' to the top directory of
|
# To update the symbols in this file, 'cd' to the top directory of
|
||||||
# the python source tree after building the interpreter and run:
|
# the python source tree after building the interpreter and run:
|
||||||
#
|
#
|
||||||
# PYTHONPATH=./Lib ./python Lib/keyword.py
|
# python Lib/keyword.py
|
||||||
#
|
|
||||||
# (this path allows the import of string.py and regexmodule.so
|
|
||||||
# for a site with no installation in place)
|
|
||||||
|
|
||||||
kwlist = [
|
kwlist = [
|
||||||
#--start keywords--
|
#--start keywords--
|
||||||
|
@ -52,7 +49,7 @@ for keyword in kwlist:
|
||||||
iskeyword = kwdict.has_key
|
iskeyword = kwdict.has_key
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
import sys, regex, string
|
import sys, re, string
|
||||||
|
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
iptfile = args and args[0] or "Python/graminit.c"
|
iptfile = args and args[0] or "Python/graminit.c"
|
||||||
|
@ -61,13 +58,15 @@ def main():
|
||||||
|
|
||||||
# scan the source file for keywords
|
# scan the source file for keywords
|
||||||
fp = open(iptfile)
|
fp = open(iptfile)
|
||||||
strprog = regex.compile('"\([^"]+\)"')
|
strprog = re.compile('"([^"]+)"')
|
||||||
lines = []
|
lines = []
|
||||||
while 1:
|
while 1:
|
||||||
line = fp.readline()
|
line = fp.readline()
|
||||||
if not line: break
|
if not line: break
|
||||||
if string.find(line, '{1, "') > -1 and strprog.search(line) > -1:
|
if string.find(line, '{1, "') > -1:
|
||||||
lines.append(" '" + strprog.group(1) + "',\n")
|
match = strprog.search(line)
|
||||||
|
if match:
|
||||||
|
lines.append(" '" + match.group(1) + "',\n")
|
||||||
fp.close()
|
fp.close()
|
||||||
lines.sort()
|
lines.sort()
|
||||||
|
|
||||||
|
@ -90,4 +89,5 @@ def main():
|
||||||
fp.write(string.join(format, ''))
|
fp.write(string.join(format, ''))
|
||||||
fp.close()
|
fp.close()
|
||||||
|
|
||||||
if __name__ == "__main__": main()
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
|
@ -461,9 +461,9 @@ def invert(self, d, region):
|
||||||
self.paralist[para2].invert(d, pos1, pos2)
|
self.paralist[para2].invert(d, pos1, pos2)
|
||||||
#
|
#
|
||||||
def search(self, prog):
|
def search(self, prog):
|
||||||
import regex, string
|
import re, string
|
||||||
if type(prog) == type(''):
|
if type(prog) == type(''):
|
||||||
prog = regex.compile(string.lower(prog))
|
prog = re.compile(string.lower(prog))
|
||||||
if self.selection:
|
if self.selection:
|
||||||
iold = self.selection[0][0]
|
iold = self.selection[0][0]
|
||||||
else:
|
else:
|
||||||
|
@ -474,8 +474,9 @@ def search(self, prog):
|
||||||
continue
|
continue
|
||||||
p = self.paralist[i]
|
p = self.paralist[i]
|
||||||
text = string.lower(p.extract())
|
text = string.lower(p.extract())
|
||||||
if prog.search(text) >= 0:
|
match = prog.search(text)
|
||||||
a, b = prog.regs[0]
|
if match:
|
||||||
|
a, b = match.group(0)
|
||||||
long1 = i, a
|
long1 = i, a
|
||||||
long2 = i, b
|
long2 = i, b
|
||||||
hit = long1, long2
|
hit = long1, long2
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
import rfc822
|
import rfc822
|
||||||
import os
|
import os
|
||||||
import regex
|
|
||||||
|
|
||||||
class _Mailbox:
|
class _Mailbox:
|
||||||
def __init__(self, fp):
|
def __init__(self, fp):
|
||||||
|
@ -117,12 +116,13 @@ def _search_end(self):
|
||||||
|
|
||||||
class MHMailbox:
|
class MHMailbox:
|
||||||
def __init__(self, dirname):
|
def __init__(self, dirname):
|
||||||
pat = regex.compile('^[0-9][0-9]*$')
|
import re
|
||||||
|
pat = re.compile('^[0-9][0-9]*$')
|
||||||
self.dirname = dirname
|
self.dirname = dirname
|
||||||
files = os.listdir(self.dirname)
|
files = os.listdir(self.dirname)
|
||||||
self.boxes = []
|
self.boxes = []
|
||||||
for f in files:
|
for f in files:
|
||||||
if pat.match(f) == len(f):
|
if pat.match(f):
|
||||||
self.boxes.append(f)
|
self.boxes.append(f)
|
||||||
|
|
||||||
def next(self):
|
def next(self):
|
||||||
|
@ -187,6 +187,7 @@ def _test():
|
||||||
if not msg:
|
if not msg:
|
||||||
break
|
break
|
||||||
msgs.append(msg)
|
msgs.append(msg)
|
||||||
|
msg.fp = None
|
||||||
if len(args) > 1:
|
if len(args) > 1:
|
||||||
num = string.atoi(args[1])
|
num = string.atoi(args[1])
|
||||||
print 'Message %d body:'%num
|
print 'Message %d body:'%num
|
||||||
|
|
24
Lib/mhlib.py
24
Lib/mhlib.py
|
@ -73,7 +73,7 @@
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from stat import ST_NLINK
|
from stat import ST_NLINK
|
||||||
import regex
|
import re
|
||||||
import string
|
import string
|
||||||
import mimetools
|
import mimetools
|
||||||
import multifile
|
import multifile
|
||||||
|
@ -236,9 +236,9 @@ def deletefolder(self, name):
|
||||||
|
|
||||||
# Class representing a particular folder
|
# Class representing a particular folder
|
||||||
|
|
||||||
numericprog = regex.compile('^[1-9][0-9]*$')
|
numericprog = re.compile('^[1-9][0-9]*$')
|
||||||
def isnumeric(str):
|
def isnumeric(str):
|
||||||
return numericprog.match(str) >= 0
|
return numericprog.match(str) is not None
|
||||||
|
|
||||||
class Folder:
|
class Folder:
|
||||||
|
|
||||||
|
@ -906,15 +906,12 @@ def pickline(file, key, casefold = 1):
|
||||||
f = open(file, 'r')
|
f = open(file, 'r')
|
||||||
except IOError:
|
except IOError:
|
||||||
return None
|
return None
|
||||||
pat = key + ':'
|
pat = re.escape(key) + ':'
|
||||||
if casefold:
|
prog = re.compile(pat, casefold and re.IGNORECASE)
|
||||||
prog = regex.compile(pat, regex.casefold)
|
|
||||||
else:
|
|
||||||
prog = regex.compile(pat)
|
|
||||||
while 1:
|
while 1:
|
||||||
line = f.readline()
|
line = f.readline()
|
||||||
if not line: break
|
if not line: break
|
||||||
if prog.match(line) >= 0:
|
if prog.match(line):
|
||||||
text = line[len(key)+1:]
|
text = line[len(key)+1:]
|
||||||
while 1:
|
while 1:
|
||||||
line = f.readline()
|
line = f.readline()
|
||||||
|
@ -931,18 +928,15 @@ def updateline(file, key, value, casefold = 1):
|
||||||
f.close()
|
f.close()
|
||||||
except IOError:
|
except IOError:
|
||||||
lines = []
|
lines = []
|
||||||
pat = key + ':\(.*\)\n'
|
pat = re.escape(key) + ':(.*)\n'
|
||||||
if casefold:
|
prog = re.compile(pat, casefold and re.IGNORECASE)
|
||||||
prog = regex.compile(pat, regex.casefold)
|
|
||||||
else:
|
|
||||||
prog = regex.compile(pat)
|
|
||||||
if value is None:
|
if value is None:
|
||||||
newline = None
|
newline = None
|
||||||
else:
|
else:
|
||||||
newline = '%s: %s\n' % (key, value)
|
newline = '%s: %s\n' % (key, value)
|
||||||
for i in range(len(lines)):
|
for i in range(len(lines)):
|
||||||
line = lines[i]
|
line = lines[i]
|
||||||
if prog.match(line) == len(line):
|
if prog.match(line):
|
||||||
if newline is None:
|
if newline is None:
|
||||||
del lines[i]
|
del lines[i]
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
|
|
||||||
# Imports
|
# Imports
|
||||||
import regex
|
import re
|
||||||
import socket
|
import socket
|
||||||
import string
|
import string
|
||||||
|
|
||||||
|
@ -313,13 +313,13 @@ def slave(self):
|
||||||
# - list: list of (nr, value) strings
|
# - list: list of (nr, value) strings
|
||||||
|
|
||||||
def xhdr(self, hdr, str):
|
def xhdr(self, hdr, str):
|
||||||
|
pat = re.compile('^([0-9]+) ?(.*)\n?')
|
||||||
resp, lines = self.longcmd('XHDR ' + hdr + ' ' + str)
|
resp, lines = self.longcmd('XHDR ' + hdr + ' ' + str)
|
||||||
for i in range(len(lines)):
|
for i in range(len(lines)):
|
||||||
line = lines[i]
|
line = lines[i]
|
||||||
n = regex.match('^[0-9]+', line)
|
m = pat.match(line)
|
||||||
nr = line[:n]
|
if m:
|
||||||
if n < len(line) and line[n] == ' ': n = n+1
|
lines[i] = m.group(1, 2)
|
||||||
lines[i] = (nr, line[n:])
|
|
||||||
return resp, lines
|
return resp, lines
|
||||||
|
|
||||||
# Process an XOVER command (optional server extension) Arguments:
|
# Process an XOVER command (optional server extension) Arguments:
|
||||||
|
@ -354,14 +354,13 @@ def xover(self,start,end):
|
||||||
# - list: list of (name,title) strings
|
# - list: list of (name,title) strings
|
||||||
|
|
||||||
def xgtitle(self, group):
|
def xgtitle(self, group):
|
||||||
line_pat = regex.compile("^\([^ \t]+\)[ \t]+\(.*\)$")
|
line_pat = re.compile("^([^ \t]+)[ \t]+(.*)$")
|
||||||
resp, raw_lines = self.longcmd('XGTITLE ' + group)
|
resp, raw_lines = self.longcmd('XGTITLE ' + group)
|
||||||
lines = []
|
lines = []
|
||||||
for raw_line in raw_lines:
|
for raw_line in raw_lines:
|
||||||
if line_pat.search(string.strip(raw_line)) == 0:
|
match = line_pat.search(string.strip(raw_line))
|
||||||
lines.append(line_pat.group(1),
|
if match:
|
||||||
line_pat.group(2))
|
lines.append(match.group(1, 2))
|
||||||
|
|
||||||
return resp, lines
|
return resp, lines
|
||||||
|
|
||||||
# Process an XPATH command (optional server extension) Arguments:
|
# Process an XPATH command (optional server extension) Arguments:
|
||||||
|
|
10
Lib/pipes.py
10
Lib/pipes.py
|
@ -61,7 +61,7 @@
|
||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import regex
|
import re
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
@ -124,10 +124,10 @@ def append(self, cmd, kind):
|
||||||
if self.steps <> [] and self.steps[-1][1] == SINK:
|
if self.steps <> [] and self.steps[-1][1] == SINK:
|
||||||
raise ValueError, \
|
raise ValueError, \
|
||||||
'Template.append: already ends with SINK'
|
'Template.append: already ends with SINK'
|
||||||
if kind[0] == 'f' and regex.search('\$IN', cmd) < 0:
|
if kind[0] == 'f' and not re.search('\$IN\b', cmd):
|
||||||
raise ValueError, \
|
raise ValueError, \
|
||||||
'Template.append: missing $IN in cmd'
|
'Template.append: missing $IN in cmd'
|
||||||
if kind[1] == 'f' and regex.search('\$OUT', cmd) < 0:
|
if kind[1] == 'f' and not re.search('\$OUT\b', cmd):
|
||||||
raise ValueError, \
|
raise ValueError, \
|
||||||
'Template.append: missing $OUT in cmd'
|
'Template.append: missing $OUT in cmd'
|
||||||
self.steps.append((cmd, kind))
|
self.steps.append((cmd, kind))
|
||||||
|
@ -146,10 +146,10 @@ def prepend(self, cmd, kind):
|
||||||
if self.steps <> [] and self.steps[0][1] == SOURCE:
|
if self.steps <> [] and self.steps[0][1] == SOURCE:
|
||||||
raise ValueError, \
|
raise ValueError, \
|
||||||
'Template.prepend: already begins with SOURCE'
|
'Template.prepend: already begins with SOURCE'
|
||||||
if kind[0] == 'f' and regex.search('\$IN\>', cmd) < 0:
|
if kind[0] == 'f' and not re.search('\$IN\b', cmd):
|
||||||
raise ValueError, \
|
raise ValueError, \
|
||||||
'Template.prepend: missing $IN in cmd'
|
'Template.prepend: missing $IN in cmd'
|
||||||
if kind[1] == 'f' and regex.search('\$OUT\>', cmd) < 0:
|
if kind[1] == 'f' and not re.search('\$OUT\b', cmd):
|
||||||
raise ValueError, \
|
raise ValueError, \
|
||||||
'Template.prepend: missing $OUT in cmd'
|
'Template.prepend: missing $OUT in cmd'
|
||||||
self.steps.insert(0, (cmd, kind))
|
self.steps.insert(0, (cmd, kind))
|
||||||
|
|
|
@ -81,18 +81,17 @@ def __init__(self, tracklist):
|
||||||
self.notes = []
|
self.notes = []
|
||||||
if not hasattr(self, 'file'):
|
if not hasattr(self, 'file'):
|
||||||
return
|
return
|
||||||
import regex
|
import re
|
||||||
reg = regex.compile('^\\([^.]*\\)\\.\\([^:]*\\):[\t ]+\\(.*\\)')
|
reg = re.compile(r'^([^.]*)\.([^:]*):[\t ]+(.*)')
|
||||||
while 1:
|
while 1:
|
||||||
line = f.readline()
|
line = f.readline()
|
||||||
if not line:
|
if not line:
|
||||||
break
|
break
|
||||||
if reg.match(line) == -1:
|
match = reg.match(line)
|
||||||
|
if not match:
|
||||||
print 'syntax error in ' + file
|
print 'syntax error in ' + file
|
||||||
continue
|
continue
|
||||||
name1 = line[reg.regs[1][0]:reg.regs[1][1]]
|
name1, name2, value = match.group(1, 2, 3)
|
||||||
name2 = line[reg.regs[2][0]:reg.regs[2][1]]
|
|
||||||
value = line[reg.regs[3][0]:reg.regs[3][1]]
|
|
||||||
if name1 == 'album':
|
if name1 == 'album':
|
||||||
if name2 == 'artist':
|
if name2 == 'artist':
|
||||||
self.artist = value
|
self.artist = value
|
||||||
|
|
|
@ -39,8 +39,8 @@ def __init__(self, tracklist):
|
||||||
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
|
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
|
||||||
except IOError:
|
except IOError:
|
||||||
return
|
return
|
||||||
import regex
|
import re
|
||||||
reg = regex.compile('^\\([^:]*\\):\t\\(.*\\)')
|
reg = re.compile(r'^([^:]*):\t(.*)')
|
||||||
s = self.id + '.'
|
s = self.id + '.'
|
||||||
l = len(s)
|
l = len(s)
|
||||||
while 1:
|
while 1:
|
||||||
|
@ -49,11 +49,11 @@ def __init__(self, tracklist):
|
||||||
break
|
break
|
||||||
if line[:l] == s:
|
if line[:l] == s:
|
||||||
line = line[l:]
|
line = line[l:]
|
||||||
if reg.match(line) == -1:
|
match = reg.match(line)
|
||||||
|
if not match:
|
||||||
print 'syntax error in ~/' + cdplayerrc
|
print 'syntax error in ~/' + cdplayerrc
|
||||||
continue
|
continue
|
||||||
name = line[reg.regs[1][0]:reg.regs[1][1]]
|
name, valye = match.group(1, 2)
|
||||||
value = line[reg.regs[2][0]:reg.regs[2][1]]
|
|
||||||
if name == 'title':
|
if name == 'title':
|
||||||
self.title = value
|
self.title = value
|
||||||
elif name == 'artist':
|
elif name == 'artist':
|
||||||
|
|
|
@ -267,19 +267,18 @@ def _parse_numlist(str):
|
||||||
# This function parses a line, and returns either
|
# This function parses a line, and returns either
|
||||||
# a string or a tuple (name,value)
|
# a string or a tuple (name,value)
|
||||||
|
|
||||||
import regex
|
import re
|
||||||
prog = regex.compile('^\([^:]*\): *\(.*\)')
|
prog = re.compile('^([^:]*): *(.*)')
|
||||||
|
|
||||||
def _parse_line(line):
|
def _parse_line(line):
|
||||||
if prog.match(line) < 0:
|
match = prog.match(line)
|
||||||
|
if not match:
|
||||||
return line
|
return line
|
||||||
a = prog.regs
|
name, value = match.group(1, 2)
|
||||||
name = line[:a[1][1]]
|
|
||||||
if name[0] == 'N':
|
if name[0] == 'N':
|
||||||
name = string.joinfields(string.split(name),'')
|
name = string.join(string.split(name),'')
|
||||||
name = string.lower(name)
|
name = string.lower(name)
|
||||||
name = string.upper(name[0]) + name[1:]
|
name = string.capitalize(name)
|
||||||
value = line[a[2][0]:]
|
|
||||||
try:
|
try:
|
||||||
pf = _parse_func[name]
|
pf = _parse_func[name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
|
|
@ -81,18 +81,17 @@ def __init__(self, tracklist):
|
||||||
self.notes = []
|
self.notes = []
|
||||||
if not hasattr(self, 'file'):
|
if not hasattr(self, 'file'):
|
||||||
return
|
return
|
||||||
import regex
|
import re
|
||||||
reg = regex.compile('^\\([^.]*\\)\\.\\([^:]*\\):[\t ]+\\(.*\\)')
|
reg = re.compile(r'^([^.]*)\.([^:]*):[\t ]+(.*)')
|
||||||
while 1:
|
while 1:
|
||||||
line = f.readline()
|
line = f.readline()
|
||||||
if not line:
|
if not line:
|
||||||
break
|
break
|
||||||
if reg.match(line) == -1:
|
match = reg.match(line)
|
||||||
|
if not match:
|
||||||
print 'syntax error in ' + file
|
print 'syntax error in ' + file
|
||||||
continue
|
continue
|
||||||
name1 = line[reg.regs[1][0]:reg.regs[1][1]]
|
name1, name2, value = match.group(1, 2, 3)
|
||||||
name2 = line[reg.regs[2][0]:reg.regs[2][1]]
|
|
||||||
value = line[reg.regs[3][0]:reg.regs[3][1]]
|
|
||||||
if name1 == 'album':
|
if name1 == 'album':
|
||||||
if name2 == 'artist':
|
if name2 == 'artist':
|
||||||
self.artist = value
|
self.artist = value
|
||||||
|
|
|
@ -39,8 +39,8 @@ def __init__(self, tracklist):
|
||||||
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
|
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
|
||||||
except IOError:
|
except IOError:
|
||||||
return
|
return
|
||||||
import regex
|
import re
|
||||||
reg = regex.compile('^\\([^:]*\\):\t\\(.*\\)')
|
reg = re.compile(r'^([^:]*):\t(.*)')
|
||||||
s = self.id + '.'
|
s = self.id + '.'
|
||||||
l = len(s)
|
l = len(s)
|
||||||
while 1:
|
while 1:
|
||||||
|
@ -49,11 +49,11 @@ def __init__(self, tracklist):
|
||||||
break
|
break
|
||||||
if line[:l] == s:
|
if line[:l] == s:
|
||||||
line = line[l:]
|
line = line[l:]
|
||||||
if reg.match(line) == -1:
|
match = reg.match(line)
|
||||||
|
if not match:
|
||||||
print 'syntax error in ~/' + cdplayerrc
|
print 'syntax error in ~/' + cdplayerrc
|
||||||
continue
|
continue
|
||||||
name = line[reg.regs[1][0]:reg.regs[1][1]]
|
name, valye = match.group(1, 2)
|
||||||
value = line[reg.regs[2][0]:reg.regs[2][1]]
|
|
||||||
if name == 'title':
|
if name == 'title':
|
||||||
self.title = value
|
self.title = value
|
||||||
elif name == 'artist':
|
elif name == 'artist':
|
||||||
|
|
|
@ -267,19 +267,18 @@ def _parse_numlist(str):
|
||||||
# This function parses a line, and returns either
|
# This function parses a line, and returns either
|
||||||
# a string or a tuple (name,value)
|
# a string or a tuple (name,value)
|
||||||
|
|
||||||
import regex
|
import re
|
||||||
prog = regex.compile('^\([^:]*\): *\(.*\)')
|
prog = re.compile('^([^:]*): *(.*)')
|
||||||
|
|
||||||
def _parse_line(line):
|
def _parse_line(line):
|
||||||
if prog.match(line) < 0:
|
match = prog.match(line)
|
||||||
|
if not match:
|
||||||
return line
|
return line
|
||||||
a = prog.regs
|
name, value = match.group(1, 2)
|
||||||
name = line[:a[1][1]]
|
|
||||||
if name[0] == 'N':
|
if name[0] == 'N':
|
||||||
name = string.joinfields(string.split(name),'')
|
name = string.join(string.split(name),'')
|
||||||
name = string.lower(name)
|
name = string.lower(name)
|
||||||
name = string.upper(name[0]) + name[1:]
|
name = string.capitalize(name)
|
||||||
value = line[a[2][0]:]
|
|
||||||
try:
|
try:
|
||||||
pf = _parse_func[name]
|
pf = _parse_func[name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
|
|
|
@ -266,15 +266,15 @@ def expandvars(path):
|
||||||
if '$' not in path:
|
if '$' not in path:
|
||||||
return path
|
return path
|
||||||
if not _varprog:
|
if not _varprog:
|
||||||
import regex
|
import re
|
||||||
_varprog = regex.compile('$\([a-zA-Z0-9_]+\|{[^}]*}\)')
|
_varprog = re.compile(r'\$(\w+|\{[^}]*\})')
|
||||||
i = 0
|
i = 0
|
||||||
while 1:
|
while 1:
|
||||||
i = _varprog.search(path, i)
|
m = _varprog.search(path, i)
|
||||||
if i < 0:
|
if not m:
|
||||||
break
|
break
|
||||||
name = _varprog.group(1)
|
i, j = m.span(0)
|
||||||
j = i + len(_varprog.group(0))
|
name = m.group(1)
|
||||||
if name[:1] == '{' and name[-1:] == '}':
|
if name[:1] == '{' and name[-1:] == '}':
|
||||||
name = name[1:-1]
|
name = name[1:-1]
|
||||||
if os.environ.has_key(name):
|
if os.environ.has_key(name):
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
import time
|
import time
|
||||||
import string
|
import string
|
||||||
import marshal
|
import marshal
|
||||||
import regex
|
import re
|
||||||
|
|
||||||
#**************************************************************************
|
#**************************************************************************
|
||||||
# Class Stats documentation
|
# Class Stats documentation
|
||||||
|
@ -300,7 +300,7 @@ def eval_print_amount(self, sel, list, msg):
|
||||||
if type(sel) == type(""):
|
if type(sel) == type(""):
|
||||||
new_list = []
|
new_list = []
|
||||||
for func in list:
|
for func in list:
|
||||||
if 0<=regex.search(sel, func_std_string(func)):
|
if re.search(sel, func_std_string(func)):
|
||||||
new_list.append(func)
|
new_list.append(func)
|
||||||
else:
|
else:
|
||||||
count = len(list)
|
count = len(list)
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
# There are also some utility functions here.
|
# There are also some utility functions here.
|
||||||
|
|
||||||
|
|
||||||
import regex
|
import re
|
||||||
import string
|
import string
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ def unquote(str):
|
||||||
|
|
||||||
error = 'parseaddr.error'
|
error = 'parseaddr.error'
|
||||||
|
|
||||||
specials = regex.compile('[][()<>,.;:@\\" \000-\037\177-\377]')
|
specials = re.compile(r'[][()<>,.;:@\" \000-\037\177-\377]')
|
||||||
|
|
||||||
def quote(str):
|
def quote(str):
|
||||||
return '"%s"' % string.join(
|
return '"%s"' % string.join(
|
||||||
|
@ -408,7 +408,7 @@ def parseaddr(address):
|
||||||
else:
|
else:
|
||||||
name.append(token[1])
|
name.append(token[1])
|
||||||
elif token[0] == 1 and cur is addr:
|
elif token[0] == 1 and cur is addr:
|
||||||
if specials.search(token[1]) >= 0:
|
if specials.search(token[1]):
|
||||||
cur.append(quote(token[1]))
|
cur.append(quote(token[1]))
|
||||||
else:
|
else:
|
||||||
cur.append(token[1])
|
cur.append(token[1])
|
||||||
|
@ -423,7 +423,7 @@ def parseaddr(address):
|
||||||
if token[0] == 2:
|
if token[0] == 2:
|
||||||
name.append(token[1])
|
name.append(token[1])
|
||||||
elif token[0] == 1:
|
elif token[0] == 1:
|
||||||
if specials.search(token[1]) >= 0:
|
if specials.search(token[1]):
|
||||||
addr.append(quote(token[1]))
|
addr.append(quote(token[1]))
|
||||||
else:
|
else:
|
||||||
addr.append(token[1])
|
addr.append(token[1])
|
||||||
|
@ -563,4 +563,3 @@ def mktime_tz(data):
|
||||||
print 'keys =', m.keys()
|
print 'keys =', m.keys()
|
||||||
print 'values =', m.values()
|
print 'values =', m.values()
|
||||||
print 'items =', m.items()
|
print 'items =', m.items()
|
||||||
|
|
||||||
|
|
|
@ -193,17 +193,20 @@ def rfind(s, sub, i = 0, last=None):
|
||||||
return r
|
return r
|
||||||
|
|
||||||
# Convert string to float
|
# Convert string to float
|
||||||
|
re = None
|
||||||
def atof(str):
|
def atof(str):
|
||||||
import regex
|
global re
|
||||||
|
if re is None:
|
||||||
|
import re
|
||||||
sign = ''
|
sign = ''
|
||||||
s = str
|
s = strip(str)
|
||||||
if s and s[0] in '+-':
|
if s and s[0] in '+-':
|
||||||
sign = s[0]
|
sign = s[0]
|
||||||
s = s[1:]
|
s = s[1:]
|
||||||
if not s:
|
if not s:
|
||||||
raise ValueError, 'non-float argument to string.atof'
|
raise ValueError, 'non-float argument to string.atof'
|
||||||
while s[0] == '0' and len(s) > 1 and s[1] in digits: s = s[1:]
|
while s[0] == '0' and len(s) > 1 and s[1] in digits: s = s[1:]
|
||||||
if regex.match('[0-9]*\(\.[0-9]*\)?\([eE][-+]?[0-9]+\)?', s) != len(s):
|
if not re.match('[0-9]*(\.[0-9]*)?([eE][-+]?[0-9]+)?$', s):
|
||||||
raise ValueError, 'non-float argument to string.atof'
|
raise ValueError, 'non-float argument to string.atof'
|
||||||
try:
|
try:
|
||||||
return float(eval(sign + s))
|
return float(eval(sign + s))
|
||||||
|
|
|
@ -193,17 +193,20 @@ def rfind(s, sub, i = 0, last=None):
|
||||||
return r
|
return r
|
||||||
|
|
||||||
# Convert string to float
|
# Convert string to float
|
||||||
|
re = None
|
||||||
def atof(str):
|
def atof(str):
|
||||||
import regex
|
global re
|
||||||
|
if re is None:
|
||||||
|
import re
|
||||||
sign = ''
|
sign = ''
|
||||||
s = str
|
s = strip(str)
|
||||||
if s and s[0] in '+-':
|
if s and s[0] in '+-':
|
||||||
sign = s[0]
|
sign = s[0]
|
||||||
s = s[1:]
|
s = s[1:]
|
||||||
if not s:
|
if not s:
|
||||||
raise ValueError, 'non-float argument to string.atof'
|
raise ValueError, 'non-float argument to string.atof'
|
||||||
while s[0] == '0' and len(s) > 1 and s[1] in digits: s = s[1:]
|
while s[0] == '0' and len(s) > 1 and s[1] in digits: s = s[1:]
|
||||||
if regex.match('[0-9]*\(\.[0-9]*\)?\([eE][-+]?[0-9]+\)?', s) != len(s):
|
if not re.match('[0-9]*(\.[0-9]*)?([eE][-+]?[0-9]+)?$', s):
|
||||||
raise ValueError, 'non-float argument to string.atof'
|
raise ValueError, 'non-float argument to string.atof'
|
||||||
try:
|
try:
|
||||||
return float(eval(sign + s))
|
return float(eval(sign + s))
|
||||||
|
|
18
Lib/token.py
18
Lib/token.py
|
@ -7,10 +7,7 @@
|
||||||
# To update the symbols in this file, 'cd' to the top directory of
|
# To update the symbols in this file, 'cd' to the top directory of
|
||||||
# the python source tree after building the interpreter and run:
|
# the python source tree after building the interpreter and run:
|
||||||
#
|
#
|
||||||
# PYTHONPATH=./Lib ./python Lib/token.py
|
# python Lib/token.py
|
||||||
#
|
|
||||||
# (this path allows the import of string.py and regexmodule.so
|
|
||||||
# for a site with no installation in place)
|
|
||||||
|
|
||||||
#--start constants--
|
#--start constants--
|
||||||
ENDMARKER = 0
|
ENDMARKER = 0
|
||||||
|
@ -73,7 +70,7 @@ def ISEOF(x):
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
import regex
|
import re
|
||||||
import string
|
import string
|
||||||
import sys
|
import sys
|
||||||
args = sys.argv[1:]
|
args = sys.argv[1:]
|
||||||
|
@ -88,13 +85,14 @@ def main():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
lines = string.splitfields(fp.read(), "\n")
|
lines = string.splitfields(fp.read(), "\n")
|
||||||
fp.close()
|
fp.close()
|
||||||
re = regex.compile(
|
prog = re.compile(
|
||||||
"#define[ \t][ \t]*\([A-Z][A-Z_]*\)[ \t][ \t]*\([0-9][0-9]*\)",
|
"#define[ \t][ \t]*([A-Z][A-Z_]*)[ \t][ \t]*([0-9][0-9]*)",
|
||||||
regex.casefold)
|
re.IGNORECASE)
|
||||||
tokens = {}
|
tokens = {}
|
||||||
for line in lines:
|
for line in lines:
|
||||||
if re.match(line) > -1:
|
match = prog.match(line)
|
||||||
name, val = re.group(1, 2)
|
if match:
|
||||||
|
name, val = match.group(1, 2)
|
||||||
val = string.atoi(val)
|
val = string.atoi(val)
|
||||||
tokens[val] = name # reverse so we can sort them...
|
tokens[val] = name # reverse so we can sort them...
|
||||||
keys = tokens.keys()
|
keys = tokens.keys()
|
||||||
|
|
|
@ -2,23 +2,22 @@
|
||||||
# XXX Unfinished.
|
# XXX Unfinished.
|
||||||
# XXX Only the typical form "XXXhhYYY;ddd/hh,ddd/hh" is currently supported.
|
# XXX Only the typical form "XXXhhYYY;ddd/hh,ddd/hh" is currently supported.
|
||||||
|
|
||||||
tzpat = '^\([A-Z][A-Z][A-Z]\)\([-+]?[0-9]+\)\([A-Z][A-Z][A-Z]\);' + \
|
tzpat = ('^([A-Z][A-Z][A-Z])([-+]?[0-9]+)([A-Z][A-Z][A-Z]);'
|
||||||
'\([0-9]+\)/\([0-9]+\),\([0-9]+\)/\([0-9]+\)$'
|
'([0-9]+)/([0-9]+),([0-9]+)/([0-9]+)$')
|
||||||
|
|
||||||
tzprog = None
|
tzprog = None
|
||||||
|
|
||||||
def tzparse(tzstr):
|
def tzparse(tzstr):
|
||||||
global tzprog
|
global tzprog
|
||||||
if tzprog == None:
|
if tzprog == None:
|
||||||
import regex
|
import re
|
||||||
tzprog = regex.compile(tzpat)
|
tzprog = re.compile(tzpat)
|
||||||
if tzprog.match(tzstr) < 0:
|
match = tzprog.match(tzstr)
|
||||||
|
if not match:
|
||||||
raise ValueError, 'not the TZ syntax I understand'
|
raise ValueError, 'not the TZ syntax I understand'
|
||||||
regs = tzprog.regs
|
|
||||||
subs = []
|
subs = []
|
||||||
for i in range(1, 8):
|
for i in range(1, 8):
|
||||||
a, b = regs[i]
|
subs.append(match.group(i))
|
||||||
subs.append(tzstr[a:b])
|
|
||||||
for i in (1, 3, 4, 5, 6):
|
for i in (1, 3, 4, 5, 6):
|
||||||
subs[i] = eval(subs[i])
|
subs[i] = eval(subs[i])
|
||||||
[tzname, delta, dstname, daystart, hourstart, dayend, hourend] = subs
|
[tzname, delta, dstname, daystart, hourstart, dayend, hourend] = subs
|
||||||
|
|
Loading…
Reference in New Issue