mirror of
https://github.com/facebook/sapling.git
synced 2025-01-07 14:10:42 +03:00
i18n: drop a py25 conditional
I'm not sure how to test this one. `make update-pot` spews all kinds of warnings, though it did before this change too.
This commit is contained in:
parent
09ec25b785
commit
55b2ad69f6
100
i18n/polib.py
100
i18n/polib.py
@ -804,7 +804,7 @@ class _BaseEntry(object):
|
||||
real_wrapwidth = wrapwidth - flength + specialchars_count
|
||||
if wrapwidth > 0 and len(field) > real_wrapwidth:
|
||||
# Wrap the line but take field name into account
|
||||
lines = [''] + [unescape(item) for item in wrap(
|
||||
lines = [''] + [unescape(item) for item in textwrap.wrap(
|
||||
escaped_field,
|
||||
wrapwidth - 2, # 2 for quotes ""
|
||||
drop_whitespace=False,
|
||||
@ -879,7 +879,7 @@ class POEntry(_BaseEntry):
|
||||
if val:
|
||||
for comment in val.split('\n'):
|
||||
if wrapwidth > 0 and len(comment) + len(c[1]) > wrapwidth:
|
||||
ret += wrap(
|
||||
ret += textwrap.wrap(
|
||||
comment,
|
||||
wrapwidth,
|
||||
initial_indent=c[1],
|
||||
@ -903,7 +903,7 @@ class POEntry(_BaseEntry):
|
||||
# what we want for filenames, so the dirty hack is to
|
||||
# temporally replace hyphens with a char that a file cannot
|
||||
# contain, like "*"
|
||||
ret += [l.replace('*', '-') for l in wrap(
|
||||
ret += [l.replace('*', '-') for l in textwrap.wrap(
|
||||
filestr.replace('-', '*'),
|
||||
wrapwidth,
|
||||
initial_indent='#: ',
|
||||
@ -1552,97 +1552,3 @@ class _MOFileParser(object):
|
||||
return tup
|
||||
|
||||
# }}}
|
||||
# class TextWrapper {{{
|
||||
|
||||
class TextWrapper(textwrap.TextWrapper):
|
||||
"""
|
||||
Subclass of textwrap.TextWrapper that backport the
|
||||
drop_whitespace option.
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
drop_whitespace = kwargs.pop('drop_whitespace', True)
|
||||
textwrap.TextWrapper.__init__(self, *args, **kwargs)
|
||||
self.drop_whitespace = drop_whitespace
|
||||
|
||||
def _wrap_chunks(self, chunks):
|
||||
"""_wrap_chunks(chunks : [string]) -> [string]
|
||||
|
||||
Wrap a sequence of text chunks and return a list of lines of
|
||||
length 'self.width' or less. (If 'break_long_words' is false,
|
||||
some lines may be longer than this.) Chunks correspond roughly
|
||||
to words and the whitespace between them: each chunk is
|
||||
indivisible (modulo 'break_long_words'), but a line break can
|
||||
come between any two chunks. Chunks should not have internal
|
||||
whitespace; ie. a chunk is either all whitespace or a "word".
|
||||
Whitespace chunks will be removed from the beginning and end of
|
||||
lines, but apart from that whitespace is preserved.
|
||||
"""
|
||||
lines = []
|
||||
if self.width <= 0:
|
||||
raise ValueError("invalid width %r (must be > 0)" % self.width)
|
||||
|
||||
# Arrange in reverse order so items can be efficiently popped
|
||||
# from a stack of chucks.
|
||||
chunks.reverse()
|
||||
|
||||
while chunks:
|
||||
|
||||
# Start the list of chunks that will make up the current line.
|
||||
# cur_len is just the length of all the chunks in cur_line.
|
||||
cur_line = []
|
||||
cur_len = 0
|
||||
|
||||
# Figure out which static string will prefix this line.
|
||||
if lines:
|
||||
indent = self.subsequent_indent
|
||||
else:
|
||||
indent = self.initial_indent
|
||||
|
||||
# Maximum width for this line.
|
||||
width = self.width - len(indent)
|
||||
|
||||
# First chunk on line is whitespace -- drop it, unless this
|
||||
# is the very beginning of the text (ie. no lines started yet).
|
||||
if self.drop_whitespace and chunks[-1].strip() == '' and lines:
|
||||
del chunks[-1]
|
||||
|
||||
while chunks:
|
||||
l = len(chunks[-1])
|
||||
|
||||
# Can at least squeeze this chunk onto the current line.
|
||||
if cur_len + l <= width:
|
||||
cur_line.append(chunks.pop())
|
||||
cur_len += l
|
||||
|
||||
# Nope, this line is full.
|
||||
else:
|
||||
break
|
||||
|
||||
# The current line is full, and the next chunk is too big to
|
||||
# fit on *any* line (not just this one).
|
||||
if chunks and len(chunks[-1]) > width:
|
||||
self._handle_long_word(chunks, cur_line, cur_len, width)
|
||||
|
||||
# If the last chunk on this line is all whitespace, drop it.
|
||||
if self.drop_whitespace and cur_line and cur_line[-1].strip() == '':
|
||||
del cur_line[-1]
|
||||
|
||||
# Convert current line back to a string and store it in list
|
||||
# of all lines (return value).
|
||||
if cur_line:
|
||||
lines.append(indent + ''.join(cur_line))
|
||||
|
||||
return lines
|
||||
|
||||
# }}}
|
||||
# function wrap() {{{
|
||||
|
||||
def wrap(text, width=70, **kwargs):
|
||||
"""
|
||||
Wrap a single paragraph of text, returning a list of wrapped lines.
|
||||
"""
|
||||
if sys.version_info < (2, 6):
|
||||
return TextWrapper(width=width, **kwargs).wrap(text)
|
||||
return textwrap.wrap(text, width=width, **kwargs)
|
||||
|
||||
#}}}
|
||||
|
Loading…
Reference in New Issue
Block a user