issue #477: more Py2.4 (str|unicode).partition().

issue510
David Wilson 6 years ago
parent 0ee8ee78b8
commit d4afa102c7

@ -335,19 +335,26 @@ except NameError:
return True return True
def unicode__rpartition(s, splitter): def _partition(s, splitter, find):
""" """
unicode.rpartition() for Python 2.4/2.5. (str|unicode).(partition|rpartition) for Python 2.4/2.5.
""" """
idx = s.rfind(splitter) idx = find(splitter)
if idx == -1: if idx == -1:
return u'', u'', s return type(s)(), type(s)(), s
left = s[0:idx] left = s[0:idx]
mid = s[idx:idx+len(splitter)] mid = s[idx:idx+len(splitter)]
return left, mid, s[len(left)+len(mid)] return left, mid, s[len(left)+len(mid)]
if hasattr(UnicodeType, 'rpartition'): if hasattr(UnicodeType, 'rpartition'):
unicode__partition = UnicodeType.partition
unicode__rpartition = UnicodeType.rpartition unicode__rpartition = UnicodeType.rpartition
bytes__partition = BytesType.partition
else:
unicode__partition = lambda s, splitter: _partition(s, splitter, s.find)
unicode__rpartition = lambda s, splitter: _partition(s, splitter, s.rfind)
bytes__partition = lambda s, splitter: _partition(s, splitter, s.find)
def has_parent_authority(msg, _stream=None): def has_parent_authority(msg, _stream=None):
@ -2277,7 +2284,7 @@ class IoLogger(BasicStream):
def _log_lines(self): def _log_lines(self):
while self._buf.find('\n') != -1: while self._buf.find('\n') != -1:
line, _, self._buf = self._buf.partition('\n') line, _, self._buf = bytes__partition(self._buf, '\n')
self._log.info('%s', line.rstrip('\n')) self._log.info('%s', line.rstrip('\n'))
def on_shutdown(self, broker): def on_shutdown(self, broker):
@ -2359,7 +2366,7 @@ class Router(object):
""" """
LOG.error('%r._on_del_route() %r', self, msg) LOG.error('%r._on_del_route() %r', self, msg)
if not msg.is_dead: if not msg.is_dead:
target_id_s, _, name = msg.data.partition(b(':')) target_id_s, _, name = bytes__partition(msg.data, b(':'))
target_id = int(target_id_s, 10) target_id = int(target_id_s, 10)
if target_id not in self._context_by_id: if target_id not in self._context_by_id:
LOG.debug('DEL_ROUTE for unknown ID %r: %r', target_id, msg) LOG.debug('DEL_ROUTE for unknown ID %r: %r', target_id, msg)

Loading…
Cancel
Save