in identity-resolution/notebooks/identity-graph/nepytune/usecase/user_summary.py [0:0]
def get_sibling_attrs(g, transient_id):
"""
Given transient id, get summary of information we have about it or its sibling nodes.
We gather:
* node attributes
* IP / location information
* IAB categories of visited websites
"""
return (
g.V(transient_id)
.choose(
in_("has_identity"), # check if this transient id has persistent id
in_("has_identity").
project(
"identity_group_id", "persistent_id", "attributes", "ip_location", "iab_categories"
).by(in_("member").values("igid"))
.by(values("pid"))
.by(
out("has_identity").valueMap().unfold()
.group()
.by(Column.keys)
.by(select(Column.values).unfold().dedup().fold())
)
.by(
out("has_identity")
.out("uses").dedup().valueMap().fold()
)
.by(
out("has_identity")
.out("visited")
.in_("links_to")
.values("categoryCode").dedup().fold()
)
, project(
"identity_group_id", "persistent_id", "attributes", "ip_location", "iab_categories"
).by(constant(""))
.by(constant(""))
.by(
valueMap().unfold()
.group()
.by(Column.keys)
.by(select(Column.values).unfold().dedup().fold())
)
.by(
out("uses").dedup().valueMap().fold()
)
.by(
out("visited")
.in_("links_to")
.values("categoryCode").dedup().fold()
)
)
)