mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-14 09:42:21 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0205e5be0d | ||
|
|
ca7968cc3c | ||
|
|
e6da6ee9ab | ||
|
|
8802d24789 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -1,4 +1,20 @@
|
|||||||
|
|
||||||
|
## 2025.10.0 (2025/10/01)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- **gocardless:** Increase timeout to 30 seconds, some requests take some time. ([ca7968cc](https://github.com/elisiariocouto/leggen/commit/ca7968cc3c625e243fe2d75590a9e56f3100072b))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 2025.9.26 (2025/09/30)
|
||||||
|
|
||||||
|
### Debug
|
||||||
|
|
||||||
|
- Log different sets of GoCardless rate limits. ([8802d247](https://github.com/elisiariocouto/leggen/commit/8802d24789cbb8e854d857a0d7cc89a25a26f378))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 2025.9.25 (2025/09/30)
|
## 2025.9.25 (2025/09/30)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -11,17 +11,18 @@ from leggen.utils.paths import path_manager
|
|||||||
|
|
||||||
def _log_rate_limits(response, method, url):
|
def _log_rate_limits(response, method, url):
|
||||||
"""Log GoCardless API rate limit headers"""
|
"""Log GoCardless API rate limit headers"""
|
||||||
limit = response.headers.get("http_x_ratelimit_limit") or response.headers.get(
|
limit = response.headers.get("http_x_ratelimit_limit")
|
||||||
"http_x_ratelimit_account_success_limit"
|
remaining = response.headers.get("http_x_ratelimit_remaining")
|
||||||
)
|
reset = response.headers.get("http_x_ratelimit_reset")
|
||||||
remaining = response.headers.get(
|
|
||||||
"http_x_ratelimit_remaining"
|
account_limit = response.headers.get("http_x_ratelimit_account_success_limit")
|
||||||
) or response.headers.get("http_x_ratelimit_account_success_remaining")
|
account_remaining = response.headers.get(
|
||||||
reset = response.headers.get("http_x_ratelimit_reset") or response.headers.get(
|
"http_x_ratelimit_account_success_remaining"
|
||||||
"http_x_ratelimit_account_success_reset"
|
|
||||||
)
|
)
|
||||||
|
account_reset = response.headers.get("http_x_ratelimit_account_success_reset")
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"{method} {url} - Limit: {limit}, Remaining: {remaining}, Reset: {reset}s"
|
f"{method} {url} Limit/Remaining/Reset (Global: {limit}/{remaining}/{reset}s) (Account: {account_limit}/{account_remaining}/{account_reset}s)"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -40,7 +41,9 @@ class GoCardlessService:
|
|||||||
headers = await self._get_auth_headers()
|
headers = await self._get_auth_headers()
|
||||||
|
|
||||||
async with httpx.AsyncClient() as client:
|
async with httpx.AsyncClient() as client:
|
||||||
response = await client.request(method, url, headers=headers, **kwargs)
|
response = await client.request(
|
||||||
|
method, url, headers=headers, timeout=30, **kwargs
|
||||||
|
)
|
||||||
_log_rate_limits(response, method, url)
|
_log_rate_limits(response, method, url)
|
||||||
|
|
||||||
# If we get 401, clear token cache and retry once
|
# If we get 401, clear token cache and retry once
|
||||||
@@ -48,7 +51,9 @@ class GoCardlessService:
|
|||||||
logger.warning("Got 401, clearing token cache and retrying")
|
logger.warning("Got 401, clearing token cache and retrying")
|
||||||
self._token = None
|
self._token = None
|
||||||
headers = await self._get_auth_headers()
|
headers = await self._get_auth_headers()
|
||||||
response = await client.request(method, url, headers=headers, **kwargs)
|
response = await client.request(
|
||||||
|
method, url, headers=headers, timeout=30, **kwargs
|
||||||
|
)
|
||||||
_log_rate_limits(response, method, url)
|
_log_rate_limits(response, method, url)
|
||||||
|
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "leggen"
|
name = "leggen"
|
||||||
version = "2025.9.25"
|
version = "2025.10.0"
|
||||||
description = "An Open Banking CLI"
|
description = "An Open Banking CLI"
|
||||||
authors = [{ name = "Elisiário Couto", email = "elisiario@couto.io" }]
|
authors = [{ name = "Elisiário Couto", email = "elisiario@couto.io" }]
|
||||||
requires-python = "~=3.13.0"
|
requires-python = "~=3.13.0"
|
||||||
|
|||||||
2
uv.lock
generated
2
uv.lock
generated
@@ -257,7 +257,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "leggen"
|
name = "leggen"
|
||||||
version = "2025.9.25"
|
version = "2025.10.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "apscheduler" },
|
{ name = "apscheduler" },
|
||||||
|
|||||||
Reference in New Issue
Block a user