From 5cda4e5b66ee0ed0cdff46e00a62b0c8ee04fd13 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Wed, 10 Jan 2024 09:21:03 -0500 Subject: [PATCH 1/2] fix: minor type hint corrections Signed-off-by: Daniel Bluhm --- aries_cloudagent/config/base.py | 2 +- aries_cloudagent/config/provider.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/aries_cloudagent/config/base.py b/aries_cloudagent/config/base.py index 10b2d82046..8494c758c1 100644 --- a/aries_cloudagent/config/base.py +++ b/aries_cloudagent/config/base.py @@ -158,5 +158,5 @@ def copy(self) -> "BaseInjector": class BaseProvider(ABC): """Base provider class.""" - def provide(self, settings: BaseSettings, injector: BaseInjector): + def provide(self, settings: BaseSettings, injector: BaseInjector) -> Any: """Provide the object instance given a config and injector.""" diff --git a/aries_cloudagent/config/provider.py b/aries_cloudagent/config/provider.py index 2e37302659..c97c300cec 100644 --- a/aries_cloudagent/config/provider.py +++ b/aries_cloudagent/config/provider.py @@ -2,7 +2,7 @@ import hashlib -from typing import Sequence, Union +from typing import Optional, Sequence, Union from weakref import ReferenceType from ..utils.classloader import DeferLoad @@ -44,7 +44,7 @@ def __init__( self, instance_cls: Union[str, type], *ctor_args, - init_method: str = None, + init_method: Optional[str] = None, **ctor_kwargs ): """Initialize the class provider.""" @@ -52,8 +52,10 @@ def __init__( self._ctor_kwargs = ctor_kwargs self._init_method = init_method if isinstance(instance_cls, str): - instance_cls = DeferLoad(instance_cls) - self._instance_cls = instance_cls + cls = DeferLoad(instance_cls) + else: + cls = instance_cls + self._instance_cls: Union[type, DeferLoad] = cls def provide(self, config: BaseSettings, injector: BaseInjector): """Provide the object instance given a config and injector.""" From f3fd68c1c47813467feb09447878a67f96de14b6 Mon Sep 17 00:00:00 2001 From: Daniel Bluhm Date: Wed, 10 Jan 2024 09:21:28 -0500 Subject: [PATCH 2/2] feat: inject profile Signed-off-by: Daniel Bluhm --- aries_cloudagent/core/profile.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/aries_cloudagent/core/profile.py b/aries_cloudagent/core/profile.py index 538f16a4d9..dc6111a647 100644 --- a/aries_cloudagent/core/profile.py +++ b/aries_cloudagent/core/profile.py @@ -4,6 +4,7 @@ from abc import ABC, abstractmethod from typing import Any, Mapping, Optional, Type +from weakref import ref from .event_bus import EventBus, Event from ..config.base import InjectionError @@ -27,14 +28,19 @@ class Profile(ABC): def __init__( self, *, - context: InjectionContext = None, - name: str = None, + context: Optional[InjectionContext] = None, + name: Optional[str] = None, created: bool = False, ): """Initialize a base profile.""" - self._context = context or InjectionContext() + context = context or InjectionContext() + scope = "profile" + if name: + scope += ":" + name + self._context = context.start_scope(scope) self._created = created self._name = name or Profile.DEFAULT_NAME + self._context.injector.bind_instance(Profile, ref(self)) @property def backend(self) -> str: