+class StgitObject:
+ """An object with stgit-like properties stored as files in a directory
+ """
+ def _set_dir(self, dir):
+ self.__dir = dir
+ def _dir(self):
+ return self.__dir
+
+ def create_empty_field(self, name):
+ create_empty_file(os.path.join(self.__dir, name))
+
+ def _get_field(self, name, multiline = False):
+ id_file = os.path.join(self.__dir, name)
+ if os.path.isfile(id_file):
+ line = read_string(id_file, multiline)
+ if line == '':
+ return None
+ else:
+ return line
+ else:
+ return None
+
+ def _set_field(self, name, value, multiline = False):
+ fname = os.path.join(self.__dir, name)
+ if value and value != '':
+ write_string(fname, value, multiline)
+ elif os.path.isfile(fname):
+ os.remove(fname)
+
+
+class Patch(StgitObject):