@@ -88,14 +88,17 @@ class Registry:
8888 The package name.
8989 key : str, optional
9090 The key to use for the registry, by default "_type".
91+ api_version : str, optional
92+ The API version, by default '1.0.0'.
9193 """
9294
93- def __init__ (self , package : str , key : str = "_type" ):
95+ def __init__ (self , package : str , key : str = "_type" , api_version : str = "1.0.0" ):
9496 self .package = package
9597 self .__registered = {}
9698 self ._sources = {}
9799 self .kind = package .split ("." )[- 1 ]
98100 self .key = key
101+ self .api_version = api_version
99102 _BY_KIND [self .kind ] = self
100103
101104 @classmethod
@@ -133,6 +136,9 @@ def register(
133136 Wrapper, optional
134137 A wrapper if the factory is None, otherwise None.
135138 """
139+
140+ name = name .replace ("_" , "-" )
141+
136142 if factory is None :
137143 # This happens when the @register decorator is used
138144 return Wrapper (name , self )
@@ -177,6 +183,9 @@ def is_registered(self, name: str) -> bool:
177183 bool
178184 Whether the factory is registered.
179185 """
186+
187+ name = name .replace ("_" , "-" )
188+
180189 ok = name in self .factories
181190 if not ok :
182191 LOG .error (f"Cannot find '{ name } ' in { self .package } " )
@@ -199,6 +208,9 @@ def lookup(self, name: str, *, return_none: bool = False) -> Optional[Callable]:
199208 Callable, optional
200209 The factory if found, otherwise None.
201210 """
211+
212+ name = name .replace ("_" , "-" )
213+
202214 if return_none :
203215 return self .factories .get (name )
204216
@@ -288,6 +300,9 @@ def create(self, name: str, *args: Any, **kwargs: Any) -> Any:
288300 Any
289301 The created instance.
290302 """
303+
304+ name = name .replace ("_" , "-" )
305+
291306 factory = self .lookup (name )
292307 return factory (* args , ** kwargs )
293308
0 commit comments