~ubuntu-branches/ubuntu/quantal/gozerbot/quantal

« back to all changes in this revision

Viewing changes to build/lib/gozerbot/utils/dol.py

  • Committer: Bazaar Package Importer
  • Author(s): Jeremy Malcolm
  • Date: 2010-09-29 18:20:02 UTC
  • mfrom: (3.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100929182002-gi532gnem1vlu6jy
Tags: 0.9.1.3-5
Added python2.5 build dependency. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# gozerbot/dol.py
 
2
#
 
3
#
 
4
 
 
5
""" dict of lists """
 
6
 
 
7
__copyright__ = 'this file is in the public domain'
 
8
 
 
9
class Dol(dict):
 
10
 
 
11
    """ dol is dict of lists """
 
12
 
 
13
    def insert(self, nr, item, issue):
 
14
        """ add issue to item entry """
 
15
        if self.has_key(item):
 
16
            self[item].insert(nr, issue)
 
17
        else:
 
18
            self[item] = [issue]
 
19
        return 1
 
20
 
 
21
    def add(self, item, issue):
 
22
        """ add issue to item entry """
 
23
        if self.has_key(item):
 
24
            self[item].append(issue)
 
25
        else:
 
26
            self[item] = [issue]
 
27
        return 1
 
28
 
 
29
    def adduniq(self, item, issue):
 
30
        """ only add issue to item if it is not already there """
 
31
        if self.has_key(item):
 
32
            if issue in self[item]:
 
33
                return 0
 
34
        self.add(item, issue)
 
35
        return 1
 
36
            
 
37
    def delete(self, item, number):
 
38
        """ del self[item][number] """
 
39
        number = int(number)
 
40
        if self.has_key(item):
 
41
            try:
 
42
                del self[item][number]
 
43
                return 1
 
44
            except IndexError:
 
45
                return None
 
46
 
 
47
    def remove(self, item, issue):
 
48
        """ remove issue from item """
 
49
        try:
 
50
            self[item].remove(issue)
 
51
            return 1
 
52
        except ValueError:
 
53
            pass
 
54
 
 
55
    def has(self, item, issue):
 
56
        """ check if item has issue """
 
57
        try:
 
58
            if issue in self[item]:
 
59
                return 1
 
60
            else:
 
61
                return None
 
62
        except KeyError:
 
63
            pass