Patchwork [5,of,6] i18n: drop a py25 conditional

login
register
mail settings
Submitter Matt Harbison
Date June 17, 2017, 3:05 a.m.
Message ID <5fc314f5aff7a649dce7.1497668738@Envy>
Download mbox | patch
Permalink /patch/21444/
State Accepted
Headers show

Comments

Matt Harbison - June 17, 2017, 3:05 a.m.
# HG changeset patch
# User Matt Harbison <matt_harbison@yahoo.com>
# Date 1497660934 14400
#      Fri Jun 16 20:55:34 2017 -0400
# Node ID 5fc314f5aff7a649dce7fdc6ce5f817bd0c2fd67
# Parent  5d2a1f1074cd9ca0989204c47841cd12c7a54c5d
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.

Patch

diff --git a/i18n/polib.py b/i18n/polib.py
--- a/i18n/polib.py
+++ b/i18n/polib.py
@@ -804,7 +804,7 @@ 
             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 @@ 
             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 @@ 
                 # 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 @@ 
         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)
-
-#}}}