/usr/share/pyshared/lpltk/tags.py is in python-launchpadlib-toolkit 2.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #!/usr/bin/python
class BugTags(object):
# __init__
#
def __init__(self, tkbug):
self.__tkbug = tkbug
self.__tags = None
self.__commit_changes = tkbug.commit_changes
# __len__
#
def __len__(self):
self.__fetch_if_needed()
return len(self.__tags)
# __getitem__
#
def __getitem__(self, key):
self.__fetch_if_needed()
return self.__tags[key]
# __setitem__
#
def __setitem__(self, key, value):
self.__fetch_if_needed()
self.__tags[key] = value
self.__save_tags()
# __delitem__
#
def __delitem__(self, key):
self.__fetch_if_needed()
del self.__tags[key]
self.__save_tags()
# __iter__
#
def __iter__(self):
self.__fetch_if_needed()
for tag in self.__tags:
yield tag
# __contains__
#
def __contains__(self, item):
self.__fetch_if_needed()
return item in self.__tags
# __save_tags
#
def __save_tags(self):
if self.__commit_changes:
self.__tkbug.lpbug.tags = self.__tags
self.__tkbug.lpbug.lp_save()
# __fetch_if_needed
#
def __fetch_if_needed(self):
if self.__tags == None:
self.__tags = self.__tkbug.lpbug.tags
# append
#
def append(self, item):
self.__fetch_if_needed()
if not isinstance(item, str):
raise TypeError("Must be a string")
self.__tags.append(item)
self.__save_tags()
# extend
#
def extend(self, items):
self.__fetch_if_needed()
if not isinstance(items, list):
raise TypeError("Must be a list")
self.__tags.extend(items)
self.__save_tags()
# remove
#
def remove(self, item):
self.__fetch_if_needed()
if not isinstance(item, str):
raise TypeError("Must be a string")
self.__tags.remove(item)
self.__save_tags()
# vi:set ts=4 sw=4 expandtab:
|