Ask AI

Source code for dagster._core.storage.mem_io_manager

from typing import Dict, Tuple

from dagster._core.execution.context.input import InputContext
from dagster._core.execution.context.output import OutputContext
from dagster._core.storage.io_manager import IOManager, dagster_maintained_io_manager, io_manager


[docs] class InMemoryIOManager(IOManager): """I/O manager that stores and retrieves values in memory. After execution is complete, the values will be garbage-collected. Note that this means that each run will not have access to values from previous runs. """ def __init__(self): self.values: Dict[Tuple[object, ...], object] = {} def handle_output(self, context: OutputContext, obj: object): keys = tuple(context.get_identifier()) self.values[keys] = obj def load_input(self, context: InputContext) -> object: keys = tuple(context.get_identifier()) return self.values[keys]
[docs] @dagster_maintained_io_manager @io_manager(description="Built-in IO manager that stores and retrieves values in memory.") def mem_io_manager(_) -> InMemoryIOManager: """Built-in IO manager that stores and retrieves values in memory.""" return InMemoryIOManager()