sqlite-export-for-ynab 2.9.8__tar.gz → 2.9.10__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.
- {sqlite_export_for_ynab-2.9.8/sqlite_export_for_ynab.egg-info → sqlite_export_for_ynab-2.9.10}/PKG-INFO +1 -1
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/pyproject.toml +4 -2
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/_main.py +11 -8
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10/sqlite_export_for_ynab.egg-info}/PKG-INFO +1 -1
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/tests/_main_test.py +4 -4
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/LICENSE +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/README.md +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/setup.cfg +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/__init__.py +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/__main__.py +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/ddl/__init__.py +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/ddl/create-relations.sql +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/ddl/drop-relations.sql +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/py.typed +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab.egg-info/SOURCES.txt +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab.egg-info/dependency_links.txt +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab.egg-info/entry_points.txt +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab.egg-info/requires.txt +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab.egg-info/top_level.txt +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/testing/__init__.py +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/testing/fixtures.py +0 -0
- {sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/tests/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "sqlite_export_for_ynab"
|
|
3
|
-
version = "2.9.
|
|
3
|
+
version = "2.9.10"
|
|
4
4
|
description = "SQLite Export for YNAB - Export YNAB Data to SQLite"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11" # generated by mxr/base
|
|
@@ -28,7 +28,7 @@ dependencies = [
|
|
|
28
28
|
[project.urls] # generated by mxr/base
|
|
29
29
|
Homepage = "https://github.com/mxr/sqlite-export-for-ynab"
|
|
30
30
|
|
|
31
|
-
[project.scripts]
|
|
31
|
+
[project.scripts] # generated by mxr/base
|
|
32
32
|
sqlite-export-for-ynab = "sqlite_export_for_ynab._main:main"
|
|
33
33
|
|
|
34
34
|
[dependency-groups]
|
|
@@ -125,6 +125,7 @@ env_list = ["py", "pre-commit"]
|
|
|
125
125
|
[tool.tox.env.pre-commit] # generated by mxr/base
|
|
126
126
|
commands = [["pre-commit", "run", "--all-files", "--show-diff-on-failure"]]
|
|
127
127
|
deps = ["pre-commit-uv"]
|
|
128
|
+
runner = "uv-venv-runner"
|
|
128
129
|
skip_install = true
|
|
129
130
|
|
|
130
131
|
[tool.tox.env_run_base] # generated by mxr/base
|
|
@@ -134,6 +135,7 @@ commands = [
|
|
|
134
135
|
["coverage", "report"],
|
|
135
136
|
]
|
|
136
137
|
dependency_groups = ["dev"]
|
|
138
|
+
runner = "uv-venv-lock-runner"
|
|
137
139
|
|
|
138
140
|
[tool.ty.rules] # generated by mxr/base
|
|
139
141
|
all = "error"
|
{sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/_main.py
RENAMED
|
@@ -47,6 +47,7 @@ from rich.progress import Progress
|
|
|
47
47
|
from rich.progress import TaskID
|
|
48
48
|
from rich.progress import TextColumn
|
|
49
49
|
from rich.progress import TimeElapsedColumn
|
|
50
|
+
from tenacity import AsyncRetrying
|
|
50
51
|
from tenacity import retry
|
|
51
52
|
from tenacity import stop_after_attempt
|
|
52
53
|
|
|
@@ -693,15 +694,17 @@ class _ProgressYnab:
|
|
|
693
694
|
lkos: dict[str, int]
|
|
694
695
|
task_id: TaskID
|
|
695
696
|
|
|
696
|
-
@retry(stop=stop_after_attempt(3))
|
|
697
697
|
async def get(self, endpoint: Callable[..., Awaitable[_T]]) -> _T:
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
698
|
+
async for attempt in AsyncRetrying(stop=stop_after_attempt(3)):
|
|
699
|
+
with attempt:
|
|
700
|
+
try:
|
|
701
|
+
return await endpoint(
|
|
702
|
+
plan_id=self.plan_id,
|
|
703
|
+
last_knowledge_of_server=self.lkos.get(self.plan_id),
|
|
704
|
+
)
|
|
705
|
+
finally:
|
|
706
|
+
self.context.progress.update(self.task_id, advance=1)
|
|
707
|
+
raise AssertionError("unreachable")
|
|
705
708
|
|
|
706
709
|
|
|
707
710
|
@dataclass(slots=True, frozen=True)
|
|
@@ -3,8 +3,10 @@ from __future__ import annotations
|
|
|
3
3
|
import tomllib
|
|
4
4
|
from datetime import date
|
|
5
5
|
from pathlib import Path
|
|
6
|
+
from unittest.mock import ANY
|
|
6
7
|
from unittest.mock import AsyncMock
|
|
7
8
|
from unittest.mock import Mock
|
|
9
|
+
from unittest.mock import call
|
|
8
10
|
from unittest.mock import patch
|
|
9
11
|
|
|
10
12
|
import aiosqlite
|
|
@@ -1048,8 +1050,7 @@ async def test_sync_lock_times_out(mock_get_running_loop, mock_acquire, tmp_path
|
|
|
1048
1050
|
timeout=0.1,
|
|
1049
1051
|
).__aenter__()
|
|
1050
1052
|
|
|
1051
|
-
|
|
1052
|
-
assert mock_acquire.call_args.args[1] is False
|
|
1053
|
+
mock_acquire.assert_called_once_with(ANY, False)
|
|
1053
1054
|
|
|
1054
1055
|
|
|
1055
1056
|
@patch(
|
|
@@ -1085,8 +1086,7 @@ async def test_context_retries_after_sleep(
|
|
|
1085
1086
|
):
|
|
1086
1087
|
pass
|
|
1087
1088
|
|
|
1088
|
-
assert mock_acquire.
|
|
1089
|
-
assert mock_acquire.call_args_list[0].args[1] is False
|
|
1089
|
+
assert mock_acquire.call_args_list == [call(ANY, False), call(ANY, False)]
|
|
1090
1090
|
assert mock_sleep.call_count == 1
|
|
1091
1091
|
assert mock_release.call_count == 1
|
|
1092
1092
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/__init__.py
RENAMED
|
File without changes
|
{sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlite_export_for_ynab-2.9.8 → sqlite_export_for_ynab-2.9.10}/sqlite_export_for_ynab/py.typed
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
|