1414from typing import Any , Optional
1515
1616import grpc
17+ from packaging .version import Version
18+
1719from proxy_worker import protos
1820from proxy_worker .logging import (
1921 CONSOLE_LOG_PREFIX ,
3234 PYTHON_ENABLE_DEBUG_LOGGING ,
3335)
3436from proxy_worker .version import VERSION
35-
3637from .utils .dependency import DependencyManager
3738
3839# Library worker import reloaded in init and reload request
@@ -99,10 +100,13 @@ def get_global_current_invocation_id() -> Optional[str]:
99100
100101
101102def get_current_invocation_id () -> Optional [Any ]:
103+ global _library_worker
102104 # Check global current invocation first (most up-to-date)
103- global_invocation_id = get_global_current_invocation_id ()
104- if global_invocation_id is not None :
105- return global_invocation_id
105+ if (_library_worker
106+ and Version (_library_worker .version .VERSION ) < Version ("1.1.0b4" )):
107+ global_invocation_id = get_global_current_invocation_id ()
108+ if global_invocation_id is not None :
109+ return global_invocation_id
106110
107111 # Check asyncio task context
108112 try :
@@ -125,6 +129,17 @@ def get_current_invocation_id() -> Optional[Any]:
125129 if thread_invocation_id is not None :
126130 return thread_invocation_id
127131
132+ # Check contextvar from library worker
133+ if _library_worker :
134+ try :
135+ cv = getattr (_library_worker , 'invocation_id_cv' , None )
136+ if cv :
137+ val = cv .get ()
138+ if val is not None :
139+ return val
140+ except (AttributeError , LookupError ):
141+ pass
142+
128143 return getattr (_invocation_id_local , 'invocation_id' , None )
129144
130145
0 commit comments