Ticket #7297: 7297.1.diff

File 7297.1.diff, 2.0 KB (added by akaihola, 7 years ago)

Work-around for #7297 doctest problem and corrections to code examples in utils.text

  • ../django/utils/text.py

     
    118118    spaces are converted to underscores; and all non-filename-safe characters
    119119    are removed.
    120120    >>> get_valid_filename("john's portrait in 2004.jpg")
    121     'johns_portrait_in_2004.jpg'
     121    u'johns_portrait_in_2004.jpg'
    122122    """
    123123    s = force_unicode(s).strip().replace(' ', '_')
    124124    return re.sub(r'[^-A-Za-z0-9_.]', '', s)
     
    127127def get_text_list(list_, last_word=ugettext_lazy(u'or')):
    128128    """
    129129    >>> get_text_list(['a', 'b', 'c', 'd'])
    130     'a, b, c or d'
     130    u'a, b, c or d'
    131131    >>> get_text_list(['a', 'b', 'c'], 'and')
    132     'a, b and c'
     132    u'a, b and c'
    133133    >>> get_text_list(['a', 'b'], 'and')
    134     'a and b'
     134    u'a and b'
    135135    >>> get_text_list(['a'])
    136     'a'
     136    u'a'
    137137    >>> get_text_list([])
    138     ''
     138    u''
    139139    """
    140140    if len(list_) == 0: return u''
    141141    if len(list_) == 1: return force_unicode(list_[0])
     
    198198
    199199smart_split_re = re.compile('("(?:[^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\'(?:[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'|[^\\s]+)')
    200200def smart_split(text):
    201     """
     201    r"""
    202202    Generator that splits a string by spaces, leaving quoted phrases together.
    203203    Supports both single and double quotes, and supports escaping quotes with
    204204    backslashes. In the output, strings will keep their initial and trailing
    205205    quote marks.
    206206
    207     >>> list(smart_split('This is "a person\'s" test.'))
    208     ['This', 'is', '"a person\'s"', 'test.']
     207    >>> list(smart_split(r'This is "a person\'s" test.'))
     208    [u'This', u'is', u'"a person\\\'s"', u'test.']
    209209    """
    210210    text = force_unicode(text)
    211211    for bit in smart_split_re.finditer(text):
     
    218218            yield bit
    219219smart_split = allow_lazy(smart_split, unicode)
    220220
     221# Work-around for http://bugs.python.org/issue1108
     222__doc__ = ''.join((
     223    get_valid_filename.__doc__,
     224    get_text_list.__doc__,
     225    smart_split.__doc__,
     226))
     227
Back to Top