@@ -54,7 +54,9 @@ class RunTree(ls_schemas.RunBase):
54
54
id : UUID = Field (default_factory = uuid4 )
55
55
run_type : str = Field (default = "chain" )
56
56
start_time : datetime = Field (default_factory = lambda : datetime .now (timezone .utc ))
57
+ # Note: no longer set.
57
58
parent_run : Optional [RunTree ] = Field (default = None , exclude = True )
59
+ parent_dotted_order : Optional [str ] = Field (default = None , exclude = True )
58
60
child_runs : List [RunTree ] = Field (
59
61
default_factory = list ,
60
62
exclude = {"__all__" : {"parent_run_id" }},
@@ -101,13 +103,15 @@ def infer_defaults(cls, values: dict) -> dict:
101
103
values ["ls_client" ] = values .pop ("_client" )
102
104
if not values .get ("ls_client" ):
103
105
values ["ls_client" ] = None
104
- if values .get ("parent_run" ) is not None :
105
- values ["parent_run_id" ] = values ["parent_run" ].id
106
+ parent_run = values .pop ("parent_run" , None )
107
+ if parent_run is not None :
108
+ values ["parent_run_id" ] = parent_run .id
109
+ values ["parent_dotted_order" ] = parent_run .dotted_order
106
110
if "id" not in values :
107
111
values ["id" ] = uuid4 ()
108
112
if "trace_id" not in values :
109
- if " parent_run" in values :
110
- values ["trace_id" ] = values [ " parent_run" ] .trace_id
113
+ if parent_run is not None :
114
+ values ["trace_id" ] = parent_run .trace_id
111
115
else :
112
116
values ["trace_id" ] = values ["id" ]
113
117
cast (dict , values .setdefault ("extra" , {}))
@@ -130,10 +134,9 @@ def ensure_dotted_order(cls, values: dict) -> dict:
130
134
current_dotted_order = _create_current_dotted_order (
131
135
values ["start_time" ], values ["id" ]
132
136
)
133
- if values ["parent_run" ]:
134
- values ["dotted_order" ] = (
135
- values ["parent_run" ].dotted_order + "." + current_dotted_order
136
- )
137
+ parent_dotted_order = values .get ("parent_dotted_order" )
138
+ if parent_dotted_order is not None :
139
+ values ["dotted_order" ] = parent_dotted_order + "." + current_dotted_order
137
140
else :
138
141
values ["dotted_order" ] = current_dotted_order
139
142
return values
0 commit comments