From 87d753f91541ea7f5c4ca30db0897fbd7070f2f0 Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Mon, 27 Jul 2026 13:48:20 +0200 Subject: [PATCH] fix: preserve zero sample rate --- langfuse/_client/client.py | 3 ++- tests/unit/test_initialization.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/langfuse/_client/client.py b/langfuse/_client/client.py index d3f699399..69eb30132 100644 --- a/langfuse/_client/client.py +++ b/langfuse/_client/client.py @@ -351,7 +351,8 @@ def __init__( or get_common_release_envs() ) self._project_id: Optional[str] = None - sample_rate = sample_rate or float(os.environ.get(LANGFUSE_SAMPLE_RATE, 1.0)) + if sample_rate is None: + sample_rate = float(os.environ.get(LANGFUSE_SAMPLE_RATE, 1.0)) if not 0.0 <= sample_rate <= 1.0: raise ValueError( f"Sample rate must be between 0.0 and 1.0, got {sample_rate}" diff --git a/tests/unit/test_initialization.py b/tests/unit/test_initialization.py index 6664d318f..7181ae45e 100644 --- a/tests/unit/test_initialization.py +++ b/tests/unit/test_initialization.py @@ -109,6 +109,22 @@ def test_default_base_url(self, cleanup_env_vars): assert client._base_url == "https://cloud.langfuse.com" + def test_zero_sample_rate_parameter_is_preserved( + self, cleanup_env_vars, monkeypatch + ): + """Test that an explicit zero sample rate overrides the environment.""" + monkeypatch.setenv("LANGFUSE_SAMPLE_RATE", "1.0") + + client = Langfuse( + public_key="test_pk_zero_sample_rate", + secret_key="test_sk", + tracing_enabled=False, + sample_rate=0.0, + ) + + assert client._resources is not None + assert client._resources.sample_rate == 0.0 + def test_base_url_env_var(self, cleanup_env_vars): """Test that LANGFUSE_BASE_URL environment variable is used correctly.""" os.environ["LANGFUSE_BASE_URL"] = "http://test-base-url.com"