Skip to content

Commit 5d1988f

Browse files
authored
Merge pull request openwallet-foundation#1812 from Indicio-tech/feature/allow-external-outbound-methods
Fix external Outbound Transport loading code
2 parents cdea418 + 04573ea commit 5d1988f

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

aries_cloudagent/transport/outbound/manager.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ async def setup(self):
100100
for outbound_transport in outbound_transports:
101101
self.register(outbound_transport)
102102

103-
def register(self, module: str) -> str:
103+
def register(self, module_name: str) -> str:
104104
"""
105105
Register a new outbound transport by module path.
106106
107107
Args:
108-
module: Module name to register
108+
module_name: Module name to register
109109
110110
Raises:
111111
OutboundTransportRegistrationError: If the imported class cannot
@@ -117,13 +117,19 @@ def register(self, module: str) -> str:
117117
118118
"""
119119
try:
120+
if "." in module_name:
121+
package, module = module_name.split(".", 1)
122+
else:
123+
package = MODULE_BASE_PATH
124+
module = module_name
125+
120126
imported_class = ClassLoader.load_subclass_of(
121-
BaseOutboundTransport, module, MODULE_BASE_PATH
127+
BaseOutboundTransport, module, package
122128
)
123-
except (ModuleLoadError, ClassNotFoundError):
129+
except (ModuleLoadError, ClassNotFoundError) as e:
124130
raise OutboundTransportRegistrationError(
125131
f"Outbound transport module {module} could not be resolved."
126-
)
132+
) from e
127133

128134
return self.register_class(imported_class)
129135

0 commit comments

Comments
 (0)