X-Git-Url: https://scripts.mit.edu/gitweb/wizard.git/blobdiff_plain/4cf2369b25c660391587baaa8b3b30c1aeb5b41f..9b63b938c89c61c4ce0e9c794f7aa60cdb455612:/wizard/sset.py diff --git a/wizard/sset.py b/wizard/sset.py index e6a4527..b2364db 100644 --- a/wizard/sset.py +++ b/wizard/sset.py @@ -1,18 +1,26 @@ import os.path def make(seen_file): + """ + Return a :class:`SerialisedSet` if given any non-empty string. + If given an empty string, return a :class:`DummySerialisedSet`. + """ if seen_file: return SerializedSet(seen_file) else: return DummySerializedSet() class ISerializedSet(object): - def put(self, name): + """A unique unordered collection of strings.""" + def add(self, name): + """Adds a value into the set.""" raise NotImplementedError class SerializedSet(ISerializedSet): - """This set also records itself to a file, so that it - is persisted over multiple sessions.""" + """ + This set also records itself to a file, so that it + is persisted over multiple sessions. + """ def __init__(self, file): self.set = set() if os.path.isfile(file): @@ -22,14 +30,18 @@ class SerializedSet(ISerializedSet): def __contains__(self, name): return name in self.set def add(self, name): + """Adds a value into the set.""" self.set.add(name) self.file.write(name + "\n") self.file.flush() class DummySerializedSet(ISerializedSet): - """Dummy object that doesn't actually cache anything and - claims that everything needs to be done""" + """ + Dummy object that doesn't actually cache anything and + claims that everything needs to be done. + """ def __contains__(self, name): return False def add(self, name): + """Doesn't do anything.""" pass