56 lines
979 B
Python
56 lines
979 B
Python
#! /usr/bin/python
|
|
|
|
# To change this template, choose Tools | Templates
|
|
# and open the template in the editor.
|
|
|
|
__author__="bjschuma"
|
|
__date__ ="$Jan 19, 2010 11:10:07 PM$"
|
|
|
|
|
|
from collections import deque
|
|
|
|
|
|
class Map(dict):
|
|
def __init__(self):
|
|
dict.__init__(self)
|
|
|
|
|
|
def set(self,key,item):
|
|
key = key.upper()
|
|
# Make a new deque if the key doesn't exist
|
|
if self.has(key) == False:
|
|
self[key] = [item]
|
|
else:
|
|
self[key] = self[key] + [item]
|
|
self[key].sort()
|
|
|
|
|
|
def get(self,key,all=False):
|
|
key = key.upper()
|
|
# Return none if the key doesn't exist
|
|
if self.has(key) == False:
|
|
return None
|
|
|
|
if all==False:
|
|
return self[key][0]
|
|
else:
|
|
return self[key]
|
|
|
|
|
|
def has(self,key):
|
|
return (key.upper() in self.keys())
|
|
|
|
|
|
def remove(self,key,item):
|
|
if self.has(key) == False:
|
|
return
|
|
|
|
items = self.get(key,True)
|
|
if (item in items) == True:
|
|
items.remove(item)
|
|
|
|
|
|
def delete(self,key):
|
|
key = key.upper()
|
|
if self.has(key) == True:
|
|
del self[key] |