Django

Code

Changeset 6698

Show
Ignore:
Timestamp:
11/18/07 22:00:41 (1 year ago)
Author:
gwilson
Message:

Some minor changes to the patch_vary_headers function:

  • Replaced a for loop with a list comprehension.
  • Used a set instead of a dict with dummy values.
  • Used a bit more readable variable names.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/utils/cache.py

    r6696 r6698  
    2121import re 
    2222import time 
     23try: 
     24    set 
     25except NameError: 
     26    from sets import Set as set   # Python 2.3 fallback 
    2327 
    2428from django.conf import settings 
     
    108112    # implementations may rely on the order of the Vary contents in, say, 
    109113    # computing an MD5 hash. 
    110     vary = [] 
    111114    if response.has_header('Vary'): 
    112         vary = cc_delim_re.split(response['Vary']) 
    113     oldheaders = dict([(el.lower(), 1) for el in vary]) 
    114     for newheader in newheaders: 
    115         if not newheader.lower() in oldheaders: 
    116             vary.append(newheader) 
    117     response['Vary'] = ', '.join(vary) 
     115        vary_headers = cc_delim_re.split(response['Vary']) 
     116    else: 
     117        vary_headers = [] 
     118    # Use .lower() here so we treat headers as case-insensitive. 
     119    existing_headers = set([header.lower() for header in vary_headers]) 
     120    additional_headers = [newheader for newheader in newheaders 
     121                          if newheader.lower() not in existing_headers] 
     122    response['Vary'] = ', '.join(vary_headers + additional_headers) 
    118123 
    119124def _generate_cache_key(request, headerlist, key_prefix):