fix: handle missing 'weight' attribute in edge data to prevent KeyError
- Add validation in _find_most_related_edges_from_entities and _get_edge_data function during edge data construction - Add warning logs when 'weight' attribute is missing and set default value of 0.0
This commit is contained in:
@@ -1609,6 +1609,10 @@ async def _find_most_related_edges_from_entities(
|
|||||||
for pair in all_edges:
|
for pair in all_edges:
|
||||||
edge_props = edge_data_dict.get(pair)
|
edge_props = edge_data_dict.get(pair)
|
||||||
if edge_props is not None:
|
if edge_props is not None:
|
||||||
|
if "weight" not in edge_props:
|
||||||
|
logger.warning(f"Edge {pair} missing 'weight' attribute, using default value 0.0")
|
||||||
|
edge_props["weight"] = 0.0
|
||||||
|
|
||||||
combined = {
|
combined = {
|
||||||
"src_tgt": pair,
|
"src_tgt": pair,
|
||||||
"rank": edge_degrees_dict.get(pair, 0),
|
"rank": edge_degrees_dict.get(pair, 0),
|
||||||
@@ -1670,6 +1674,10 @@ async def _get_edge_data(
|
|||||||
pair = (k["src_id"], k["tgt_id"])
|
pair = (k["src_id"], k["tgt_id"])
|
||||||
edge_props = edge_data_dict.get(pair)
|
edge_props = edge_data_dict.get(pair)
|
||||||
if edge_props is not None:
|
if edge_props is not None:
|
||||||
|
if "weight" not in edge_props:
|
||||||
|
logger.warning(f"Edge {pair} missing 'weight' attribute, using default value 0.0")
|
||||||
|
edge_props["weight"] = 0.0
|
||||||
|
|
||||||
# Use edge degree from the batch as rank.
|
# Use edge degree from the batch as rank.
|
||||||
combined = {
|
combined = {
|
||||||
"src_id": k["src_id"],
|
"src_id": k["src_id"],
|
||||||
|
Reference in New Issue
Block a user