"""
@generated by mypy-protobuf. Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import snapchat.research.gbml.graph_schema_pb2
import sys
if sys.version_info >= (3, 8):
import typing as typing_extensions
else:
import typing_extensions
[docs]
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
[docs]
class Label(google.protobuf.message.Message):
[docs]
DESCRIPTOR: google.protobuf.descriptor.Descriptor
[docs]
LABEL_TYPE_FIELD_NUMBER: builtins.int
[docs]
LABEL_FIELD_NUMBER: builtins.int
[docs]
label_type: builtins.str
def __init__(
self,
*,
label_type: builtins.str = ...,
label: builtins.int = ...,
) -> None: ...
[docs]
def ClearField(self, field_name: typing_extensions.Literal["label", b"label", "label_type", b"label_type"]) -> None: ...
[docs]
class RootedNodeNeighborhood(google.protobuf.message.Message):
"""Store each node and related neighborhood subgraph
can be used for storing random negative samples
"""
[docs]
DESCRIPTOR: google.protobuf.descriptor.Descriptor
[docs]
ROOT_NODE_FIELD_NUMBER: builtins.int
[docs]
NEIGHBORHOOD_FIELD_NUMBER: builtins.int
@property
[docs]
def root_node(self) -> snapchat.research.gbml.graph_schema_pb2.Node:
"""The main node for the sample"""
@property
[docs]
def neighborhood(self) -> snapchat.research.gbml.graph_schema_pb2.Graph:
"""k-hop neighborhood of the root_node"""
def __init__(
self,
*,
root_node: snapchat.research.gbml.graph_schema_pb2.Node | None = ...,
neighborhood: snapchat.research.gbml.graph_schema_pb2.Graph | None = ...,
) -> None: ...
[docs]
def HasField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_node", b"root_node"]) -> builtins.bool: ...
[docs]
def ClearField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_node", b"root_node"]) -> None: ...
[docs]
global___RootedNodeNeighborhood = RootedNodeNeighborhood
[docs]
class SupervisedNodeClassificationSample(google.protobuf.message.Message):
[docs]
DESCRIPTOR: google.protobuf.descriptor.Descriptor
[docs]
ROOT_NODE_FIELD_NUMBER: builtins.int
[docs]
NEIGHBORHOOD_FIELD_NUMBER: builtins.int
[docs]
ROOT_NODE_LABELS_FIELD_NUMBER: builtins.int
@property
[docs]
def root_node(self) -> snapchat.research.gbml.graph_schema_pb2.Node:
"""The main node for the sample"""
@property
[docs]
def neighborhood(self) -> snapchat.research.gbml.graph_schema_pb2.Graph:
"""k-hop neighborhood of the root_node"""
@property
[docs]
def root_node_labels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Label]: ...
def __init__(
self,
*,
root_node: snapchat.research.gbml.graph_schema_pb2.Node | None = ...,
neighborhood: snapchat.research.gbml.graph_schema_pb2.Graph | None = ...,
root_node_labels: collections.abc.Iterable[global___Label] | None = ...,
) -> None: ...
[docs]
def HasField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_node", b"root_node"]) -> builtins.bool: ...
[docs]
def ClearField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_node", b"root_node", "root_node_labels", b"root_node_labels"]) -> None: ...
[docs]
global___SupervisedNodeClassificationSample = SupervisedNodeClassificationSample
[docs]
class NodeAnchorBasedLinkPredictionSample(google.protobuf.message.Message):
[docs]
DESCRIPTOR: google.protobuf.descriptor.Descriptor
[docs]
ROOT_NODE_FIELD_NUMBER: builtins.int
[docs]
HARD_NEG_EDGES_FIELD_NUMBER: builtins.int
[docs]
POS_EDGES_FIELD_NUMBER: builtins.int
[docs]
NEG_EDGES_FIELD_NUMBER: builtins.int
[docs]
NEIGHBORHOOD_FIELD_NUMBER: builtins.int
@property
[docs]
def root_node(self) -> snapchat.research.gbml.graph_schema_pb2.Node:
"""The main node for the sample"""
@property
[docs]
def hard_neg_edges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[snapchat.research.gbml.graph_schema_pb2.Edge]:
"""Hard negative edges: destination node is a negative example to the root_node
Can be "fake" edges i.e. destination is a non neighbor of the root_node or user-defined
"""
@property
[docs]
def pos_edges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[snapchat.research.gbml.graph_schema_pb2.Edge]:
"""Positive edges: destination node is a positive example to the root_node
Can be "real" edges i.e. destination is a neighbor of the root_node or user-defined
"""
@property
[docs]
def neg_edges(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[snapchat.research.gbml.graph_schema_pb2.Edge]:
"""(DEPRECATED) Random negatives edges, now provided by batch-shared random negatives
in RootedNodeNeighborhood and in-batch negatives
"""
@property
[docs]
def neighborhood(self) -> snapchat.research.gbml.graph_schema_pb2.Graph:
"""The khop neighborhoods of root/pos/neg nodes are merged in proto definition,
therefore in training additional fast tree search needs to be done to retrieve
the relevant k hop neighborhoods for each node
"""
def __init__(
self,
*,
root_node: snapchat.research.gbml.graph_schema_pb2.Node | None = ...,
hard_neg_edges: collections.abc.Iterable[snapchat.research.gbml.graph_schema_pb2.Edge] | None = ...,
pos_edges: collections.abc.Iterable[snapchat.research.gbml.graph_schema_pb2.Edge] | None = ...,
neg_edges: collections.abc.Iterable[snapchat.research.gbml.graph_schema_pb2.Edge] | None = ...,
neighborhood: snapchat.research.gbml.graph_schema_pb2.Graph | None = ...,
) -> None: ...
[docs]
def HasField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_node", b"root_node"]) -> builtins.bool: ...
[docs]
def ClearField(self, field_name: typing_extensions.Literal["hard_neg_edges", b"hard_neg_edges", "neg_edges", b"neg_edges", "neighborhood", b"neighborhood", "pos_edges", b"pos_edges", "root_node", b"root_node"]) -> None: ...
[docs]
global___NodeAnchorBasedLinkPredictionSample = NodeAnchorBasedLinkPredictionSample
[docs]
class SupervisedLinkBasedTaskSample(google.protobuf.message.Message):
"""The SupervisedLinkBasedTaskSample can be used for both
Link-classification-based link prediction tasks & Edge level prediction tasks
"""
[docs]
DESCRIPTOR: google.protobuf.descriptor.Descriptor
[docs]
ROOT_EDGE_FIELD_NUMBER: builtins.int
[docs]
NEIGHBORHOOD_FIELD_NUMBER: builtins.int
[docs]
ROOT_EDGE_LABELS_FIELD_NUMBER: builtins.int
@property
[docs]
def root_edge(self) -> snapchat.research.gbml.graph_schema_pb2.Edge:
"""The main edge for the sample"""
@property
[docs]
def neighborhood(self) -> snapchat.research.gbml.graph_schema_pb2.Graph:
"""Contains the k hop neighborhood for both nodes composing the root_edge"""
@property
[docs]
def root_edge_labels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Label]:
"""Allow multiple edge labels with different type ex. Snap view as target label, and Story view as target label"""
def __init__(
self,
*,
root_edge: snapchat.research.gbml.graph_schema_pb2.Edge | None = ...,
neighborhood: snapchat.research.gbml.graph_schema_pb2.Graph | None = ...,
root_edge_labels: collections.abc.Iterable[global___Label] | None = ...,
) -> None: ...
[docs]
def HasField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_edge", b"root_edge"]) -> builtins.bool: ...
[docs]
def ClearField(self, field_name: typing_extensions.Literal["neighborhood", b"neighborhood", "root_edge", b"root_edge", "root_edge_labels", b"root_edge_labels"]) -> None: ...
[docs]
global___SupervisedLinkBasedTaskSample = SupervisedLinkBasedTaskSample