fetchnode 0.4.2__tar.gz → 0.4.3__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.
- fetchnode-0.4.3/CHANGELOG.md +36 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/PKG-INFO +61 -14
- {fetchnode-0.4.2 → fetchnode-0.4.3}/README.md +57 -10
- {fetchnode-0.4.2 → fetchnode-0.4.3}/pyproject.toml +5 -4
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/apps.py +6 -2
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/conf.py +1 -1
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/version.py +1 -1
- fetchnode-0.4.3/src/fetchnode_client/apps.py +5 -0
- fetchnode-0.4.2/src/fetchnode_client/apps.py +0 -2
- {fetchnode-0.4.2 → fetchnode-0.4.3}/.gitignore +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/LICENSE +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/__init__.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/api.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/capture.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/celery.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/demo.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/excepthook.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/handlers.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/middleware.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/py.typed +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/query.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/scope.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/scrub.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/sender.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode/utils.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/__init__.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/api.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/capture.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/celery.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/conf.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/demo.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/excepthook.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/handlers.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/middleware.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/py.typed +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/query.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/scope.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/scrub.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/sender.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/utils.py +0 -0
- {fetchnode-0.4.2 → fetchnode-0.4.3}/src/fetchnode_client/version.py +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# FetchNode SDK changelog
|
|
2
|
+
|
|
3
|
+
## 0.4.3 — 2026-09-29
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Use `https://fetch-node.com/api/events/ingest/` as the default ingest endpoint.
|
|
8
|
+
- Let Django automatically discover the SDK AppConfig when `fetchnode` is in
|
|
9
|
+
`INSTALLED_APPS`, so startup installs logging and enabled instrumentation.
|
|
10
|
+
- Preserve automatic AppConfig discovery for the legacy `fetchnode_client` name.
|
|
11
|
+
- Correct the documentation URLs to the active FetchNode website.
|
|
12
|
+
|
|
13
|
+
### Documentation
|
|
14
|
+
|
|
15
|
+
- Configure the private server key through `FETCHNODE_API_KEY` and supply an
|
|
16
|
+
explicit ingest URL. Keep private keys out of browser code and source control.
|
|
17
|
+
- Show explicit server conversion declarations and non-personal event properties.
|
|
18
|
+
- Verify reception after restarting or redeploying Django.
|
|
19
|
+
|
|
20
|
+
### Release checks
|
|
21
|
+
|
|
22
|
+
- Test the installed wheel outside the repository, including Django AppConfig and
|
|
23
|
+
automatic logging setup.
|
|
24
|
+
- Exercise requests, exceptions, error logs and idempotent conversions against a
|
|
25
|
+
local FetchNode collector, with project isolation checks.
|
|
26
|
+
- Check distribution metadata and the release tag before uploading to PyPI.
|
|
27
|
+
|
|
28
|
+
### Upgrade
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
python -m pip install --upgrade fetchnode==0.4.3
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Update your dependency file or lockfile, restart or redeploy Django, and verify a
|
|
35
|
+
request and test error in FetchNode. Existing installations can set `API_URL`
|
|
36
|
+
explicitly if they use their own collector.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: fetchnode
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: Official Django and Python client SDK for FetchNode monitoring
|
|
5
|
-
Project-URL: Homepage, https://
|
|
6
|
-
Project-URL: Documentation, https://
|
|
5
|
+
Project-URL: Homepage, https://fetch-node.com
|
|
6
|
+
Project-URL: Documentation, https://fetch-node.com/guide/
|
|
7
7
|
Project-URL: Repository, https://github.com/remcovanwijk040/fetchnode
|
|
8
8
|
Project-URL: Issues, https://github.com/remcovanwijk040/fetchnode/issues
|
|
9
|
-
Project-URL: Changelog, https://fetchnode.
|
|
9
|
+
Project-URL: Changelog, https://pypi.org/project/fetchnode/0.4.3/#sdk-changelog
|
|
10
10
|
Author-email: Remco van Wijk <remcovanwijk040@users.noreply.github.com>
|
|
11
11
|
License-Expression: MIT
|
|
12
12
|
License-File: LICENSE
|
|
@@ -43,7 +43,7 @@ Description-Content-Type: text/markdown
|
|
|
43
43
|
[](https://opensource.org/licenses/MIT)
|
|
44
44
|
[](https://peps.python.org/pep-0561/)
|
|
45
45
|
|
|
46
|
-
Official Python and Django client SDK for [FetchNode](https://
|
|
46
|
+
Official Python and Django client SDK for [FetchNode](https://fetch-node.com) — the focused operations workspace for developers and teams managing multiple production Django websites.
|
|
47
47
|
|
|
48
48
|
FetchNode captures unhandled exceptions, error logs, slow database queries, N+1 query patterns, Celery background tasks, and authoritative business conversions with zero bloat and privacy-safe defaults.
|
|
49
49
|
|
|
@@ -70,6 +70,10 @@ FetchNode captures unhandled exceptions, error logs, slow database queries, N+1
|
|
|
70
70
|
|
|
71
71
|
## Installation
|
|
72
72
|
|
|
73
|
+
Version 0.4.3 fixes the default ingest endpoint and Django startup discovery for
|
|
74
|
+
automatic logging. See the [SDK changelog](#sdk-changelog)
|
|
75
|
+
for changes and upgrade instructions.
|
|
76
|
+
|
|
73
77
|
Install via `pip`:
|
|
74
78
|
|
|
75
79
|
```bash
|
|
@@ -114,13 +118,18 @@ MIDDLEWARE = [
|
|
|
114
118
|
### 3. Configure `settings.FETCHNODE`
|
|
115
119
|
|
|
116
120
|
```python
|
|
121
|
+
import os
|
|
122
|
+
|
|
117
123
|
FETCHNODE = {
|
|
118
|
-
"API_KEY": "
|
|
124
|
+
"API_KEY": os.environ.get("FETCHNODE_API_KEY", ""),
|
|
125
|
+
"API_URL": "https://fetch-node.com/api/events/ingest/",
|
|
119
126
|
"ENVIRONMENT": "production", # e.g. "production", "staging"
|
|
120
127
|
}
|
|
121
128
|
```
|
|
122
129
|
|
|
123
|
-
|
|
130
|
+
Set `FETCHNODE_API_KEY` to your private server key in the deployment environment. Keep it out of source control and browser code. Restart or redeploy Django, then verify a request and test error in FetchNode.
|
|
131
|
+
|
|
132
|
+
Django will automatically initialize FetchNode upon startup and capture unhandled exceptions, slow queries, and request telemetry.
|
|
124
133
|
|
|
125
134
|
---
|
|
126
135
|
|
|
@@ -130,8 +139,8 @@ Configure via `settings.FETCHNODE` or environment variables:
|
|
|
130
139
|
|
|
131
140
|
| Setting Key | Environment Variable | Default | Description |
|
|
132
141
|
| :--- | :--- | :--- | :--- |
|
|
133
|
-
| `API_KEY` | `FETCHNODE_API_KEY` | `""` | **Required.** Your
|
|
134
|
-
| `ENDPOINT` / `API_URL` | `FETCHNODE_ENDPOINT` | `https://
|
|
142
|
+
| `API_KEY` | `FETCHNODE_API_KEY` | `""` | **Required.** Your private server key from project settings. Never use a public browser key here. |
|
|
143
|
+
| `ENDPOINT` / `API_URL` | `FETCHNODE_ENDPOINT` | `https://fetch-node.com/api/events/ingest/` | Processing server URL. Point to your self-hosted instance if applicable. |
|
|
135
144
|
| `ENVIRONMENT` | `FETCHNODE_ENVIRONMENT` | `"development"` | Active environment name (`"production"`, `"staging"`). |
|
|
136
145
|
| `RELEASE` | `FETCHNODE_RELEASE` | `""` | Release tag or git commit hash (e.g. `git rev-parse HEAD`). |
|
|
137
146
|
| `ENABLED` | `FETCHNODE_ENABLED` | `True` if API_KEY present | Master toggle for event sending. |
|
|
@@ -163,8 +172,8 @@ def contact_view(request):
|
|
|
163
172
|
"lead_submitted",
|
|
164
173
|
request=request,
|
|
165
174
|
idempotency_key=f"lead:{lead.id}",
|
|
166
|
-
properties={"
|
|
167
|
-
conversion=True,
|
|
175
|
+
properties={"source": "contact_form"},
|
|
176
|
+
conversion={"display_name": "Lead submitted", "funnel_order": 1, "primary": True},
|
|
168
177
|
)
|
|
169
178
|
return redirect("thank_you")
|
|
170
179
|
```
|
|
@@ -271,9 +280,9 @@ fetchnode.flush()
|
|
|
271
280
|
|
|
272
281
|
## Links & Resources
|
|
273
282
|
|
|
274
|
-
- **Website & Cloud App:** [fetchnode.com](https://
|
|
275
|
-
- **Documentation & Setup Guide:** [fetchnode.com/guide/](https://
|
|
276
|
-
- **Changelog:** [fetchnode.com/changelog/](https://
|
|
283
|
+
- **Website & Cloud App:** [fetchnode.com](https://fetch-node.com)
|
|
284
|
+
- **Documentation & Setup Guide:** [fetchnode.com/guide/](https://fetch-node.com/guide/)
|
|
285
|
+
- **Changelog:** [fetchnode.com/changelog/](https://fetch-node.com/changelog/)
|
|
277
286
|
- **GitHub Repository:** [github.com/remcovanwijk040/fetchnode](https://github.com/remcovanwijk040/fetchnode)
|
|
278
287
|
- **Issue Tracker:** [github.com/remcovanwijk040/fetchnode/issues](https://github.com/remcovanwijk040/fetchnode/issues)
|
|
279
288
|
|
|
@@ -282,3 +291,41 @@ fetchnode.flush()
|
|
|
282
291
|
## License
|
|
283
292
|
|
|
284
293
|
MIT License. See [LICENSE](LICENSE) for details.
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
# SDK changelog
|
|
297
|
+
|
|
298
|
+
## 0.4.3 — 2026-09-29
|
|
299
|
+
|
|
300
|
+
### Fixed
|
|
301
|
+
|
|
302
|
+
- Use `https://fetch-node.com/api/events/ingest/` as the default ingest endpoint.
|
|
303
|
+
- Let Django automatically discover the SDK AppConfig when `fetchnode` is in
|
|
304
|
+
`INSTALLED_APPS`, so startup installs logging and enabled instrumentation.
|
|
305
|
+
- Preserve automatic AppConfig discovery for the legacy `fetchnode_client` name.
|
|
306
|
+
- Correct the documentation URLs to the active FetchNode website.
|
|
307
|
+
|
|
308
|
+
### Documentation
|
|
309
|
+
|
|
310
|
+
- Configure the private server key through `FETCHNODE_API_KEY` and supply an
|
|
311
|
+
explicit ingest URL. Keep private keys out of browser code and source control.
|
|
312
|
+
- Show explicit server conversion declarations and non-personal event properties.
|
|
313
|
+
- Verify reception after restarting or redeploying Django.
|
|
314
|
+
|
|
315
|
+
### Release checks
|
|
316
|
+
|
|
317
|
+
- Test the installed wheel outside the repository, including Django AppConfig and
|
|
318
|
+
automatic logging setup.
|
|
319
|
+
- Exercise requests, exceptions, error logs and idempotent conversions against a
|
|
320
|
+
local FetchNode collector, with project isolation checks.
|
|
321
|
+
- Check distribution metadata and the release tag before uploading to PyPI.
|
|
322
|
+
|
|
323
|
+
### Upgrade
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
python -m pip install --upgrade fetchnode==0.4.3
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Update your dependency file or lockfile, restart or redeploy Django, and verify a
|
|
330
|
+
request and test error in FetchNode. Existing installations can set `API_URL`
|
|
331
|
+
explicitly if they use their own collector.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
7
7
|
[](https://peps.python.org/pep-0561/)
|
|
8
8
|
|
|
9
|
-
Official Python and Django client SDK for [FetchNode](https://
|
|
9
|
+
Official Python and Django client SDK for [FetchNode](https://fetch-node.com) — the focused operations workspace for developers and teams managing multiple production Django websites.
|
|
10
10
|
|
|
11
11
|
FetchNode captures unhandled exceptions, error logs, slow database queries, N+1 query patterns, Celery background tasks, and authoritative business conversions with zero bloat and privacy-safe defaults.
|
|
12
12
|
|
|
@@ -33,6 +33,10 @@ FetchNode captures unhandled exceptions, error logs, slow database queries, N+1
|
|
|
33
33
|
|
|
34
34
|
## Installation
|
|
35
35
|
|
|
36
|
+
Version 0.4.3 fixes the default ingest endpoint and Django startup discovery for
|
|
37
|
+
automatic logging. See the [SDK changelog](#sdk-changelog)
|
|
38
|
+
for changes and upgrade instructions.
|
|
39
|
+
|
|
36
40
|
Install via `pip`:
|
|
37
41
|
|
|
38
42
|
```bash
|
|
@@ -77,13 +81,18 @@ MIDDLEWARE = [
|
|
|
77
81
|
### 3. Configure `settings.FETCHNODE`
|
|
78
82
|
|
|
79
83
|
```python
|
|
84
|
+
import os
|
|
85
|
+
|
|
80
86
|
FETCHNODE = {
|
|
81
|
-
"API_KEY": "
|
|
87
|
+
"API_KEY": os.environ.get("FETCHNODE_API_KEY", ""),
|
|
88
|
+
"API_URL": "https://fetch-node.com/api/events/ingest/",
|
|
82
89
|
"ENVIRONMENT": "production", # e.g. "production", "staging"
|
|
83
90
|
}
|
|
84
91
|
```
|
|
85
92
|
|
|
86
|
-
|
|
93
|
+
Set `FETCHNODE_API_KEY` to your private server key in the deployment environment. Keep it out of source control and browser code. Restart or redeploy Django, then verify a request and test error in FetchNode.
|
|
94
|
+
|
|
95
|
+
Django will automatically initialize FetchNode upon startup and capture unhandled exceptions, slow queries, and request telemetry.
|
|
87
96
|
|
|
88
97
|
---
|
|
89
98
|
|
|
@@ -93,8 +102,8 @@ Configure via `settings.FETCHNODE` or environment variables:
|
|
|
93
102
|
|
|
94
103
|
| Setting Key | Environment Variable | Default | Description |
|
|
95
104
|
| :--- | :--- | :--- | :--- |
|
|
96
|
-
| `API_KEY` | `FETCHNODE_API_KEY` | `""` | **Required.** Your
|
|
97
|
-
| `ENDPOINT` / `API_URL` | `FETCHNODE_ENDPOINT` | `https://
|
|
105
|
+
| `API_KEY` | `FETCHNODE_API_KEY` | `""` | **Required.** Your private server key from project settings. Never use a public browser key here. |
|
|
106
|
+
| `ENDPOINT` / `API_URL` | `FETCHNODE_ENDPOINT` | `https://fetch-node.com/api/events/ingest/` | Processing server URL. Point to your self-hosted instance if applicable. |
|
|
98
107
|
| `ENVIRONMENT` | `FETCHNODE_ENVIRONMENT` | `"development"` | Active environment name (`"production"`, `"staging"`). |
|
|
99
108
|
| `RELEASE` | `FETCHNODE_RELEASE` | `""` | Release tag or git commit hash (e.g. `git rev-parse HEAD`). |
|
|
100
109
|
| `ENABLED` | `FETCHNODE_ENABLED` | `True` if API_KEY present | Master toggle for event sending. |
|
|
@@ -126,8 +135,8 @@ def contact_view(request):
|
|
|
126
135
|
"lead_submitted",
|
|
127
136
|
request=request,
|
|
128
137
|
idempotency_key=f"lead:{lead.id}",
|
|
129
|
-
properties={"
|
|
130
|
-
conversion=True,
|
|
138
|
+
properties={"source": "contact_form"},
|
|
139
|
+
conversion={"display_name": "Lead submitted", "funnel_order": 1, "primary": True},
|
|
131
140
|
)
|
|
132
141
|
return redirect("thank_you")
|
|
133
142
|
```
|
|
@@ -234,9 +243,9 @@ fetchnode.flush()
|
|
|
234
243
|
|
|
235
244
|
## Links & Resources
|
|
236
245
|
|
|
237
|
-
- **Website & Cloud App:** [fetchnode.com](https://
|
|
238
|
-
- **Documentation & Setup Guide:** [fetchnode.com/guide/](https://
|
|
239
|
-
- **Changelog:** [fetchnode.com/changelog/](https://
|
|
246
|
+
- **Website & Cloud App:** [fetchnode.com](https://fetch-node.com)
|
|
247
|
+
- **Documentation & Setup Guide:** [fetchnode.com/guide/](https://fetch-node.com/guide/)
|
|
248
|
+
- **Changelog:** [fetchnode.com/changelog/](https://fetch-node.com/changelog/)
|
|
240
249
|
- **GitHub Repository:** [github.com/remcovanwijk040/fetchnode](https://github.com/remcovanwijk040/fetchnode)
|
|
241
250
|
- **Issue Tracker:** [github.com/remcovanwijk040/fetchnode/issues](https://github.com/remcovanwijk040/fetchnode/issues)
|
|
242
251
|
|
|
@@ -245,3 +254,41 @@ fetchnode.flush()
|
|
|
245
254
|
## License
|
|
246
255
|
|
|
247
256
|
MIT License. See [LICENSE](LICENSE) for details.
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
# SDK changelog
|
|
260
|
+
|
|
261
|
+
## 0.4.3 — 2026-09-29
|
|
262
|
+
|
|
263
|
+
### Fixed
|
|
264
|
+
|
|
265
|
+
- Use `https://fetch-node.com/api/events/ingest/` as the default ingest endpoint.
|
|
266
|
+
- Let Django automatically discover the SDK AppConfig when `fetchnode` is in
|
|
267
|
+
`INSTALLED_APPS`, so startup installs logging and enabled instrumentation.
|
|
268
|
+
- Preserve automatic AppConfig discovery for the legacy `fetchnode_client` name.
|
|
269
|
+
- Correct the documentation URLs to the active FetchNode website.
|
|
270
|
+
|
|
271
|
+
### Documentation
|
|
272
|
+
|
|
273
|
+
- Configure the private server key through `FETCHNODE_API_KEY` and supply an
|
|
274
|
+
explicit ingest URL. Keep private keys out of browser code and source control.
|
|
275
|
+
- Show explicit server conversion declarations and non-personal event properties.
|
|
276
|
+
- Verify reception after restarting or redeploying Django.
|
|
277
|
+
|
|
278
|
+
### Release checks
|
|
279
|
+
|
|
280
|
+
- Test the installed wheel outside the repository, including Django AppConfig and
|
|
281
|
+
automatic logging setup.
|
|
282
|
+
- Exercise requests, exceptions, error logs and idempotent conversions against a
|
|
283
|
+
local FetchNode collector, with project isolation checks.
|
|
284
|
+
- Check distribution metadata and the release tag before uploading to PyPI.
|
|
285
|
+
|
|
286
|
+
### Upgrade
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
python -m pip install --upgrade fetchnode==0.4.3
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Update your dependency file or lockfile, restart or redeploy Django, and verify a
|
|
293
|
+
request and test error in FetchNode. Existing installations can set `API_URL`
|
|
294
|
+
explicitly if they use their own collector.
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fetchnode"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.3"
|
|
8
8
|
description = "Official Django and Python client SDK for FetchNode monitoring"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -43,11 +43,11 @@ celery = [
|
|
|
43
43
|
]
|
|
44
44
|
|
|
45
45
|
[project.urls]
|
|
46
|
-
Homepage = "https://
|
|
47
|
-
Documentation = "https://
|
|
46
|
+
Homepage = "https://fetch-node.com"
|
|
47
|
+
Documentation = "https://fetch-node.com/guide/"
|
|
48
48
|
Repository = "https://github.com/remcovanwijk040/fetchnode"
|
|
49
49
|
Issues = "https://github.com/remcovanwijk040/fetchnode/issues"
|
|
50
|
-
Changelog = "https://fetchnode.
|
|
50
|
+
Changelog = "https://pypi.org/project/fetchnode/0.4.3/#sdk-changelog"
|
|
51
51
|
|
|
52
52
|
[tool.hatch.build.targets.wheel]
|
|
53
53
|
packages = ["src/fetchnode", "src/fetchnode_client"]
|
|
@@ -56,6 +56,7 @@ packages = ["src/fetchnode", "src/fetchnode_client"]
|
|
|
56
56
|
include = [
|
|
57
57
|
"/src",
|
|
58
58
|
"/README.md",
|
|
59
|
+
"/CHANGELOG.md",
|
|
59
60
|
"/LICENSE",
|
|
60
61
|
"/pyproject.toml",
|
|
61
62
|
]
|
|
@@ -34,5 +34,9 @@ class FetchNodeConfig(AppConfig):
|
|
|
34
34
|
install_excepthook_instrumentation()
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
def __getattr__(name):
|
|
38
|
+
# Keep explicit legacy imports working without exposing a second AppConfig
|
|
39
|
+
# candidate to Django's automatic application discovery.
|
|
40
|
+
if name == "FetchNodeClientConfig":
|
|
41
|
+
return FetchNodeConfig
|
|
42
|
+
raise AttributeError(name)
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|