Skip to content

Commit b00c381

Browse files
committed
Fix pkgutil.walk_packages
1 parent 17cfc94 commit b00c381

1 file changed

Lines changed: 20 additions & 12 deletions

File tree

core_client/__init__.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,23 @@ async def proxy_method(self, *args, **kwargs):
260260
return proxy_method
261261

262262

263-
for module_info in pkgutil.walk_packages(base.__path__):
264-
module_name = f"{base.__name__}.{module_info.name}"
265-
module = importlib.import_module(module_name)
266-
for submodule_info in pkgutil.walk_packages(module.__path__):
267-
submodule_name = f"{module_name}.{submodule_info.name}"
268-
submodule = importlib.import_module(submodule_name)
269-
if hasattr(submodule, "asyncio"):
270-
AsyncClient._add_proxy_method(
271-
submodule_info.name, submodule.asyncio
272-
)
273-
if hasattr(submodule, "sync"):
274-
Client._add_proxy_method(submodule_info.name, submodule.sync)
263+
for module_info in pkgutil.walk_packages(path=base.__path__, prefix=f"{base.__name__}."):
264+
try:
265+
if not module_info.ispkg:
266+
continue
267+
268+
module = importlib.import_module(module_info.name)
269+
sub_prefix = f"{module.__name__}."
270+
for submodule_info in pkgutil.walk_packages(path=module.__path__, prefix=sub_prefix):
271+
submodule = importlib.import_module(submodule_info.name)
272+
if hasattr(submodule, "asyncio"):
273+
method_name = submodule_info.name.split('.')[-1]
274+
AsyncClient._add_proxy_method(
275+
method_name, submodule.asyncio
276+
)
277+
if hasattr(submodule, "sync"):
278+
method_name = submodule_info.name.split('.')[-1]
279+
Client._add_proxy_method(method_name, submodule.sync)
280+
281+
except Exception as e:
282+
print(f" ERROR processing {module_info.name}: {e}")

0 commit comments

Comments
 (0)