def __init__(self, subnet=None, subnetname=None): super(Network, self).__init__() self.name = None self.mask = None self._subnets = PersistentList() self.nodes = PersistentDict() # actually, Interface objects self._gatways = PersistentList() if subnet: self.add_subnet(subnet, subnetname)
def other(self): p = PersistentList() p.insert(0, 2) assert p == [2] assert p.count(0) == 0 assert p.count(2) == 1 assert p.index(2) == 0 p.remove(2) p.extend(PersistentList(interval(3))) assert p == interval(3)
def cmp(self): p = PersistentList(interval(10)) p2 = PersistentList(interval(10)) assert p == p2 assert p == list(p2) assert p <= p2 assert p >= p2 assert not p < p2 assert not p > p2 p.append(3) assert p != p2
def slice(self): p = PersistentList(x for x in interval(10)) p[:] = [2, 3] assert len(p) == 2 assert p[-1:] == [3] p[1:] = PersistentList(interval(2)) assert p == [2, 0, 1], p.data p[:] = (3, 4) assert p == [3, 4] del p[:1] assert p == [4]
def index_pagename(self, pagename): pm = self.getpage(pagename) ol, ul = pm.outlinks, pm.unlinks # set-ify to eliminate dups for metakey in set(pm.outlinks.keys() + pm.unlinks.keys()): pl = self.pagename_by_metakey.setdefault(metakey, PersistentList()) # add page name to metakey index if pagename not in pl: pl.append(pagename) # add page to metaval index for val in set(ol.get(metakey, []) + ul.get(metakey, [])): self.pagename_by_metaval.setdefault( val, PersistentList()).append(pagename)
def arith(self): p = PersistentList(interval(3)) p2 = PersistentList(interval(3)) assert p + p2 == interval(3) + interval(3) assert interval(3) + p2 == interval(3) + interval(3) assert tuple(interval(3)) + p2 == interval(3) + interval(3) assert p + interval(3) == interval(3) + interval(3) assert p + tuple(interval(3)) == interval(3) + interval(3) assert p * 2 == interval(3) + interval(3) p += p2 assert p == interval(3) + interval(3) p2 += interval(3) assert p == interval(3) + interval(3) p = PersistentList(interval(3)) p *= 2 assert p == interval(3) + interval(3)
def nonzero(self): p = PersistentList() assert not p self.root['a'] = p self.connection.commit() p.append(1) assert p assert p._p_is_unsaved()
def __init__(self, name): super(NetworkDevice, self).__init__() self.name = self.hostname = str(name) self.INTERFACEMAP = PersistentDict() self._interfaces = PersistentDict() self.data_interfaces = PersistentList() self.admin_interface = None self.initialize() # subclass interface
def check_touch_every_reference(self): connection = Connection(self._get_storage()) root = connection.get_root() root['a'] = Persistent() root['b'] = Persistent() from durus.persistent_list import PersistentList root['b'].c = PersistentList() connection.commit() touch_every_reference(connection, 'PersistentList') assert root['b']._p_is_unsaved() assert root['b'].c._p_is_unsaved() assert not root._p_is_unsaved() assert len(list(connection.get_cache())) == 4
def sort(self): p = PersistentList(x for x in interval(10)) p.reverse() assert p == list(reversed(interval(10))) p = sorted(p) assert p == interval(10)
def add(self, typ, val): try: l = self[typ] except KeyError: l = self[typ] = PersistentList() l.append(val)
def pop(self): p = PersistentList(x for x in interval(10)) p.pop() assert 9 not in p
def delete(self): p = PersistentList(x for x in interval(10)) self.root['x'] = p self.connection.commit() del p[1] assert p._p_is_unsaved()
def set_single(self, typ, val): self[typ] = PersistentList([val])
def contains(self): p = PersistentList(x for x in interval(5)) assert 2 in p assert -1 not in p
def insert_again(self): p = PersistentList([5, 6, 7]) p[1] = 2 p[1] = 3 assert p[1] == 3
def __init__(self, jid): self.jid = jid self.items_pending = PersistentList() # [CItem, ...] self.config = PersistentDict() self.feeds = PersistentDict() # {CFeed: send first notification?}
def no_arbitrary_attributes(self): p = PersistentList() raises(AttributeError, setattr, p, 'bogus', 1)
def __init__(self, urlfeed): self.url = urlfeed self.title = '' self.link = '' self.last_items = PersistentList() # last 50, for example, only hash self.users = PersistentSet() # CUser set
def clear_items(self): self.items_pending = PersistentList()
def iter(self): p = PersistentList() assert list(p) == [] p.extend([2, 3, 4]) assert list(p) == [2, 3, 4]