in identity-resolution/notebooks/identity-graph/nepytune/usecase/undecided_users.py [0:0]
def _build_networkx_graph(g, website_url, thank_you_page_url, since):
graph = nx.Graph()
graph.add_node(website_url, label="website", url=website_url)
graph.add_node(thank_you_page_url, label="thankYouPage", url=thank_you_page_url)
for data in _get_subgraph(g, website_url, thank_you_page_url, since).toList():
graph.add_node(data["persistent_id"], label="persistentId", pid=data["persistent_id"],
visited_events=Counter())
for transient_id in data["transient_ids"]:
graph.add_node(transient_id, label="transientId", uid=transient_id, visited_events=Counter())
graph.add_edge(transient_id, data["persistent_id"], label="has_identity")
for event in data["visited_events"]:
edge = event["visited_url"], event["uid"]
try:
graph.edges[edge]["ts"].append(event["ts"])
except:
graph.add_edge(*edge, label="visited", ts=[event["ts"]])
for node_map in graph.nodes[data["persistent_id"]], graph.nodes[event["uid"]]:
if event["visited_url"] == website_url:
node_map["visited_events"][f"visited website < {since}"] += (event["ts"] < since)
node_map["visited_events"][f"visited website >= {since}"] += (event["ts"] >= since)
else:
node_map["visited_events"][f"visited thank you page < {since}"] += (event["ts"] < since)
node_map["visited_events"][f"visited thank you page >= {since}"] += (event["ts"] >= since)
return graph