def get_network(self, network_type: NetworkType, edge_type: EdgeType, quote_type: QuoteType) -> DiGraph:
network_keys = self.redis_server.keys(self.get_redis_key(network_type, edge_type, quote_type) + '*')
pipe = self.redis_server.pipeline()
for network_key in network_keys:
pipe.hgetall(network_key)
res = pipe.execute()
dg = DiGraph()
for idx, val in enumerate(network_keys):
start_currency = val.split(':')[-1]
for end_currency, weight in res[idx].items():
edge_weight = weight
end_currency = end_currency
dg.add_edge(start_currency, end_currency, weight=edge_weight)
return dg
# Portfolio hash is {currency_enum: currency_qty}
# Return is ({currency_enum: (final_currency_qty, edge_val)}, total_qty)
评论列表
文章目录