Home / Class/ MemorySaverAssertImmutable Class — langchain Architecture

MemorySaverAssertImmutable Class — langchain Architecture

Architecture documentation for the MemorySaverAssertImmutable class in memory_assert.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  0fad622c_f86b_840d_42b5_97c5a1c330f1["MemorySaverAssertImmutable"]
  3e70e0e1_ddc3_69e9_583b_0336ed48d360["memory_assert.py"]
  0fad622c_f86b_840d_42b5_97c5a1c330f1 -->|defined in| 3e70e0e1_ddc3_69e9_583b_0336ed48d360
  b137e971_8bf6_65e1_ed9f_f0cf25f295db["__init__()"]
  0fad622c_f86b_840d_42b5_97c5a1c330f1 -->|method| b137e971_8bf6_65e1_ed9f_f0cf25f295db
  0832e1df_4f2c_8c66_7089_7e38536724bf["put()"]
  0fad622c_f86b_840d_42b5_97c5a1c330f1 -->|method| 0832e1df_4f2c_8c66_7089_7e38536724bf

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/memory_assert.py lines 20–63

class MemorySaverAssertImmutable(InMemorySaver):
    storage_for_copies: defaultdict[str, dict[str, dict[str, tuple[str, bytes]]]]

    def __init__(
        self,
        *,
        serde: SerializerProtocol | None = None,
        put_sleep: float | None = None,
    ) -> None:
        _, filename = tempfile.mkstemp()

        class TempfilePersistentDict(PersistentDict):
            def __init__(self, *args: Any, **kwargs: Any) -> None:
                super().__init__(*args, filename=filename, **kwargs)

        super().__init__(serde=serde, factory=TempfilePersistentDict)
        self.storage_for_copies = defaultdict(lambda: defaultdict(dict))
        self.put_sleep = put_sleep
        self.stack.callback(os.remove, filename)

    def put(
        self,
        config: RunnableConfig,
        checkpoint: Checkpoint,
        metadata: CheckpointMetadata,
        new_versions: ChannelVersions,
    ) -> RunnableConfig:
        if self.put_sleep:
            time.sleep(self.put_sleep)
        # assert checkpoint hasn't been modified since last written
        thread_id = config["configurable"]["thread_id"]
        checkpoint_ns = config["configurable"]["checkpoint_ns"]
        if saved := super().get(config):
            assert (
                self.serde.loads_typed(
                    self.storage_for_copies[thread_id][checkpoint_ns][saved["id"]]
                )
                == saved
            )
        self.storage_for_copies[thread_id][checkpoint_ns][checkpoint["id"]] = (
            self.serde.dumps_typed(copy_checkpoint(checkpoint))
        )
        # call super to write checkpoint
        return super().put(config, checkpoint, metadata, new_versions)

Frequently Asked Questions

What is the MemorySaverAssertImmutable class?
MemorySaverAssertImmutable is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/memory_assert.py.
Where is MemorySaverAssertImmutable defined?
MemorySaverAssertImmutable is defined in libs/langchain_v1/tests/unit_tests/agents/memory_assert.py at line 20.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free