FWIW, here are three more comparative code fragments.  They are
presented without judgment as an evaluation tool to let everyone form
their own opinion about the merits of each:


--- From CGIHTTPServer.py ---------------

def run_cgi(self):
    """Execute a CGI script."""
    dir, rest = self.cgi_info
    i = rest.rfind('?')
    if i >= 0:
        rest, query = rest[:i], rest[i+1:]
    else:
        query = ''
    i = rest.find('/')
    if i >= 0:
        script, rest = rest[:i], rest[i:]
    else:
        script, rest = rest, ''
    . . .


def run_cgi(self):
    """Execute a CGI script."""
    dir, rest = self.cgi_info
    try:
        i = rest.rindex('?')
    except ValueError():
        query = ''
    else:
        rest, query = rest[:i], rest[i+1:]
    try:
        i = rest.index('/')
    except ValueError():
        script, rest = rest, ''
    else:
        script, rest = rest[:i], rest[i:]
    . . .


--- From ConfigParser.py ---------------

optname, vi, optval = mo.group('option', 'vi', 'value')
if vi in ('=', ':') and ';' in optval:
    # ';' is a comment delimiter only if it follows
    # a spacing character
    pos = optval.find(';')
    if pos != -1 and optval[pos-1].isspace():
        optval = optval[:pos]
optval = optval.strip()
. . .


optname, vi, optval = mo.group('option', 'vi', 'value')
if vi in ('=', ':') and ';' in optval:
    # ';' is a comment delimiter only if it follows
    # a spacing character
    try:
        pos = optval.index(';')
    except ValueError():
        pass
    else:
        if optval[pos-1].isspace():
            optval = optval[:pos]
optval = optval.strip()
. . .


--- StringIO.py ---------------

i = self.buf.find('\n', self.pos)
if i < 0:
    newpos = self.len
else:
    newpos = i+1
. . .


try:
    i = self.buf.find('\n', self.pos)
except ValueError():
    newpos = self.len
else:
    newpos = i+1
. . .


My notes so far weren't meant to judge the proposal.  I'm just
suggesting that examining fragments like the ones above will help inform
the design process.

Peace,


Raymond

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to