class BaseApp(object): def __init__(self, config): self.config = config self.services = IterableUserDict() def register_service(self, service): """ registeres protocol with peer, which will be accessible as peer.<protocol.name> (e.g. peer.p2p or peer.eth) """ assert isinstance(service, BaseService) assert service.name not in self.services log.info('registering service', service=service.name) self.services[service.name] = service setattr(self.services, service.name, service) def deregister_service(self, service): assert isinstance(service, BaseService) self.services.remove(service) delattr(self.services, service.name) def start(self): for service in self.services.values(): service.start() def stop(self): for service in self.services.values(): service.stop()
class BaseApp(object): default_config = dict(client_version='pydevp2p {}'.format(__version__), deactivated_services=[]) def __init__(self, config=default_config): self.config = utils.update_config_with_defaults(config, self.default_config) self.services = IterableUserDict() def register_service(self, service): """ registeres protocol with app, which will be accessible as app.services.<protocol.name> (e.g. app.services.p2p or app.services.eth) """ assert isinstance(service, BaseService) assert service.name not in self.services log.info('registering service', service=service.name) self.services[service.name] = service setattr(self.services, service.name, service) def deregister_service(self, service): assert isinstance(service, BaseService) self.services.remove(service) delattr(self.services, service.name) def start(self): for service in self.services.values(): service.start() def stop(self): for service in self.services.values(): service.stop()
class BaseApp(object): client_name = 'pyethcrawler' client_version = '0.1/%s/%s' % (sys.platform, 'py%d.%d.%d' % sys.version_info[:3]) client_version_string = '%s/v%s' % (client_name, client_version) start_console = False default_config = {} default_config['client_version_string'] = client_version_string default_config['result_dir'] = '' default_config['prev_routing_table'] = '/results/routing-table_170109-084715.csv' default_config['prev_peers'] = '' # default_config['p2p'] = dict(bootstrap_nodes=[],listen_port=30304,listen_host='0.0.0.0') privkey_hex = 'b3b9736ba5e4b9d0f85231291316c7fd82bde4ae80bb7ca98175cf6d11c0c4eb' pubkey = crypto.privtopub(privkey_hex.decode('hex')) default_config['node'] = dict(privkey_hex=privkey_hex, id=crypto.sha3(pubkey)) def __init__(self, config=default_config): self.config = utils.update_config_with_defaults(config, self.default_config) self.services = IterableUserDict() def register_service(self, service): """ registeres protocol with app, which will be accessible as app.services.<protocol.name> (e.g. app.services.p2p or app.services.eth) """ assert isinstance(service, BaseService) assert service.name not in self.services log.info('registering service', service=service.name) self.services[service.name] = service setattr(self.services, service.name, service) def deregister_service(self, service): assert isinstance(service, BaseService) self.services.remove(service) delattr(self.services, service.name) def start(self): for service in self.services.values(): service.start() def stop(self): for service in self.services.values(): service.stop() def join(self): for service in self.services.values(): service.join()
print self m2 = MyUserDict(u2) m2a = m2.copy() verify(m2a == m2) # SF bug #476616 -- copy() of UserDict subclass shared data m2['foo'] = 'bar' verify(m2a != m2) # Test keys, items, values verify(u2.keys() == d2.keys()) verify(u2.items() == d2.items()) verify(u2.values() == d2.values()) # Test has_key and "in". for i in u2.keys(): verify(u2.has_key(i) == 1) verify((i in u2) == 1) verify(u1.has_key(i) == d1.has_key(i)) verify((i in u1) == (i in d1)) verify(u0.has_key(i) == d0.has_key(i)) verify((i in u0) == (i in d0)) # Test update t = UserDict() t.update(u2)
class MyUserDict(UserDict): def display(self): print self m2 = MyUserDict(u2) m2a = m2.copy() verify(m2a == m2) # SF bug #476616 -- copy() of UserDict subclass shared data m2['foo'] = 'bar' verify(m2a != m2) # Test keys, items, values verify(u2.keys() == d2.keys()) verify(u2.items() == d2.items()) verify(u2.values() == d2.values()) # Test has_key and "in". for i in u2.keys(): verify(u2.has_key(i) == 1) verify((i in u2) == 1) verify(u1.has_key(i) == d1.has_key(i)) verify((i in u1) == (i in d1)) verify(u0.has_key(i) == d0.has_key(i)) verify((i in u0) == (i in d0)) # Test update t = UserDict() t.update(u2)
# Check every path through every method of UserDict from test_support import verify, verbose from UserDict import UserDict, IterableUserDict d0 = {} d1 = {"one": 1} d2 = {"one": 1, "two": 2} # Test constructors u = UserDict() u0 = UserDict(d0) u1 = UserDict(d1) u2 = IterableUserDict(d2) uu = UserDict(u) uu0 = UserDict(u0) uu1 = UserDict(u1) uu2 = UserDict(u2) # Test __repr__ verify(str(u0) == str(d0)) verify(repr(u1) == repr(d1)) verify(`u2` == `d2`) # Test __cmp__ and __len__ all = [d0, d1, d2, u, u0, u1, u2, uu, uu0, uu1, uu2] for a in all: for b in all: verify(cmp(a, b) == cmp(len(a), len(b))) # Test __getitem__ verify(u2["one"] == 1) try: u1["two"] except KeyError: pass
# Check every path through every method of UserDict from test_support import verify, verbose from UserDict import UserDict, IterableUserDict d0 = {} d1 = {"one": 1} d2 = {"one": 1, "two": 2} # Test constructors u = UserDict() u0 = UserDict(d0) u1 = UserDict(d1) u2 = IterableUserDict(d2) uu = UserDict(u) uu0 = UserDict(u0) uu1 = UserDict(u1) uu2 = UserDict(u2) # Test __repr__ verify(str(u0) == str(d0)) verify(repr(u1) == repr(d1)) verify( ` u2 ` == ` d2 `) # Test __cmp__ and __len__ all = [d0, d1, d2, u, u0, u1, u2, uu, uu0, uu1, uu2] for a in all: for b in all: verify(cmp(a, b) == cmp(len(a), len(b))) # Test __getitem__ verify(u2["one"] == 1) try: u1["two"] except KeyError: pass