@@ -322,20 +322,39 @@ def _raw_execute(
322322 log_context = LogContext ()
323323 log_context .set_client_name (self .client_name )
324324 with _execute_lock :
325- res = self ._gql_client .execute (
326- document = document ,
327- variable_values = variables ,
328- extra_args = {
329- "headers" : {
330- ** (self ._gql_transport .headers or {}),
331- ** log_context ,
332- }
333- },
334- ** kwargs ,
335- )
336- transport = self ._gql_client .transport
337- if transport :
338- headers = transport .response_headers # pyright: ignore[reportAttributeAccessIssue]
339- returned_complexity = int (headers .get ("x-complexity" , 0 )) if headers else 0
340- self .complexity_consumed += returned_complexity
341- return res
325+ with self ._gql_client as session :
326+ transport = session .transport
327+
328+ res = transport .execute (
329+ document = document ,
330+ variable_values = variables ,
331+ extra_args = {
332+ "headers" : {
333+ ** (self ._gql_transport .headers or {}),
334+ ** log_context ,
335+ }
336+ },
337+ ** kwargs ,
338+ )
339+
340+ deprecated = (
341+ res .extensions .get ("deprecatedFieldsUsed" , [])
342+ if hasattr (res , "extensions" )
343+ else []
344+ )
345+
346+ if deprecated :
347+ for item in deprecated :
348+ path = item .get ("path" )
349+ reason = item .get ("reason" )
350+ logging .warning (
351+ f"[Kili SDK] Deprecated GraphQL field used: { path } – { reason } "
352+ )
353+
354+ headers = getattr (transport , "response_headers" , None )
355+ if headers :
356+ returned_complexity = int (headers .get ("x-complexity" , 0 ))
357+ self .complexity_consumed += returned_complexity
358+
359+ return res .data
360+
0 commit comments