@@ -32,7 +32,7 @@ def fs_exec(class_name: str, modules: List[Tuple[str, bytes]]) -> None:
3232 global _DRIVER
3333
3434 try :
35-
35+
3636 # Load all modules in order
3737 loaded_modules = {}
3838 for module_name , module_bytes in modules :
@@ -49,19 +49,19 @@ def fs_exec(class_name: str, modules: List[Tuple[str, bytes]]) -> None:
4949
5050 # Create the module
5151 module = importlib .util .module_from_spec (spec )
52-
52+
5353 # Execute the module source code
5454 code = compile (module_source , f"<{ module_name } >" , "exec" )
5555 exec (code , module .__dict__ )
56-
56+
5757 # Add the module to sys.modules
5858 sys .modules [module_name ] = module
5959 loaded_modules [module_name ] = module
60-
60+
6161 # Try to find the class in all loaded modules
6262 ProcessorClass = None
6363 found_in_module = None
64-
64+
6565 # First, try to find in the last module (most likely location)
6666 if modules :
6767 last_module_name = modules [- 1 ][0 ]
@@ -70,103 +70,103 @@ def fs_exec(class_name: str, modules: List[Tuple[str, bytes]]) -> None:
7070 if hasattr (module , class_name ):
7171 ProcessorClass = getattr (module , class_name )
7272 found_in_module = last_module_name
73-
73+
7474 # If not found, search in all modules
7575 if ProcessorClass is None :
7676 for module_name , module in loaded_modules .items ():
7777 if hasattr (module , class_name ):
7878 ProcessorClass = getattr (module , class_name )
7979 found_in_module = module_name
8080 break
81-
81+
8282 if ProcessorClass is None :
8383 module_names = [name for name , _ in modules ]
8484 raise RuntimeError (f"Class '{ class_name } ' not found in any of the loaded modules: { module_names } " )
85-
85+
8686 if not issubclass (ProcessorClass , FSProcessorDriver ):
8787 raise TypeError (f"Class '{ class_name } ' must be a subclass of FSProcessorDriver" )
8888
8989 _DRIVER = ProcessorClass ()
90-
90+
9191 except Exception as e :
9292 raise RuntimeError (f"Failed to load class '{ class_name } ' from modules: { e } " ) from e
9393
9494class WitWorld :
95-
95+
9696 def fs_init (self , config : List [Tuple [str , str ]]) -> None :
9797 global _DRIVER , _CONTEXT
98-
98+
9999 config_dict = convert_config_to_dict (config )
100-
100+
101101 _CONTEXT = WitContext (config_dict )
102-
102+
103103 if _DRIVER :
104104 try :
105105 _DRIVER .init (_CONTEXT , _CONTEXT ._CONFIG )
106106 except Exception :
107107 pass
108-
108+
109109 def fs_process (self , source_id : int , data : bytes ) -> None :
110110 global _DRIVER , _CONTEXT
111111 if not _DRIVER or not _CONTEXT :
112112 return
113-
113+
114114 try :
115115 _DRIVER .process (_CONTEXT , source_id , data )
116116 except Exception :
117117 pass
118-
118+
119119 def fs_process_watermark (self , source_id : int , watermark : int ) -> None :
120120 global _DRIVER , _CONTEXT
121121 if not _DRIVER or not _CONTEXT :
122122 return
123-
123+
124124 try :
125125 _DRIVER .process_watermark (_CONTEXT , source_id , watermark )
126126 except Exception :
127127 pass
128-
128+
129129 def fs_take_checkpoint (self , checkpoint_id : int ) -> None :
130130 global _DRIVER , _CONTEXT
131131 if not _DRIVER or not _CONTEXT :
132132 return
133-
133+
134134 try :
135135 _DRIVER .take_checkpoint (_CONTEXT , checkpoint_id )
136136 except Exception :
137137 pass
138-
138+
139139 def fs_check_heartbeat (self ) -> bool :
140140 global _DRIVER , _CONTEXT
141141 if not _DRIVER or not _CONTEXT :
142142 return False
143-
143+
144144 try :
145145 return _DRIVER .check_heartbeat (_CONTEXT )
146146 except Exception :
147147 return False
148-
148+
149149 def fs_close (self ) -> None :
150150 global _DRIVER , _CONTEXT
151-
151+
152152 if _DRIVER and _CONTEXT :
153153 try :
154154 _DRIVER .close (_CONTEXT )
155155 except Exception :
156156 pass
157-
157+
158158 _DRIVER = None
159159 _CONTEXT = None
160-
160+
161161 def fs_exec (self , class_name : str , modules : List [Tuple [str , bytes ]]) -> None :
162162 fs_exec (class_name , modules )
163-
163+
164164 def fs_custom (self , payload : bytes ) -> bytes :
165165 global _DRIVER , _CONTEXT
166-
166+
167167 if not _DRIVER or not _CONTEXT :
168168 raise RuntimeError ("Driver or Context not initialized" )
169-
169+
170170 return _DRIVER .custom (payload )
171171
172172
0 commit comments