in libraries/botbuilder-dialogs/botbuilder/dialogs/memory/scopes/dialog_class_memory_scope.py [0:0]
def get_memory(self, dialog_context: "DialogContext") -> object:
if not dialog_context:
raise TypeError(f"Expecting: DialogContext, but received None")
# if active dialog is a container dialog then "dialogclass" binds to it.
if dialog_context.active_dialog:
dialog = dialog_context.find_dialog_sync(dialog_context.active_dialog.id)
if isinstance(dialog, self._dialog_container_cls):
return deepcopy(dialog)
# Otherwise we always bind to parent, or if there is no parent the active dialog
parent_id = (
dialog_context.parent.active_dialog.id
if dialog_context.parent and dialog_context.parent.active_dialog
else None
)
active_id = (
dialog_context.active_dialog.id if dialog_context.active_dialog else None
)
return deepcopy(dialog_context.find_dialog_sync(parent_id or active_id))