39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
from .enums import REL_UNKNOWN, EQ_UNKNOWN
|
|
from ..utils.ids import new_relation_id
|
|
|
|
|
|
def make_event_relation(
|
|
relation_type=REL_UNKNOWN,
|
|
source_signal_ids=None,
|
|
target_signal_ids=None,
|
|
source_projection_ids=None,
|
|
target_projection_ids=None,
|
|
operator_name="RelationBuilder",
|
|
formula_meaning="",
|
|
parent_strategy_id=None,
|
|
local_strategy_id=None,
|
|
equality_status=EQ_UNKNOWN,
|
|
confidence=1.0,
|
|
metadata=None,
|
|
):
|
|
"""Create an EventRelation.
|
|
|
|
Relations may be one-to-one, one-to-many, many-to-one, or many-to-many.
|
|
"""
|
|
return {
|
|
"id": new_relation_id(str(relation_type).lower()),
|
|
"relation_type": relation_type,
|
|
"source_signal_ids": source_signal_ids or [],
|
|
"target_signal_ids": target_signal_ids or [],
|
|
"source_projection_ids": source_projection_ids or [],
|
|
"target_projection_ids": target_projection_ids or [],
|
|
"parent_strategy_id": parent_strategy_id,
|
|
"local_strategy_id": local_strategy_id,
|
|
"operator_name": operator_name,
|
|
"formula_meaning": formula_meaning,
|
|
"equality_status": equality_status,
|
|
"confidence": confidence,
|
|
"conflict_ids": [],
|
|
"metadata": metadata or {},
|
|
}
|