Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 775

Show
Ignore:
Timestamp:
11/01/05 15:04:36
Author:
fumanchu
Message:

Moved _cphttptools.KeyTitlingDict? to lib.cptools.HeaderMap?.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cphttptools.py

    r773 r775  
    6969 
    7070 
    71 class KeyTitlingDict(dict): 
    72      
    73     """A dict subclass which changes each key to str(key).title() 
    74      
    75     This allows headers to be case-insensitive and avoid duplicates. 
    76     """ 
    77      
    78     def __getitem__(self, key): 
    79         return dict.__getitem__(self, str(key).title()) 
    80      
    81     def __setitem__(self, key, value): 
    82         dict.__setitem__(self, str(key).title(), value) 
    83      
    84     def __delitem__(self, key): 
    85         dict.__delitem__(self, str(key).title()) 
    86      
    87     def __contains__(self, item): 
    88         return dict.__contains__(self, str(item).title()) 
    89      
    90     def get(self, key, default=None): 
    91         return dict.get(self, str(key).title(), default) 
    92      
    93     def has_key(self, key): 
    94         return dict.has_key(self, str(key).title()) 
    95      
    96     def update(self, E): 
    97         for k in E.keys(): 
    98             self[str(k).title()] = E[k] 
    99      
    100     def fromkeys(cls, seq, value=None): 
    101         newdict = cls() 
    102         for k in seq: 
    103             newdict[str(k).title()] = value 
    104         return newdict 
    105     fromkeys = classmethod(fromkeys) 
    106      
    107     def setdefault(self, key, x=None): 
    108         key = str(key).title() 
    109         try: 
    110             return self[key] 
    111         except KeyError: 
    112             self[key] = x 
    113             return x 
    114      
    115     def pop(self, key, default): 
    116         return dict.pop(self, str(key).title(), default) 
    117  
    118  
    11971class Request(object): 
    12072    """An HTTP request.""" 
     
    160112        try: 
    161113            self.headers = headers 
    162             self.headerMap = KeyTitlingDict() 
     114            self.headerMap = cptools.HeaderMap() 
    163115            self.simpleCookie = Cookie.SimpleCookie() 
    164116            self.rfile = rfile 
     
    473425        self.body = None 
    474426         
    475         self.headerMap = KeyTitlingDict() 
     427        self.headerMap = cptools.HeaderMap() 
    476428        self.headerMap.update({ 
    477429            "Content-Type": "text/html", 
  • trunk/cherrypy/lib/cptools.py

    r774 r775  
    487487 
    488488 
     489class HeaderMap(dict): 
     490    """A dict subclass for HTTP request and response headers. 
     491     
     492    Each key is changed on entry to str(key).title(). This allows headers 
     493    to be case-insensitive and avoid duplicates. 
     494    """ 
     495     
     496    def __getitem__(self, key): 
     497        return dict.__getitem__(self, str(key).title()) 
     498     
     499    def __setitem__(self, key, value): 
     500        dict.__setitem__(self, str(key).title(), value) 
     501     
     502    def __delitem__(self, key): 
     503        dict.__delitem__(self, str(key).title()) 
     504     
     505    def __contains__(self, item): 
     506        return dict.__contains__(self, str(item).title()) 
     507     
     508    def get(self, key, default=None): 
     509        return dict.get(self, str(key).title(), default) 
     510     
     511    def has_key(self, key): 
     512        return dict.has_key(self, str(key).title()) 
     513     
     514    def update(self, E): 
     515        for k in E.keys(): 
     516            self[str(k).title()] = E[k] 
     517     
     518    def fromkeys(cls, seq, value=None): 
     519        newdict = cls() 
     520        for k in seq: 
     521            newdict[str(k).title()] = value 
     522        return newdict 
     523    fromkeys = classmethod(fromkeys) 
     524     
     525    def setdefault(self, key, x=None): 
     526        key = str(key).title() 
     527        try: 
     528            return self[key] 
     529        except KeyError: 
     530            self[key] = x 
     531            return x 
     532     
     533    def pop(self, key, default): 
     534        return dict.pop(self, str(key).title(), default) 

Hosted by WebFaction

Log in as guest/cpguest to create tickets