diff options
Diffstat (limited to 'django/utils')
| -rw-r--r-- | django/utils/cache.py | 20 | ||||
| -rw-r--r-- | django/utils/encoding.py | 8 | ||||
| -rw-r--r-- | django/utils/feedgenerator.py | 26 | ||||
| -rw-r--r-- | django/utils/html.py | 10 | ||||
| -rw-r--r-- | django/utils/ipv6.py | 2 | ||||
| -rw-r--r-- | django/utils/lorem_ipsum.py | 68 | ||||
| -rw-r--r-- | django/utils/text.py | 10 | ||||
| -rw-r--r-- | django/utils/translation/__init__.py | 9 | ||||
| -rw-r--r-- | django/utils/translation/trans_real.py | 14 | ||||
| -rw-r--r-- | django/utils/version.py | 8 |
10 files changed, 93 insertions, 82 deletions
diff --git a/django/utils/cache.py b/django/utils/cache.py index eb3aa631ec..be1626a263 100644 --- a/django/utils/cache.py +++ b/django/utils/cache.py @@ -94,8 +94,7 @@ def get_max_age(response): """ if not response.has_header('Cache-Control'): return - cc = dict(_to_tuple(el) for el in - cc_delim_re.split(response['Cache-Control'])) + cc = dict(_to_tuple(el) for el in cc_delim_re.split(response['Cache-Control'])) if 'max-age' in cc: try: return int(cc['max-age']) @@ -110,7 +109,8 @@ def set_response_etag(response): def _precondition_failed(request): - logger.warning('Precondition Failed: %s', request.path, + logger.warning( + 'Precondition Failed: %s', request.path, extra={ 'status_code': 412, 'request': request, @@ -173,19 +173,17 @@ def get_conditional_response(request, etag=None, last_modified=None, response=No (if_match and if_none_match)): # We only get here if no undefined combinations of headers are # specified. - if ((if_none_match and (etag in etags or - '*' in etags and etag)) and + if ((if_none_match and (etag in etags or '*' in etags and etag)) and (not if_modified_since or - (last_modified and if_modified_since and - last_modified <= if_modified_since))): + (last_modified and if_modified_since and last_modified <= if_modified_since))): if request.method in ('GET', 'HEAD'): return _not_modified(request, response) else: return _precondition_failed(request) - elif (if_match and ((not etag and '*' in etags) or - (etag and etag not in etags) or - (last_modified and if_unmodified_since and - last_modified > if_unmodified_since))): + elif (if_match and ( + (not etag and '*' in etags) or (etag and etag not in etags) or + (last_modified and if_unmodified_since and last_modified > if_unmodified_since) + )): return _precondition_failed(request) elif (not if_none_match and request.method in ('GET', 'HEAD') and last_modified and if_modified_since and diff --git a/django/utils/encoding.py b/django/utils/encoding.py index 6bc285d899..66077e2108 100644 --- a/django/utils/encoding.py +++ b/django/utils/encoding.py @@ -21,8 +21,7 @@ class DjangoUnicodeDecodeError(UnicodeDecodeError): def __str__(self): original = UnicodeDecodeError.__str__(self) - return '%s. You passed in %r (%s)' % (original, self.obj, - type(self.obj)) + return '%s. You passed in %r (%s)' % (original, self.obj, type(self.obj)) # For backwards compatibility. (originally in Django, then added to six 1.9) @@ -42,8 +41,9 @@ def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'): return force_text(s, encoding, strings_only, errors) -_PROTECTED_TYPES = six.integer_types + (type(None), float, Decimal, - datetime.datetime, datetime.date, datetime.time) +_PROTECTED_TYPES = six.integer_types + ( + type(None), float, Decimal, datetime.datetime, datetime.date, datetime.time +) def is_protected_type(obj): diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py index 367245be22..3a91af3815 100644 --- a/django/utils/feedgenerator.py +++ b/django/utils/feedgenerator.py @@ -89,8 +89,8 @@ def get_tag_uri(url, date): class SyndicationFeed(object): "Base class for all syndication feeds. Subclasses should provide write()" def __init__(self, title, link, description, language=None, author_email=None, - author_name=None, author_link=None, subtitle=None, categories=None, - feed_url=None, feed_copyright=None, feed_guid=None, ttl=None, **kwargs): + author_name=None, author_link=None, subtitle=None, categories=None, + feed_url=None, feed_copyright=None, feed_guid=None, ttl=None, **kwargs): def to_unicode(s): return force_text(s, strings_only=True) if categories: @@ -117,10 +117,10 @@ class SyndicationFeed(object): self.items = [] def add_item(self, title, link, description, author_email=None, - author_name=None, author_link=None, pubdate=None, comments=None, - unique_id=None, unique_id_is_permalink=None, enclosure=None, - categories=(), item_copyright=None, ttl=None, updateddate=None, - enclosures=None, **kwargs): + author_name=None, author_link=None, pubdate=None, comments=None, + unique_id=None, unique_id_is_permalink=None, enclosure=None, + categories=(), item_copyright=None, ttl=None, updateddate=None, + enclosures=None, **kwargs): """ Adds an item to the feed. All args are expected to be Python Unicode objects except pubdate and updateddate, which are datetime.datetime @@ -262,8 +262,7 @@ class RssFeed(SyndicationFeed): handler.addQuickElement("link", self.feed['link']) handler.addQuickElement("description", self.feed['description']) if self.feed['feed_url'] is not None: - handler.addQuickElement("atom:link", None, - {"rel": "self", "href": self.feed['feed_url']}) + handler.addQuickElement("atom:link", None, {"rel": "self", "href": self.feed['feed_url']}) if self.feed['language'] is not None: handler.addQuickElement("language", self.feed['language']) for cat in self.feed['categories']: @@ -309,13 +308,13 @@ class Rss201rev2Feed(RssFeed): # Author information. if item["author_name"] and item["author_email"]: - handler.addQuickElement("author", "%s (%s)" % - (item['author_email'], item['author_name'])) + handler.addQuickElement("author", "%s (%s)" % (item['author_email'], item['author_name'])) elif item["author_email"]: handler.addQuickElement("author", item["author_email"]) elif item["author_name"]: - handler.addQuickElement("dc:creator", item["author_name"], - {"xmlns:dc": "http://purl.org/dc/elements/1.1/"}) + handler.addQuickElement( + "dc:creator", item["author_name"], {"xmlns:dc": "http://purl.org/dc/elements/1.1/"} + ) if item['pubdate'] is not None: handler.addQuickElement("pubDate", rfc2822_date(item['pubdate'])) @@ -324,8 +323,7 @@ class Rss201rev2Feed(RssFeed): if item['unique_id'] is not None: guid_attrs = {} if isinstance(item.get('unique_id_is_permalink'), bool): - guid_attrs['isPermaLink'] = str( - item['unique_id_is_permalink']).lower() + guid_attrs['isPermaLink'] = str(item['unique_id_is_permalink']).lower() handler.addQuickElement("guid", item['unique_id'], guid_attrs) if item['ttl'] is not None: handler.addQuickElement("ttl", item['ttl']) diff --git a/django/utils/html.py b/django/utils/html.py index de515ef8e9..a5cb56ec9e 100644 --- a/django/utils/html.py +++ b/django/utils/html.py @@ -38,8 +38,8 @@ html_gunk_re = re.compile( r'(?:<br clear="all">|<i><\/i>|<b><\/b>|<em><\/em>|<strong><\/strong>|' '<\/?smallcaps>|<\/?uppercase>)', re.IGNORECASE) hard_coded_bullets_re = re.compile( - r'((?:<p>(?:%s).*?[a-zA-Z].*?</p>\s*)+)' % '|'.join(re.escape(x) - for x in DOTS), re.DOTALL) + r'((?:<p>(?:%s).*?[a-zA-Z].*?</p>\s*)+)' % '|'.join(re.escape(x) for x in DOTS), re.DOTALL +) trailing_empty_content_re = re.compile(r'(?:<p>(?: |\s|<br \/>)*?</p>\s*)+\Z') @@ -53,8 +53,10 @@ def escape(text): marked as such. This may result in double-escaping. If this is a concern, use conditional_escape() instead. """ - return mark_safe(force_text(text).replace('&', '&').replace('<', '<') - .replace('>', '>').replace('"', '"').replace("'", ''')) + return mark_safe( + force_text(text).replace('&', '&').replace('<', '<') + .replace('>', '>').replace('"', '"').replace("'", ''') + ) _js_escapes = { ord('\\'): '\\u005C', diff --git a/django/utils/ipv6.py b/django/utils/ipv6.py index 819b6a299a..c41f1e2b46 100644 --- a/django/utils/ipv6.py +++ b/django/utils/ipv6.py @@ -9,7 +9,7 @@ from django.utils.translation import ugettext_lazy as _ def clean_ipv6_address(ip_str, unpack_ipv4=False, - error_message=_("This is not a valid IPv6 address.")): + error_message=_("This is not a valid IPv6 address.")): """ Cleans an IPv6 address string. diff --git a/django/utils/lorem_ipsum.py b/django/utils/lorem_ipsum.py index 19bf899613..a9459f4395 100644 --- a/django/utils/lorem_ipsum.py +++ b/django/utils/lorem_ipsum.py @@ -16,39 +16,43 @@ COMMON_P = ( 'mollit anim id est laborum.' ) -WORDS = ('exercitationem', 'perferendis', 'perspiciatis', 'laborum', 'eveniet', - 'sunt', 'iure', 'nam', 'nobis', 'eum', 'cum', 'officiis', 'excepturi', - 'odio', 'consectetur', 'quasi', 'aut', 'quisquam', 'vel', 'eligendi', - 'itaque', 'non', 'odit', 'tempore', 'quaerat', 'dignissimos', - 'facilis', 'neque', 'nihil', 'expedita', 'vitae', 'vero', 'ipsum', - 'nisi', 'animi', 'cumque', 'pariatur', 'velit', 'modi', 'natus', - 'iusto', 'eaque', 'sequi', 'illo', 'sed', 'ex', 'et', 'voluptatibus', - 'tempora', 'veritatis', 'ratione', 'assumenda', 'incidunt', 'nostrum', - 'placeat', 'aliquid', 'fuga', 'provident', 'praesentium', 'rem', - 'necessitatibus', 'suscipit', 'adipisci', 'quidem', 'possimus', - 'voluptas', 'debitis', 'sint', 'accusantium', 'unde', 'sapiente', - 'voluptate', 'qui', 'aspernatur', 'laudantium', 'soluta', 'amet', - 'quo', 'aliquam', 'saepe', 'culpa', 'libero', 'ipsa', 'dicta', - 'reiciendis', 'nesciunt', 'doloribus', 'autem', 'impedit', 'minima', - 'maiores', 'repudiandae', 'ipsam', 'obcaecati', 'ullam', 'enim', - 'totam', 'delectus', 'ducimus', 'quis', 'voluptates', 'dolores', - 'molestiae', 'harum', 'dolorem', 'quia', 'voluptatem', 'molestias', - 'magni', 'distinctio', 'omnis', 'illum', 'dolorum', 'voluptatum', 'ea', - 'quas', 'quam', 'corporis', 'quae', 'blanditiis', 'atque', 'deserunt', - 'laboriosam', 'earum', 'consequuntur', 'hic', 'cupiditate', - 'quibusdam', 'accusamus', 'ut', 'rerum', 'error', 'minus', 'eius', - 'ab', 'ad', 'nemo', 'fugit', 'officia', 'at', 'in', 'id', 'quos', - 'reprehenderit', 'numquam', 'iste', 'fugiat', 'sit', 'inventore', - 'beatae', 'repellendus', 'magnam', 'recusandae', 'quod', 'explicabo', - 'doloremque', 'aperiam', 'consequatur', 'asperiores', 'commodi', - 'optio', 'dolor', 'labore', 'temporibus', 'repellat', 'veniam', - 'architecto', 'est', 'esse', 'mollitia', 'nulla', 'a', 'similique', - 'eos', 'alias', 'dolore', 'tenetur', 'deleniti', 'porro', 'facere', - 'maxime', 'corrupti') +WORDS = ( + 'exercitationem', 'perferendis', 'perspiciatis', 'laborum', 'eveniet', + 'sunt', 'iure', 'nam', 'nobis', 'eum', 'cum', 'officiis', 'excepturi', + 'odio', 'consectetur', 'quasi', 'aut', 'quisquam', 'vel', 'eligendi', + 'itaque', 'non', 'odit', 'tempore', 'quaerat', 'dignissimos', + 'facilis', 'neque', 'nihil', 'expedita', 'vitae', 'vero', 'ipsum', + 'nisi', 'animi', 'cumque', 'pariatur', 'velit', 'modi', 'natus', + 'iusto', 'eaque', 'sequi', 'illo', 'sed', 'ex', 'et', 'voluptatibus', + 'tempora', 'veritatis', 'ratione', 'assumenda', 'incidunt', 'nostrum', + 'placeat', 'aliquid', 'fuga', 'provident', 'praesentium', 'rem', + 'necessitatibus', 'suscipit', 'adipisci', 'quidem', 'possimus', + 'voluptas', 'debitis', 'sint', 'accusantium', 'unde', 'sapiente', + 'voluptate', 'qui', 'aspernatur', 'laudantium', 'soluta', 'amet', + 'quo', 'aliquam', 'saepe', 'culpa', 'libero', 'ipsa', 'dicta', + 'reiciendis', 'nesciunt', 'doloribus', 'autem', 'impedit', 'minima', + 'maiores', 'repudiandae', 'ipsam', 'obcaecati', 'ullam', 'enim', + 'totam', 'delectus', 'ducimus', 'quis', 'voluptates', 'dolores', + 'molestiae', 'harum', 'dolorem', 'quia', 'voluptatem', 'molestias', + 'magni', 'distinctio', 'omnis', 'illum', 'dolorum', 'voluptatum', 'ea', + 'quas', 'quam', 'corporis', 'quae', 'blanditiis', 'atque', 'deserunt', + 'laboriosam', 'earum', 'consequuntur', 'hic', 'cupiditate', + 'quibusdam', 'accusamus', 'ut', 'rerum', 'error', 'minus', 'eius', + 'ab', 'ad', 'nemo', 'fugit', 'officia', 'at', 'in', 'id', 'quos', + 'reprehenderit', 'numquam', 'iste', 'fugiat', 'sit', 'inventore', + 'beatae', 'repellendus', 'magnam', 'recusandae', 'quod', 'explicabo', + 'doloremque', 'aperiam', 'consequatur', 'asperiores', 'commodi', + 'optio', 'dolor', 'labore', 'temporibus', 'repellat', 'veniam', + 'architecto', 'est', 'esse', 'mollitia', 'nulla', 'a', 'similique', + 'eos', 'alias', 'dolore', 'tenetur', 'deleniti', 'porro', 'facere', + 'maxime', 'corrupti', +) -COMMON_WORDS = ('lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', - 'adipisicing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt', - 'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua') +COMMON_WORDS = ( + 'lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', + 'adipisicing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt', + 'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua', +) def sentence(): diff --git a/django/utils/text.py b/django/utils/text.py index 46872372ac..e6849a018d 100644 --- a/django/utils/text.py +++ b/django/utils/text.py @@ -278,10 +278,12 @@ def normalize_newlines(text): @keep_lazy_text def phone2numeric(phone): """Converts a phone number with letters into its numeric equivalent.""" - char2number = {'a': '2', 'b': '2', 'c': '2', 'd': '3', 'e': '3', 'f': '3', - 'g': '4', 'h': '4', 'i': '4', 'j': '5', 'k': '5', 'l': '5', 'm': '6', - 'n': '6', 'o': '6', 'p': '7', 'q': '7', 'r': '7', 's': '7', 't': '8', - 'u': '8', 'v': '8', 'w': '9', 'x': '9', 'y': '9', 'z': '9'} + char2number = { + 'a': '2', 'b': '2', 'c': '2', 'd': '3', 'e': '3', 'f': '3', 'g': '4', + 'h': '4', 'i': '4', 'j': '5', 'k': '5', 'l': '5', 'm': '6', 'n': '6', + 'o': '6', 'p': '7', 'q': '7', 'r': '7', 's': '7', 't': '8', 'u': '8', + 'v': '8', 'w': '9', 'x': '9', 'y': '9', 'z': '9', + } return ''.join(char2number.get(c, c) for c in phone.lower()) diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py index 9004af4998..ecd94390e5 100644 --- a/django/utils/translation/__init__.py +++ b/django/utils/translation/__init__.py @@ -120,10 +120,11 @@ def lazy_number(func, resultclass, number=None, **kwargs): try: number_value = rhs[number] except KeyError: - raise KeyError('Your dictionary lacks key \'%s\'. ' - 'Please provide it, because it is required to ' - 'determine whether string is singular or plural.' - % number) + raise KeyError( + "Your dictionary lacks key '%s\'. Please provide " + "it, because it is required to determine whether " + "string is singular or plural." % number + ) else: number_value = rhs kwargs['number'] = number_value diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py index 34dd7bc768..7a2a1c63a2 100644 --- a/django/utils/translation/trans_real.py +++ b/django/utils/translation/trans_real.py @@ -574,8 +574,10 @@ def templatize(src, origin=None): does so by translating the Django translation tags into standard gettext function invocations. """ - from django.template.base import (Lexer, TOKEN_TEXT, TOKEN_VAR, - TOKEN_BLOCK, TOKEN_COMMENT, TRANSLATOR_COMMENT_MARK) + from django.template.base import ( + Lexer, TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK, TOKEN_COMMENT, + TRANSLATOR_COMMENT_MARK, + ) src = force_text(src, settings.FILE_CHARSET) out = StringIO('') message_context = None @@ -690,9 +692,11 @@ def templatize(src, origin=None): filemsg = '' if origin: filemsg = 'file %s, ' % origin - warn_msg = ("The translator-targeted comment '%s' " - "(%sline %d) was ignored, because it wasn't the last item " - "on the line.") % (c, filemsg, comment_lineno_cache) + warn_msg = ( + "The translator-targeted comment '%s' " + "(%sline %d) was ignored, because it wasn't " + "the last item on the line." + ) % (c, filemsg, comment_lineno_cache) warnings.warn(warn_msg, TranslatorCommentWarning) lineno_comment_map[comment_lineno_cache] = [] else: diff --git a/django/utils/version.py b/django/utils/version.py index 6963899906..f5b0f109e6 100644 --- a/django/utils/version.py +++ b/django/utils/version.py @@ -68,9 +68,11 @@ def get_git_changeset(): so it's sufficient for generating the development version numbers. """ repo_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - git_log = subprocess.Popen('git log --pretty=format:%ct --quiet -1 HEAD', - stdout=subprocess.PIPE, stderr=subprocess.PIPE, - shell=True, cwd=repo_dir, universal_newlines=True) + git_log = subprocess.Popen( + 'git log --pretty=format:%ct --quiet -1 HEAD', + stdout=subprocess.PIPE, stderr=subprocess.PIPE, + shell=True, cwd=repo_dir, universal_newlines=True, + ) timestamp = git_log.communicate()[0] try: timestamp = datetime.datetime.utcfromtimestamp(int(timestamp)) |
