debugbundle-python 0.1.9__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {debugbundle_python-0.1.9/src/debugbundle_python.egg-info → debugbundle_python-1.0.0}/PKG-INFO +2 -2
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/pyproject.toml +2 -2
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/core.py +1 -1
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0/src/debugbundle_python.egg-info}/PKG-INFO +2 -2
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle_python.egg-info/SOURCES.txt +1 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_repository_metadata.py +1 -1
- debugbundle_python-1.0.0/tests/test_smoke_script.py +60 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/LICENSE +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/README.md +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/setup.cfg +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/__init__.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/config.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/__init__.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/common.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/django.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/fastapi.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/flask.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/relay_django.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/relay_fastapi.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/relay_flask.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/logger_integrations.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/py.typed +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/redaction.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/relay.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/relay_delivery.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/suppression.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/transport.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/trigger_token.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle_python.egg-info/dependency_links.txt +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle_python.egg-info/requires.txt +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle_python.egg-info/top_level.txt +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_contracts.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_framework_integrations.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_hooks.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_http_integration.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_optional_imports.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_relay.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_relay_delivery.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_remote_config.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_schema_validation.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_sdk.py +0 -0
- {debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/tests/test_trigger_token.py +0 -0
{debugbundle_python-0.1.9/src/debugbundle_python.egg-info → debugbundle_python-1.0.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: debugbundle-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: DebugBundle SDK for Python
|
|
5
5
|
Author: DebugBundle
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://debugbundle.com/docs/sdks/python
|
|
|
8
8
|
Project-URL: Repository, https://github.com/debugbundle/debugbundle-python
|
|
9
9
|
Project-URL: Issues, https://github.com/debugbundle/debugbundle-python/issues
|
|
10
10
|
Keywords: debugbundle,debugging,ai-agent,error-tracking
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Framework :: Django
|
|
13
13
|
Classifier: Framework :: FastAPI
|
|
14
14
|
Classifier: Framework :: Flask
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "debugbundle-python"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "1.0.0"
|
|
8
8
|
description = "DebugBundle SDK for Python"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -12,7 +12,7 @@ license = "AGPL-3.0-only"
|
|
|
12
12
|
authors = [{ name = "DebugBundle" }]
|
|
13
13
|
keywords = ["debugbundle", "debugging", "ai-agent", "error-tracking"]
|
|
14
14
|
classifiers = [
|
|
15
|
-
"Development Status ::
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
16
|
"Framework :: Django",
|
|
17
17
|
"Framework :: FastAPI",
|
|
18
18
|
"Framework :: Flask",
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0/src/debugbundle_python.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: debugbundle-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: DebugBundle SDK for Python
|
|
5
5
|
Author: DebugBundle
|
|
6
6
|
License-Expression: AGPL-3.0-only
|
|
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://debugbundle.com/docs/sdks/python
|
|
|
8
8
|
Project-URL: Repository, https://github.com/debugbundle/debugbundle-python
|
|
9
9
|
Project-URL: Issues, https://github.com/debugbundle/debugbundle-python/issues
|
|
10
10
|
Keywords: debugbundle,debugging,ai-agent,error-tracking
|
|
11
|
-
Classifier: Development Status ::
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
12
|
Classifier: Framework :: Django
|
|
13
13
|
Classifier: Framework :: FastAPI
|
|
14
14
|
Classifier: Framework :: Flask
|
|
@@ -30,7 +30,7 @@ def test_standalone_changelog_and_security_policy_are_launch_ready() -> None:
|
|
|
30
30
|
security = (REPO_ROOT / "SECURITY.md").read_text(encoding="utf-8")
|
|
31
31
|
|
|
32
32
|
assert "## [Unreleased]" in changelog
|
|
33
|
-
assert "## [
|
|
33
|
+
assert "## [1.0.0] - 2026-05-31" in changelog
|
|
34
34
|
assert "https://github.com/debugbundle/debugbundle-python/security/advisories/new" in security
|
|
35
35
|
|
|
36
36
|
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import importlib.util
|
|
4
|
+
import subprocess
|
|
5
|
+
import sys
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
9
|
+
SMOKE_SCRIPT = REPO_ROOT / "smoke" / "run_app_driven_smoke.py"
|
|
10
|
+
SPEC = importlib.util.spec_from_file_location("debugbundle_python_smoke", SMOKE_SCRIPT)
|
|
11
|
+
assert SPEC is not None and SPEC.loader is not None
|
|
12
|
+
SMOKE = importlib.util.module_from_spec(SPEC)
|
|
13
|
+
sys.modules.setdefault("debugbundle_python_smoke", SMOKE)
|
|
14
|
+
SPEC.loader.exec_module(SMOKE)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def test_install_with_retry_retries_until_success(monkeypatch) -> None:
|
|
18
|
+
calls: list[list[str]] = []
|
|
19
|
+
sleeps: list[int] = []
|
|
20
|
+
outcomes = [
|
|
21
|
+
subprocess.CalledProcessError(returncode=1, cmd=["pip", "install"]),
|
|
22
|
+
None,
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
def fake_run_subprocess(command: list[str]) -> None:
|
|
26
|
+
calls.append(command)
|
|
27
|
+
outcome = outcomes.pop(0)
|
|
28
|
+
if outcome is not None:
|
|
29
|
+
raise outcome
|
|
30
|
+
|
|
31
|
+
monkeypatch.setattr(SMOKE, "_run_subprocess", fake_run_subprocess)
|
|
32
|
+
monkeypatch.setattr(SMOKE.time, "sleep", sleeps.append)
|
|
33
|
+
|
|
34
|
+
SMOKE._install_with_retry(
|
|
35
|
+
["python", "-m", "pip", "install", "debugbundle-python==1.0.0"],
|
|
36
|
+
retries=3,
|
|
37
|
+
retry_delay_seconds=7,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
assert len(calls) == 2
|
|
41
|
+
assert sleeps == [7]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_install_with_retry_raises_after_final_attempt(monkeypatch) -> None:
|
|
45
|
+
def fake_run_subprocess(command: list[str]) -> None:
|
|
46
|
+
raise subprocess.CalledProcessError(returncode=1, cmd=command)
|
|
47
|
+
|
|
48
|
+
monkeypatch.setattr(SMOKE, "_run_subprocess", fake_run_subprocess)
|
|
49
|
+
monkeypatch.setattr(SMOKE.time, "sleep", lambda seconds: None)
|
|
50
|
+
|
|
51
|
+
try:
|
|
52
|
+
SMOKE._install_with_retry(
|
|
53
|
+
["python", "-m", "pip", "install", "debugbundle-python==1.0.0"],
|
|
54
|
+
retries=2,
|
|
55
|
+
retry_delay_seconds=1,
|
|
56
|
+
)
|
|
57
|
+
except subprocess.CalledProcessError as error:
|
|
58
|
+
assert error.returncode == 1
|
|
59
|
+
else:
|
|
60
|
+
raise AssertionError("Expected install retry helper to re-raise after the final attempt.")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/__init__.py
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/common.py
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/django.py
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/fastapi.py
RENAMED
|
File without changes
|
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/relay_django.py
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/relay_fastapi.py
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/integrations/relay_flask.py
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle/logger_integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{debugbundle_python-0.1.9 → debugbundle_python-1.0.0}/src/debugbundle_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|