本文整理汇总了Python中txtorcon.router.Router.from_consensus方法的典型用法代码示例。如果您正苦于以下问题:Python Router.from_consensus方法的具体用法?Python Router.from_consensus怎么用?Python Router.from_consensus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类txtorcon.router.Router
的用法示例。
在下文中一共展示了Router.from_consensus方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _create_router
# 需要导入模块: from txtorcon.router import Router [as 别名]
# 或者: from txtorcon.router.Router import from_consensus [as 别名]
def _create_router(self, **kw):
id_hex = hexIdFromHash(kw['idhash'])
try:
router = self.routers[id_hex]
except KeyError:
router = Router(self.protocol)
self.routers[router.id_hex] = router
router.from_consensus = True
router.update(
kw['nickname'],
kw['idhash'],
kw['orhash'],
kw['modified'],
kw['ip'],
kw['orport'],
kw['dirport'],
)
router.flags = kw.get('flags', [])
if 'bandwidth' in kw:
router.bandwidth = kw['bandwidth']
if 'ip_v6' in kw:
router.ip_v6.extend(kw['ip_v6'])
if 'guard' in router.flags:
self.guards[router.id_hex] = router
if 'authority' in router.flags:
self.authorities[router.name] = router
if router.id_hex in self.routers:
# FIXME should I do an update() on this one??
router = self.routers[router.id_hex]
else:
if router.name in self.routers:
self.routers[router.name] = None
else:
self.routers[router.name] = router
if router.name in self.routers_by_name:
self.routers_by_name[router.name].append(router)
else:
self.routers_by_name[router.name] = [router]
self.routers[router.id_hex] = router
self.routers_by_hash[router.id_hex] = router
self.all_routers.add(router)