@@ -73,7 +73,7 @@ def compute_excludes(self) -> List[str]:
7373 return [left ] if len (rights ) == 0 else rights
7474
7575 def compute_services (
76- self , resolver : Resolver [Any , Any ], resources : List [str ], excludes : List [str ]
76+ self , resolver : Resolver [Any , Any ], resources : List [str ], excludes : List [str ], extra : Dict [ str , Any ]
7777 ) -> Dict [str , Tuple ['ServiceMetadata' , int ]]:
7878 names : List [str ] = []
7979 for include in resources :
@@ -100,7 +100,8 @@ def compute_services(
100100 autowire = self .autowire ,
101101 autoconfigure = self .autoconfigure ,
102102 ),
103- }
103+ },
104+ extra = extra ,
104105 ),
105106 0 ,
106107 )
@@ -208,9 +209,7 @@ def _define_service_type(name: str, typ: str, cls: str) -> Tuple[Type[Any], Type
208209
209210 return typ , cls # type: ignore
210211
211- def extract_metadata (
212- self , data : Dict [str , Any ], extra : Dict [str , Any ] = {} # pylint: disable=W0613
213- ) -> ServiceMetadata :
212+ def extract_metadata (self , data : Dict [str , Any ], extra : Dict [str , Any ]) -> ServiceMetadata : # pylint: disable=W0613
214213 key = cast (str , data .get ('key' ))
215214 val = data .get ('val' )
216215 defaults = cast (ServiceDefaults , data .get ('defaults' ))
@@ -233,7 +232,7 @@ def extract_metadata(
233232 defaults = defaults ,
234233 )
235234
236- def parse_value (self , metadata : ServiceMetadata , retries : int = - 1 , extra : Dict [str , Any ] = {} ) -> Any :
235+ def parse_value (self , metadata : ServiceMetadata , retries : int , extra : Dict [str , Any ]) -> Any :
237236 _variables = cast (Dict [str , Any ], extra .get ('variables' ))
238237 _services = cast (Dict [str , Any ], extra .get ('services' ))
239238 variable_resolver = cast (Resolver , extra .get ('resolvers' , {}).get ('variable' ))
@@ -248,8 +247,10 @@ def parse_value(self, metadata: ServiceMetadata, retries: int = -1, extra: Dict[
248247 data = {
249248 'key' : '@{0}:{1}' .format (metadata .name , param .name ),
250249 'val' : metadata .arguments [param .name ],
251- }
250+ },
251+ extra = extra ,
252252 ),
253+ retries = - 1 ,
253254 extra = {'variables' : _variables },
254255 )
255256 elif param .source_kind == 'svc' :
@@ -287,11 +288,14 @@ def prepare_services_to_parse(
287288 if defaults .has_resources ():
288289 services .update (
289290 defaults .compute_services (
290- resolver = resolver , resources = defaults .compute_resources (), excludes = defaults .compute_excludes ()
291+ resolver = resolver ,
292+ resources = defaults .compute_resources (),
293+ excludes = defaults .compute_excludes (),
294+ extra = extra ,
291295 )
292296 )
293297 else :
294- metadata = resolver .extract_metadata (data = {'key' : key , 'val' : val , 'defaults' : defaults })
298+ metadata = resolver .extract_metadata (data = {'key' : key , 'val' : val , 'defaults' : defaults }, extra = extra )
295299 if is_abstract (metadata .type ):
296300 raise TypeError ('Can not instantiate abstract class <{0}>!' .format (metadata .name ))
297301 services [key ] = (metadata , 0 )
0 commit comments