Raymond Hettinger wrote: > Most patterns using str.find() directly translated into an equivalent > using partition. The only awkwardness that arose was in cases where the > original code had a test like, "if s.find(pat) > 0". That case > translated to a double-term test, "if found and head".
That said, the latter would give me much greater confidence that the test for "found, but not right at the start" was deliberate. With the original version I would need to study the surrounding code to satisfy myself that it wasn't a simple typo that resulted in '>' being written where '>=' was intended. > With further ado, here are the comparative code fragments: There's another one below that you previously tried rewriting to use str.index that also benefits from str.partition. This rewrite makes it easier to avoid the bug that afflicts the current code, and would make that bug raise an exception if it wasn't fixed - "head[-1]" would raise IndexError if the head was empty. Cheers, Nick. --- From ConfigParser.py (current) --------------- 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() --- From ConfigParser.py (with str.partition) --------------- optname, vi, optval = mo.group('option', 'vi', 'value') if vi in ('=', ':'): # ';' is a comment delimiter only if it follows # a spacing character head, found, _ = optval.partition(';') if found and head and head[-1].isspace(): optval = head optval = optval.strip() -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://boredomandlaziness.blogspot.com _______________________________________________ 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