Feature Request
Describe the feature you'd like
Implement a centralized HTTP requests.Session with urllib3.util.Retry configured for exponential backoff and jitter, and expose --max-retries and --request-timeout options across CLI commands.
Why is this feature important?
Currently, download.py, deploy.py, delete.py, and webdav.py use direct requests.get(), requests.post(), and requests.delete() calls without automated retry handling.
During large dataset downloads, WebDAV uploads, or Databus SPARQL queries:
- Transient network drops, 429 Rate Limits, or 502/503/504 gateway timeouts cause the execution to crash abruptly without retrying.
Describe alternatives you've considered
Users must manually re-run failed CLI commands from scratch, which wastes network bandwidth during multi-gigabyte dataset downloads.
Additional context
- Affected files:
databusclient/api/utils.py, download.py, deploy.py, and extensions/webdav.py.
- Recommended retry status codes:
[429, 500, 502, 503, 504].
- Expose
--max-retries (default: 3) and --request-timeout (default: 30s) as CLI flags.
Feature Request
Describe the feature you'd like
Implement a centralized HTTP
requests.Sessionwithurllib3.util.Retryconfigured for exponential backoff and jitter, and expose--max-retriesand--request-timeoutoptions across CLI commands.Why is this feature important?
Currently,
download.py,deploy.py,delete.py, andwebdav.pyuse directrequests.get(),requests.post(), andrequests.delete()calls without automated retry handling.During large dataset downloads, WebDAV uploads, or Databus SPARQL queries:
Describe alternatives you've considered
Users must manually re-run failed CLI commands from scratch, which wastes network bandwidth during multi-gigabyte dataset downloads.
Additional context
databusclient/api/utils.py,download.py,deploy.py, andextensions/webdav.py.[429, 500, 502, 503, 504].--max-retries(default: 3) and--request-timeout(default: 30s) as CLI flags.