PyPI / posthog / 7.75.6

posthog 7.75.6

Source
https://github.com/posthog/posthog-python
Artifact scanned
posthog-7.75.6-py3-none-any.whl (wheel · 901.1 KB · SHA-256 b95ec6a155d3…)
Compared with
posthog-7.75.5-py3-none-any.whl (0 signals introduced since)
Files
260 scanned, 5 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 7 info
Scan time
7.1 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 7 of 7 warn and critical signals; 7 demoted to info.
Disclude version
4.3.0
Scanned (UTC)
2026-10-23 16:43

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info warn → info by review frame-introspection posthog/exception_utils.py:1060:21

    `sys._getframe` — call-stack frame introspection (ast pass, confidence 0.70)

            try:
                frame = sys._getframe(depth)
                depth += 1
            except ValueError:
    likely benign LLM, confidence 0.80 Walks the call stack with sys._getframe to gather frame data for exception reporting.
    Reasoning

    sys._getframe(depth) in a loop walking up the stack is a standard way to collect frame information for exception reporting, with ValueError handled when the stack is exhausted. Introspection alone is not malicious.

  2. info warn → info by review encoding-base64 posthog/test/mcp/test_session_token.py:68:15

    base64-like blob (95 bytes, compression ratio 1.12) (raw pass, confidence 0.60)

        )
        frozen = "eyJzaWQiOiJzZXNfZml4dHVyZSIsImNuIjoiQ2xhdWRlIENvZGUiLCJjdiI6IjEuMi4zIiwicHYiOiIyMDI1LTA2LTE4In0"
    
        # Encode side: our output is byte-identical to the shared wire format.
    likely benign LLM, confidence 0.85 Test fixture containing a base64url-encoded session token for wire-format comparison.
    Reasoning

    A base64-like string in a test fixture encoding a session id, client name and version. The comment indicates it is a wire-format compatibility check. It is test data, not a hidden payload.

  3. info warn → info by review decoder-decompress-payload posthog/test/test_capture_v1.py:456:24

    file imports decoder module(s) zlib and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

            self.assertEqual(call["data"][0], 0x78)  # zlib header
            roundtripped = zlib.decompress(call["data"]).decode("utf-8")
            self.assertNotIn("api_key", json.loads(roundtripped))
    likely benign LLM, confidence 0.90 Test decompresses a captured zlib request body to assert the API key is not leaked.
    Reasoning

    zlib.decompress is applied in a unit test to the captured request body to check that the api_key is absent. This is test verification of the client's own compressed output, not a runtime-embedded payload.

  4. info warn → info by review decoder-decompress-payload posthog/test/test_metrics.py:55:23

    file imports decoder module(s) gzip and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

        body = kwargs.get("data")
        return json.loads(gzip.decompress(body).decode("utf-8"))
    likely benign LLM, confidence 0.90 Test helper gunzips and parses a mocked request body.
    Reasoning

    gzip.decompress in a test helper parses the body captured from a mocked HTTP call. This is ordinary test code verifying serialized output.

  5. info warn → info by review decoder-decompress-payload posthog/test/test_request.py:227:27

    file imports decoder module(s) gzip, zlib and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

            self.assertEqual(headers["Content-Encoding"], "gzip")
            body = json.loads(gzip.decompress(data))
            self.assertEqual(body["batch"], [])
            self.assertEqual(body["api_key"], TEST_API_KEY)
    likely benign LLM, confidence 0.90 Test gunzips a captured request body to assert its contents.
    Reasoning

    gzip.decompress of request data in a test to check the batch and api_key fields. Standard assertion of serialized payload content.

  6. info warn → info by review decoder-decompress-payload posthog/test/tracing/test_client_traces.py:60:23

    file imports decoder module(s) gzip and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

        args, kwargs = session.post.call_args
        return json.loads(gzip.decompress(kwargs["data"])), args[0], kwargs
    likely benign LLM, confidence 0.90 Test helper gunzips a mocked POST body for JSON assertions.
    Reasoning

    Test helper decompresses the mocked session.post payload to inspect the JSON. No runtime execution of the data and no external network path.

  7. info warn → info by review decoder-decompress-payload posthog/test/tracing/test_transport.py:71:27

    file imports decoder module(s) gzip and calls `.decompress()` — embedded payload decompressed at runtime (ast pass, confidence 0.75)

            assert kwargs["headers"]["Content-Type"] == "application/json"
            assert json.loads(gzip.decompress(kwargs["data"])) == PAYLOAD
    
        def test_falls_back_to_the_default_timeout(self):
    likely benign LLM, confidence 0.90 Test gunzips a mocked request body and compares it to the expected payload.
    Reasoning

    gzip.decompress of a mocked request payload compared against an expected constant in a unit test. Ordinary test verification.

Reproduce This Scan

Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.3.0
curl -fsSL -o posthog-7.75.6-py3-none-any.whl https://files.pythonhosted.org/packages/ce/05/a89280a96eec96eb8c2fbbed547f92068cd21232e8b2904e99be59e2362c/posthog-7.75.6-py3-none-any.whl
printf '%s  %s\n' b95ec6a155d38d4804ac7a3b004066a1d5faa238c5e20e1cfb42b7a446abe6a3 posthog-7.75.6-py3-none-any.whl | shasum -a 256 -c -
unzip -q posthog-7.75.6-py3-none-any.whl -d pkg
disclude scan --untrusted --severity info pkg