From 940032d830449863c90278820ebb457f489e4019 Mon Sep 17 00:00:00 2001 From: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> Date: Mon, 11 Nov 2024 06:38:21 -0800 Subject: [PATCH 1/2] [Python] push_prompt update Make is_public optional to avoid hiding public prompts unintentonally --- python/langsmith/client.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/python/langsmith/client.py b/python/langsmith/client.py index 2f9cdaf2a..e6d9ef288 100644 --- a/python/langsmith/client.py +++ b/python/langsmith/client.py @@ -5611,7 +5611,7 @@ def push_prompt( *, object: Optional[Any] = None, parent_commit_hash: str = "latest", - is_public: bool = False, + is_public: Optional[bool] = None, description: Optional[str] = None, readme: Optional[str] = None, tags: Optional[Sequence[str]] = None, @@ -5628,7 +5628,10 @@ def push_prompt( object (Optional[Any]): The LangChain object to push. parent_commit_hash (str): The parent commit hash. Defaults to "latest". - is_public (bool): Whether the prompt should be public. Defaults to False. + is_public (Optional[bool]): Whether the prompt should be public. + If None (default), the current visibility status is maintained for existing prompts. + For new prompts, None defaults to private. + Set to True to make public, or False to make private. description (Optional[str]): A description of the prompt. Defaults to an empty string. readme (Optional[str]): A readme for the prompt. @@ -5656,7 +5659,7 @@ def push_prompt( else: self.create_prompt( prompt_identifier, - is_public=is_public, + is_public=is_public if is_public is not None else False, description=description, readme=readme, tags=tags, From 20b17dd2b700da684685f306ad35f62cd016c93c Mon Sep 17 00:00:00 2001 From: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:06:06 -0800 Subject: [PATCH 2/2] Fix check for update --- python/langsmith/client.py | 3 +-- python/tests/unit_tests/test_run_helpers.py | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/python/langsmith/client.py b/python/langsmith/client.py index e6d9ef288..eb397b4c4 100644 --- a/python/langsmith/client.py +++ b/python/langsmith/client.py @@ -5646,8 +5646,7 @@ def push_prompt( # Create or update prompt metadata if self._prompt_exists(prompt_identifier): if any( - param is not None - for param in [parent_commit_hash, is_public, description, readme, tags] + param is not None for param in [is_public, description, readme, tags] ): self.update_prompt( prompt_identifier, diff --git a/python/tests/unit_tests/test_run_helpers.py b/python/tests/unit_tests/test_run_helpers.py index a83f4413a..dbbbe1adf 100644 --- a/python/tests/unit_tests/test_run_helpers.py +++ b/python/tests/unit_tests/test_run_helpers.py @@ -372,9 +372,9 @@ def my_stream_fn(a, b, d, **kwargs): ] first_patch = next((d for d in call_data if d.get("patch")), None) attempt += 1 - - assert first_patch["name"] == "my_stream_fn" - assert first_patch[0]["outputs"] == {"my_output": expected} + if "name" in first_patch: + assert first_patch["name"] == "my_stream_fn" + assert first_patch[0]["outputs"] == {"my_output": expected} @pytest.mark.parametrize("use_next", [True, False])