watchdock-errors 0.1.2__tar.gz → 0.2.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.
- watchdock_errors-0.2.0/.github/workflows/ci.yml +56 -0
- watchdock_errors-0.2.0/.github/workflows/release.yml +41 -0
- watchdock_errors-0.2.0/.gitignore +33 -0
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/PKG-INFO +105 -104
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/README.md +85 -85
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/pyproject.toml +43 -40
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/setup.cfg +4 -4
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/__init__.py +132 -127
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/client.py +93 -93
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/config.py +34 -25
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/event.py +81 -81
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/integrations/django.py +85 -85
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/integrations/fastapi.py +68 -68
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/utils.py +33 -33
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors.egg-info/PKG-INFO +105 -104
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors.egg-info/SOURCES.txt +3 -0
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors.egg-info/requires.txt +1 -0
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/tests/test_client.py +45 -45
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/tests/test_event.py +78 -78
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors/integrations/__init__.py +0 -0
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors.egg-info/dependency_links.txt +0 -0
- {watchdock_errors-0.1.2 → watchdock_errors-0.2.0}/src/watchdock_errors.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
test:
|
|
11
|
+
name: Test
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Install Python
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python-version }}
|
|
24
|
+
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: pip install -e ".[dev]"
|
|
27
|
+
|
|
28
|
+
- name: Run ruff
|
|
29
|
+
run: ruff check .
|
|
30
|
+
|
|
31
|
+
- name: Run tests
|
|
32
|
+
run: pytest --cov=watchdock_errors
|
|
33
|
+
|
|
34
|
+
build:
|
|
35
|
+
name: Build
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
needs: test
|
|
38
|
+
|
|
39
|
+
steps:
|
|
40
|
+
- uses: actions/checkout@v4
|
|
41
|
+
|
|
42
|
+
- name: Install Python
|
|
43
|
+
uses: actions/setup-python@v5
|
|
44
|
+
with:
|
|
45
|
+
python-version: "3.12"
|
|
46
|
+
|
|
47
|
+
- name: Install build
|
|
48
|
+
run: pip install build
|
|
49
|
+
|
|
50
|
+
- name: Build package
|
|
51
|
+
run: python -m build
|
|
52
|
+
|
|
53
|
+
- name: Check package
|
|
54
|
+
run: |
|
|
55
|
+
python -m pip install dist/*.whl --target /tmp/check-install
|
|
56
|
+
python -c "import watchdock_errors; print(watchdock_errors.__version__)"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
release:
|
|
10
|
+
name: Publish to PyPI
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
contents: write
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
with:
|
|
18
|
+
fetch-depth: 0
|
|
19
|
+
|
|
20
|
+
- name: Install Python
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: "3.12"
|
|
24
|
+
|
|
25
|
+
- name: Install build
|
|
26
|
+
run: pip install build
|
|
27
|
+
|
|
28
|
+
- name: Build package
|
|
29
|
+
run: python -m build
|
|
30
|
+
|
|
31
|
+
- name: Publish to PyPI
|
|
32
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
33
|
+
with:
|
|
34
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
35
|
+
|
|
36
|
+
- name: Create GitHub Release
|
|
37
|
+
uses: softprops/action-gh-release@v1
|
|
38
|
+
with:
|
|
39
|
+
files: dist/*
|
|
40
|
+
env:
|
|
41
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# Distribution / packaging
|
|
7
|
+
build/
|
|
8
|
+
dist/
|
|
9
|
+
*.egg-info/
|
|
10
|
+
|
|
11
|
+
# Virtual environments
|
|
12
|
+
.env
|
|
13
|
+
.venv
|
|
14
|
+
env/
|
|
15
|
+
venv/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# IDE
|
|
19
|
+
.idea/
|
|
20
|
+
.vscode/
|
|
21
|
+
*.swp
|
|
22
|
+
*.swo
|
|
23
|
+
|
|
24
|
+
# Testing
|
|
25
|
+
.pytest_cache/
|
|
26
|
+
.coverage
|
|
27
|
+
htmlcov/
|
|
28
|
+
|
|
29
|
+
# mypy
|
|
30
|
+
.mypy_cache/
|
|
31
|
+
|
|
32
|
+
# ruff
|
|
33
|
+
.ruff_cache/
|
|
@@ -1,104 +1,105 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: watchdock-errors
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Application error tracking SDK for the Watchdock platform
|
|
5
|
-
License: MIT
|
|
6
|
-
Keywords: error-tracking,observability,watchdock
|
|
7
|
-
Requires-Python: >=3.10
|
|
8
|
-
Description-Content-Type: text/markdown
|
|
9
|
-
Requires-Dist: requests>=2.28
|
|
10
|
-
Provides-Extra: django
|
|
11
|
-
Requires-Dist: django>=3.2; extra == "django"
|
|
12
|
-
Provides-Extra: fastapi
|
|
13
|
-
Requires-Dist: fastapi>=0.95; extra == "fastapi"
|
|
14
|
-
Requires-Dist: starlette>=0.27; extra == "fastapi"
|
|
15
|
-
Provides-Extra: dev
|
|
16
|
-
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
17
|
-
Requires-Dist: pytest-mock>=3.0; extra == "dev"
|
|
18
|
-
Requires-Dist: responses>=0.23; extra == "dev"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
pip install "watchdock-errors[
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: watchdock-errors
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Application error tracking SDK for the Watchdock platform
|
|
5
|
+
License: MIT
|
|
6
|
+
Keywords: error-tracking,observability,watchdock
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: requests>=2.28
|
|
10
|
+
Provides-Extra: django
|
|
11
|
+
Requires-Dist: django>=3.2; extra == "django"
|
|
12
|
+
Provides-Extra: fastapi
|
|
13
|
+
Requires-Dist: fastapi>=0.95; extra == "fastapi"
|
|
14
|
+
Requires-Dist: starlette>=0.27; extra == "fastapi"
|
|
15
|
+
Provides-Extra: dev
|
|
16
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
17
|
+
Requires-Dist: pytest-mock>=3.0; extra == "dev"
|
|
18
|
+
Requires-Dist: responses>=0.23; extra == "dev"
|
|
19
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
20
|
+
|
|
21
|
+
# watchdock-errors
|
|
22
|
+
|
|
23
|
+
Python SDK for application-level error tracking on the [Watchdock](https://watchdock.cc) platform.
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip install watchdock-errors
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
With framework extras:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pip install "watchdock-errors[django]"
|
|
35
|
+
pip install "watchdock-errors[fastapi]"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Quickstart
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
import watchdock_errors
|
|
42
|
+
|
|
43
|
+
watchdock_errors.init(
|
|
44
|
+
api_key="wdk_xxx",
|
|
45
|
+
environment="production",
|
|
46
|
+
release="1.0.0",
|
|
47
|
+
)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Django
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
# settings.py
|
|
54
|
+
MIDDLEWARE = [
|
|
55
|
+
...
|
|
56
|
+
"watchdock_errors.integrations.django.DjangoErrorMiddleware",
|
|
57
|
+
]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Or via `INSTALLED_APPS` for automatic registration:
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
INSTALLED_APPS = [
|
|
64
|
+
...
|
|
65
|
+
"watchdock_errors.integrations.django",
|
|
66
|
+
]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### FastAPI
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from watchdock_errors.integrations.fastapi import setup_watchdock
|
|
73
|
+
|
|
74
|
+
setup_watchdock(app)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Manual capture
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
# Capture the current exception
|
|
81
|
+
try:
|
|
82
|
+
process_payment()
|
|
83
|
+
except Exception:
|
|
84
|
+
watchdock_errors.capture_exception()
|
|
85
|
+
|
|
86
|
+
# Capture a specific exception
|
|
87
|
+
watchdock_errors.capture_exception(exc)
|
|
88
|
+
|
|
89
|
+
# Capture a message
|
|
90
|
+
watchdock_errors.capture_message("Stripe webhook signature invalid")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## PII scrubbing
|
|
94
|
+
|
|
95
|
+
By default, `Authorization`, `Cookie`, and `X-Api-Key` headers are stripped and the request body is not sent. Set `send_pii=True` to disable scrubbing.
|
|
96
|
+
|
|
97
|
+
Use the `before_send` hook for custom scrubbing:
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
def scrub(event):
|
|
101
|
+
event["request"]["headers"].pop("X-Internal-Token", None)
|
|
102
|
+
return event # return None to drop the event entirely
|
|
103
|
+
|
|
104
|
+
watchdock_errors.init(api_key="wdk_xxx", before_send=scrub)
|
|
105
|
+
```
|
|
@@ -1,85 +1,85 @@
|
|
|
1
|
-
# watchdock-errors
|
|
2
|
-
|
|
3
|
-
Python SDK for application-level error tracking on the [Watchdock](https://watchdock.cc) platform.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
pip install watchdock-errors
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
With framework extras:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
pip install "watchdock-errors[django]"
|
|
15
|
-
pip install "watchdock-errors[fastapi]"
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Quickstart
|
|
19
|
-
|
|
20
|
-
```python
|
|
21
|
-
import watchdock_errors
|
|
22
|
-
|
|
23
|
-
watchdock_errors.init(
|
|
24
|
-
api_key="wdk_xxx",
|
|
25
|
-
environment="production",
|
|
26
|
-
release="1.0.0",
|
|
27
|
-
)
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Django
|
|
31
|
-
|
|
32
|
-
```python
|
|
33
|
-
# settings.py
|
|
34
|
-
MIDDLEWARE = [
|
|
35
|
-
...
|
|
36
|
-
"watchdock_errors.integrations.django.DjangoErrorMiddleware",
|
|
37
|
-
]
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Or via `INSTALLED_APPS` for automatic registration:
|
|
41
|
-
|
|
42
|
-
```python
|
|
43
|
-
INSTALLED_APPS = [
|
|
44
|
-
...
|
|
45
|
-
"watchdock_errors.integrations.django",
|
|
46
|
-
]
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### FastAPI
|
|
50
|
-
|
|
51
|
-
```python
|
|
52
|
-
from watchdock_errors.integrations.fastapi import setup_watchdock
|
|
53
|
-
|
|
54
|
-
setup_watchdock(app)
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Manual capture
|
|
58
|
-
|
|
59
|
-
```python
|
|
60
|
-
# Capture the current exception
|
|
61
|
-
try:
|
|
62
|
-
process_payment()
|
|
63
|
-
except Exception:
|
|
64
|
-
watchdock_errors.capture_exception()
|
|
65
|
-
|
|
66
|
-
# Capture a specific exception
|
|
67
|
-
watchdock_errors.capture_exception(exc)
|
|
68
|
-
|
|
69
|
-
# Capture a message
|
|
70
|
-
watchdock_errors.capture_message("Stripe webhook signature invalid")
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## PII scrubbing
|
|
74
|
-
|
|
75
|
-
By default, `Authorization`, `Cookie`, and `X-Api-Key` headers are stripped and the request body is not sent. Set `send_pii=True` to disable scrubbing.
|
|
76
|
-
|
|
77
|
-
Use the `before_send` hook for custom scrubbing:
|
|
78
|
-
|
|
79
|
-
```python
|
|
80
|
-
def scrub(event):
|
|
81
|
-
event["request"]["headers"].pop("X-Internal-Token", None)
|
|
82
|
-
return event # return None to drop the event entirely
|
|
83
|
-
|
|
84
|
-
watchdock_errors.init(api_key="wdk_xxx", before_send=scrub)
|
|
85
|
-
```
|
|
1
|
+
# watchdock-errors
|
|
2
|
+
|
|
3
|
+
Python SDK for application-level error tracking on the [Watchdock](https://watchdock.cc) platform.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install watchdock-errors
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
With framework extras:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
pip install "watchdock-errors[django]"
|
|
15
|
+
pip install "watchdock-errors[fastapi]"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Quickstart
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
import watchdock_errors
|
|
22
|
+
|
|
23
|
+
watchdock_errors.init(
|
|
24
|
+
api_key="wdk_xxx",
|
|
25
|
+
environment="production",
|
|
26
|
+
release="1.0.0",
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Django
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
# settings.py
|
|
34
|
+
MIDDLEWARE = [
|
|
35
|
+
...
|
|
36
|
+
"watchdock_errors.integrations.django.DjangoErrorMiddleware",
|
|
37
|
+
]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Or via `INSTALLED_APPS` for automatic registration:
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
INSTALLED_APPS = [
|
|
44
|
+
...
|
|
45
|
+
"watchdock_errors.integrations.django",
|
|
46
|
+
]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### FastAPI
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from watchdock_errors.integrations.fastapi import setup_watchdock
|
|
53
|
+
|
|
54
|
+
setup_watchdock(app)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Manual capture
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
# Capture the current exception
|
|
61
|
+
try:
|
|
62
|
+
process_payment()
|
|
63
|
+
except Exception:
|
|
64
|
+
watchdock_errors.capture_exception()
|
|
65
|
+
|
|
66
|
+
# Capture a specific exception
|
|
67
|
+
watchdock_errors.capture_exception(exc)
|
|
68
|
+
|
|
69
|
+
# Capture a message
|
|
70
|
+
watchdock_errors.capture_message("Stripe webhook signature invalid")
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## PII scrubbing
|
|
74
|
+
|
|
75
|
+
By default, `Authorization`, `Cookie`, and `X-Api-Key` headers are stripped and the request body is not sent. Set `send_pii=True` to disable scrubbing.
|
|
76
|
+
|
|
77
|
+
Use the `before_send` hook for custom scrubbing:
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
def scrub(event):
|
|
81
|
+
event["request"]["headers"].pop("X-Internal-Token", None)
|
|
82
|
+
return event # return None to drop the event entirely
|
|
83
|
+
|
|
84
|
+
watchdock_errors.init(api_key="wdk_xxx", before_send=scrub)
|
|
85
|
+
```
|
|
@@ -1,40 +1,43 @@
|
|
|
1
|
-
[build-system]
|
|
2
|
-
requires = ["setuptools>=68", "wheel"]
|
|
3
|
-
build-backend = "setuptools.build_meta"
|
|
4
|
-
|
|
5
|
-
[project]
|
|
6
|
-
name = "watchdock-errors"
|
|
7
|
-
|
|
8
|
-
description = "Application error tracking SDK for the Watchdock platform"
|
|
9
|
-
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.10"
|
|
11
|
-
license = { text = "MIT" }
|
|
12
|
-
keywords = ["error-tracking", "observability", "watchdock"]
|
|
13
|
-
dependencies = ["requests>=2.28"]
|
|
14
|
-
|
|
15
|
-
[project.optional-dependencies]
|
|
16
|
-
django = ["django>=3.2"]
|
|
17
|
-
fastapi = ["fastapi>=0.95", "starlette>=0.27"]
|
|
18
|
-
dev = [
|
|
19
|
-
"pytest>=7.0",
|
|
20
|
-
"pytest-mock>=3.0",
|
|
21
|
-
"responses>=0.23",
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
[
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel", "setuptools-scm[toml]>=8"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "watchdock-errors"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Application error tracking SDK for the Watchdock platform"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
keywords = ["error-tracking", "observability", "watchdock"]
|
|
13
|
+
dependencies = ["requests>=2.28"]
|
|
14
|
+
|
|
15
|
+
[project.optional-dependencies]
|
|
16
|
+
django = ["django>=3.2"]
|
|
17
|
+
fastapi = ["fastapi>=0.95", "starlette>=0.27"]
|
|
18
|
+
dev = [
|
|
19
|
+
"pytest>=7.0",
|
|
20
|
+
"pytest-mock>=3.0",
|
|
21
|
+
"responses>=0.23",
|
|
22
|
+
"ruff>=0.1.0",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
[tool.setuptools.packages.find]
|
|
26
|
+
where = ["src"]
|
|
27
|
+
|
|
28
|
+
[tool.setuptools_scm]
|
|
29
|
+
|
|
30
|
+
[tool.ruff]
|
|
31
|
+
line-length = 120
|
|
32
|
+
target-version = "py310"
|
|
33
|
+
|
|
34
|
+
[tool.ruff.lint]
|
|
35
|
+
select = ["E", "W", "F", "I", "B", "UP"]
|
|
36
|
+
ignore = ["E501", "B008"]
|
|
37
|
+
|
|
38
|
+
[tool.ruff.format]
|
|
39
|
+
quote-style = "double"
|
|
40
|
+
indent-style = "space"
|
|
41
|
+
|
|
42
|
+
[tool.pytest.ini_options]
|
|
43
|
+
testpaths = ["tests"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
[egg_info]
|
|
2
|
-
tag_build =
|
|
3
|
-
tag_date = 0
|
|
4
|
-
|
|
1
|
+
[egg_info]
|
|
2
|
+
tag_build =
|
|
3
|
+
tag_date = 0
|
|
4
|
+
|