From 9ea7c38da930a6924bf249e5e63cd97b1ed2f991 Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Fri, 29 Jan 2016 22:19:31 +0100
Subject: [PATCH] Fasten up a little the wot graph
---
src/sakia/core/graph/explorer_graph.py | 13 ++++++++-----
src/sakia/core/graph/wot_graph.py | 15 ++++++++++-----
2 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/src/sakia/core/graph/explorer_graph.py b/src/sakia/core/graph/explorer_graph.py
index 420b4b48..a698e464 100644
--- a/src/sakia/core/graph/explorer_graph.py
+++ b/src/sakia/core/graph/explorer_graph.py
@@ -77,14 +77,17 @@ class ExplorerGraph(BaseGraph):
logging.debug("New identity explored : {pubkey}".format(pubkey=current_identity.pubkey[:5]))
self.graph_changed.emit()
- certifier_list = await current_identity.unique_valid_certifiers_of(self.app.identities_registry,
- self.community)
+ certifier_coro = asyncio.ensure_future(current_identity.unique_valid_certifiers_of(self.app.identities_registry,
+ self.community))
+
+ certified_coro = asyncio.ensure_future(current_identity.unique_valid_certified_by(self.app.identities_registry,
+ self.community))
+
+ certifier_list, certified_list = await asyncio.gather(certifier_coro, certified_coro)
+
await self.add_certifier_list(certifier_list, current_identity, identity)
logging.debug("New identity certifiers : {pubkey}".format(pubkey=current_identity.pubkey[:5]))
self.graph_changed.emit()
-
- certified_list = await current_identity.unique_valid_certified_by(self.app.identities_registry,
- self.community)
await self.add_certified_list(certified_list, current_identity, identity)
logging.debug("New identity certified : {pubkey}".format(pubkey=current_identity.pubkey[:5]))
self.graph_changed.emit()
diff --git a/src/sakia/core/graph/wot_graph.py b/src/sakia/core/graph/wot_graph.py
index 196c0f91..b80a6979 100644
--- a/src/sakia/core/graph/wot_graph.py
+++ b/src/sakia/core/graph/wot_graph.py
@@ -1,4 +1,5 @@
import logging
+import asyncio
import networkx
from .base_graph import BaseGraph
from .constants import NodeStatus
@@ -65,14 +66,17 @@ class WoTGraph(BaseGraph):
while len(explorable) > 0:
current = explorable.pop()
- certifier_list = await current.unique_valid_certifiers_of(self.app.identities_registry,
- self.community)
+ certifier_coro = asyncio.ensure_future(current.unique_valid_certifiers_of(self.app.identities_registry,
+ self.community))
+ certified_coro = asyncio.ensure_future(current.unique_valid_certified_by(self.app.identities_registry,
+ self.community))
+
+ certifier_list, certified_list = await asyncio.gather(certifier_coro, certified_coro)
+
await self.add_certifier_list(certifier_list, current, account_identity)
if to_identity.pubkey in [data['identity'].pubkey for data in certifier_list]:
return True
- certified_list = await current.unique_valid_certified_by(self.app.identities_registry,
- self.community)
await self.add_certified_list(certified_list, current, account_identity)
if to_identity.pubkey in [data['identity'].pubkey for data in certified_list]:
return True
@@ -81,4 +85,5 @@ class WoTGraph(BaseGraph):
for entry in certifier_list + certified_list:
if entry['identity'] not in explored + explorable:
explorable.append(entry['identity'])
- return False
\ No newline at end of file
+
+ return False
--
GitLab