From ad0f3c14c2806049fcc78b2e844f8c24ab99d9d8 Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Tue, 7 May 2024 12:16:49 -0700 Subject: [PATCH] core: allow mermaid node labels to have any characters (#21385) - it's only node ids that are limited Thank you for contributing to LangChain! - [ ] **PR title**: "package: description" - Where "package" is whichever of langchain, community, core, experimental, etc. is being modified. Use "docs: ..." for purely docs changes, "templates: ..." for template changes, "infra: ..." for CI changes. - Example: "community: add foobar LLM" - [ ] **PR message**: ***Delete this entire checklist*** and replace with - **Description:** a description of the change - **Issue:** the issue # it fixes, if applicable - **Dependencies:** any dependencies required for this change - **Twitter handle:** if your PR gets announced, and you'd like a mention, we'll gladly shout you out! - [ ] **Add tests and docs**: If you're adding a new integration, please include 1. a test for the integration, preferably unit tests that do not rely on network access, 2. an example notebook showing its use. It lives in `docs/docs/integrations` directory. - [ ] **Lint and test**: Run `make format`, `make lint` and `make test` from the root of the package(s) you've modified. See contribution guidelines for more: https://python.langchain.com/docs/contributing/ Additional guidelines: - Make sure optional dependencies are imported within a function. - Please do not add dependencies to pyproject.toml files (even optional ones) unless they are required for unit tests. - Most PRs should not touch more than one package. - Changes should be backwards compatible. - If you are adding something to community, do not re-import it in langchain. If no one reviews your PR within a few days, please @-mention one of baskaryan, efriis, eyurtsev, hwchase17. --- libs/core/langchain_core/runnables/graph_mermaid.py | 2 +- .../tests/unit_tests/runnables/__snapshots__/test_graph.ambr | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/core/langchain_core/runnables/graph_mermaid.py b/libs/core/langchain_core/runnables/graph_mermaid.py index 69a2d845624..b99c90f9a70 100644 --- a/libs/core/langchain_core/runnables/graph_mermaid.py +++ b/libs/core/langchain_core/runnables/graph_mermaid.py @@ -57,7 +57,7 @@ def draw_mermaid( # Add nodes to the graph for node in nodes.values(): node_label = format_dict.get(node, format_dict[default_class_label]).format( - _escape_node_label(node), _escape_node_label(node.split(":", 1)[-1]) + _escape_node_label(node), node.split(":", 1)[-1] ) mermaid_graph += f"\t{node_label};\n" diff --git a/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr b/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr index f715157c5b5..85d0e00cb88 100644 --- a/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr +++ b/libs/core/tests/unit_tests/runnables/__snapshots__/test_graph.ambr @@ -122,7 +122,7 @@ PromptInput[PromptInput]:::startclass; PromptTemplate([PromptTemplate]):::otherclass; FakeListLLM([FakeListLLM]):::otherclass; - Parallel_as_list_as_str_Input([Parallel_as_list_as_str_Input]):::otherclass; + Parallel_as_list_as_str_Input([ParallelInput]):::otherclass; Parallel_as_list_as_str_Output[Parallel_as_list_as_str_Output]:::endclass; CommaSeparatedListOutputParser([CommaSeparatedListOutputParser]):::otherclass; conditional_str_parser_input([conditional_str_parser_input]):::otherclass;