wealthbraid 0.1.0__tar.gz → 0.1.2__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.
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/codeql.yml +3 -3
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/draft_release.yml +1 -1
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/release.yml +1 -1
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/scheduled_release.yml +1 -1
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/support_floor_update.yml +1 -1
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.pre-commit-config.yaml +5 -5
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/PKG-INFO +2 -2
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/pyproject.toml +6 -6
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/importing.py +1 -1
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/store/test_record_log.py +2 -1
- wealthbraid-0.1.2/uv.lock +1906 -0
- wealthbraid-0.1.0/uv.lock +0 -1752
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.coderabbit.yaml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.gitattributes +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/pull_request_template.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/ci.yml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/documentation.yml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/publish.yml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/publish_testpypi.yml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.github/workflows/semantic_pull_request.yml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.gitignore +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.markdownlint.yaml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.prettierignore +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.prettierrc +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.pypirc +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/.typos.toml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/CITATION.cff +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/CODE_OF_CONDUCT.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/CONTRIBUTING.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/LICENSE +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/README.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/SECURITY.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/SUPPORT.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/cliff.toml +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/agent-guide.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/api/book.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/api/engine.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/api/index.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/api/services.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/api/store.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/architecture.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/contributing.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/gen_ref_pages.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/index.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/javascripts/mathjax.js +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/security.md +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/docs/style/api.css +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/renovate.json +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/scripts/release_version.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/__main__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/book/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/book/book.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/book/config.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/book/schema.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/book/state.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/book/verify.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/commands_analysis.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/commands_book.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/commands_ledger.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/commands_ops.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/commands_statements.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/common.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/cli/main.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/account.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/balancing.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/errors.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/inventory.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/ledger.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/money.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/prices.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/engine/transaction.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/errors.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/categorize.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/explain.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/reconcile.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/reports.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/review.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/services/scenarios.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/store/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/store/records.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/store/store.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/utils/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/utils/log.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/version.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/__init__.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/app.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/static/VENDOR.json +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/static/app.css +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/static/htmx.min.js +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/_macros.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/_operation_card.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/base.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/entries.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/error.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/lines.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/operation.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/operations.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/overview.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/reconciliations.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/reports.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/review.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/trace.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/src/wealthbraid/web/templates/verify.html +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/book/test_corrections_and_integrity.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/book/test_operations_workflow.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/book/test_provenance_hardening.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/cli/test_cli_contract.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/cli/test_cli_workflow.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/conftest.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_account.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_balancing.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_inventory.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_ledger.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_money.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_prices.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/engine/test_transaction.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/services/test_import_categorize_reconcile.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/services/test_import_hardening.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/services/test_reports_explain_scenarios.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/services/test_services_hardening.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/smoke_test.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/test_import.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/test_release_version.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/web/test_web_hardening.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/tests/web/test_web_review.py +0 -0
- {wealthbraid-0.1.0 → wealthbraid-0.1.2}/zensical.toml +0 -0
|
@@ -22,13 +22,13 @@ jobs:
|
|
|
22
22
|
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
23
23
|
|
|
24
24
|
- name: Initialize CodeQL
|
|
25
|
-
uses: github/codeql-action/init@
|
|
25
|
+
uses: github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4
|
|
26
26
|
with:
|
|
27
27
|
languages: python
|
|
28
28
|
queries: security-and-quality
|
|
29
29
|
|
|
30
30
|
- name: Autobuild
|
|
31
|
-
uses: github/codeql-action/autobuild@
|
|
31
|
+
uses: github/codeql-action/autobuild@24c54180a607b1449ed407dd24f251e4e9147c8d # v4
|
|
32
32
|
|
|
33
33
|
- name: Perform CodeQL Analysis
|
|
34
|
-
uses: github/codeql-action/analyze@
|
|
34
|
+
uses: github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4
|
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
|
|
23
23
|
- name: Generate changelog
|
|
24
24
|
id: changelog
|
|
25
|
-
uses: orhun/git-cliff-action@
|
|
25
|
+
uses: orhun/git-cliff-action@a9a95522b26fe6403f7bb24031f21fb573d0f5ff # v4.9.1
|
|
26
26
|
with:
|
|
27
27
|
config: cliff.toml
|
|
28
28
|
args: --unreleased --verbose
|
|
@@ -30,7 +30,7 @@ jobs:
|
|
|
30
30
|
|
|
31
31
|
- name: Generate changelog
|
|
32
32
|
id: changelog
|
|
33
|
-
uses: orhun/git-cliff-action@
|
|
33
|
+
uses: orhun/git-cliff-action@a9a95522b26fe6403f7bb24031f21fb573d0f5ff # v4.9.1
|
|
34
34
|
with:
|
|
35
35
|
config: cliff.toml
|
|
36
36
|
args: --current --verbose
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
|
|
32
32
|
- name: Check for new commits
|
|
33
33
|
id: check_commits
|
|
34
|
-
uses: isaac-cf-wong/detect-git-changes-action@
|
|
34
|
+
uses: isaac-cf-wong/detect-git-changes-action@9863c3c0ba155ed10b54072f711ae8807aedbc87 # v0.0.22
|
|
35
35
|
with:
|
|
36
36
|
use-latest-tag: true
|
|
37
37
|
|
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
|
|
23
23
|
- name: Apply support policy (spec0, from pyproject tool table)
|
|
24
24
|
id: policy
|
|
25
|
-
uses: isaac-cf-wong/dependency-support-policy-action@
|
|
25
|
+
uses: isaac-cf-wong/dependency-support-policy-action@f83b1c576c82b2a7dde5d3c38c222d68b76bb9cf # v0.2.12
|
|
26
26
|
with:
|
|
27
27
|
mode: update
|
|
28
28
|
|
|
@@ -16,7 +16,7 @@ repos:
|
|
|
16
16
|
- id: check-json
|
|
17
17
|
|
|
18
18
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
19
|
-
rev: v0.
|
|
19
|
+
rev: v0.17.0
|
|
20
20
|
hooks:
|
|
21
21
|
- id: ruff
|
|
22
22
|
args: [--fix, --config=pyproject.toml]
|
|
@@ -28,7 +28,7 @@ repos:
|
|
|
28
28
|
- id: taplo-format
|
|
29
29
|
|
|
30
30
|
- repo: https://github.com/crate-ci/typos
|
|
31
|
-
rev: v1.
|
|
31
|
+
rev: v1.51.1
|
|
32
32
|
hooks:
|
|
33
33
|
- id: typos
|
|
34
34
|
args: []
|
|
@@ -36,7 +36,7 @@ repos:
|
|
|
36
36
|
exclude: ^src/wealthbraid/web/static/htmx\.min\.js$
|
|
37
37
|
|
|
38
38
|
- repo: https://github.com/rbubley/mirrors-prettier
|
|
39
|
-
rev: v3.9.
|
|
39
|
+
rev: v3.9.10
|
|
40
40
|
hooks:
|
|
41
41
|
- id: prettier
|
|
42
42
|
|
|
@@ -54,12 +54,12 @@ repos:
|
|
|
54
54
|
- id: actionlint
|
|
55
55
|
|
|
56
56
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
57
|
-
rev: 0.
|
|
57
|
+
rev: 0.13.0
|
|
58
58
|
hooks:
|
|
59
59
|
# Update the uv lockfile
|
|
60
60
|
- id: uv-lock
|
|
61
61
|
|
|
62
62
|
- repo: https://github.com/betterleaks/betterleaks
|
|
63
|
-
rev: v1.
|
|
63
|
+
rev: v1.9.0
|
|
64
64
|
hooks:
|
|
65
65
|
- id: betterleaks
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: wealthbraid
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Local-first, AI-native personal wealth management on an append-only double-entry ledger
|
|
5
5
|
Project-URL: Documentation, https://isaac-cf-wong.github.io/wealthbraid
|
|
6
6
|
Project-URL: Source, https://github.com/isaac-cf-wong/wealthbraid
|
|
@@ -19,7 +19,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.14
|
|
20
20
|
Classifier: Topic :: Office/Business :: Financial :: Accounting
|
|
21
21
|
Requires-Python: >=3.12
|
|
22
|
-
Requires-Dist: fastapi>=0.
|
|
22
|
+
Requires-Dist: fastapi>=0.116.0
|
|
23
23
|
Requires-Dist: jinja2>=3.1
|
|
24
24
|
Requires-Dist: pydantic>=2.11
|
|
25
25
|
Requires-Dist: python-multipart>=0.0.20
|
|
@@ -23,7 +23,7 @@ dynamic = ["version"]
|
|
|
23
23
|
dependencies = [
|
|
24
24
|
"typer>=0.26.8",
|
|
25
25
|
"pydantic>=2.11",
|
|
26
|
-
"fastapi>=0.
|
|
26
|
+
"fastapi>=0.116.0",
|
|
27
27
|
"uvicorn>=0.34",
|
|
28
28
|
"jinja2>=3.1",
|
|
29
29
|
"python-multipart>=0.0.20",
|
|
@@ -31,18 +31,18 @@ dependencies = [
|
|
|
31
31
|
|
|
32
32
|
[dependency-groups]
|
|
33
33
|
dev = [
|
|
34
|
-
"ruff>=0.
|
|
35
|
-
"prek>=0.5.
|
|
34
|
+
"ruff>=0.17.0",
|
|
35
|
+
"prek>=0.5.5",
|
|
36
36
|
"pytest-github-actions-annotate-failures>=0.4.2",
|
|
37
37
|
"pytest-cov>=7.1.0",
|
|
38
|
-
"pytest-mock>=3.
|
|
38
|
+
"pytest-mock>=3.16.0",
|
|
39
39
|
"pytest>=9.1.1",
|
|
40
40
|
"mutmut>=3.8.0",
|
|
41
41
|
"httpx>=0.28.1",
|
|
42
42
|
]
|
|
43
|
-
docs = ["zensical>=0.0.
|
|
43
|
+
docs = ["zensical>=0.0.69", "mkdocstrings-python>=2.0.9"]
|
|
44
44
|
build = ["hatch>=1.18.1"]
|
|
45
|
-
release = ["git-cliff>=2.
|
|
45
|
+
release = ["git-cliff>=2.14.2"]
|
|
46
46
|
|
|
47
47
|
[project.scripts]
|
|
48
48
|
wealthbraid = "wealthbraid.cli.main:run"
|
|
@@ -133,7 +133,7 @@ def parse_csv(content: bytes, profile: ImportProfile) -> list[ParsedRow]:
|
|
|
133
133
|
date_text = (raw.get(profile.date) or "").strip()
|
|
134
134
|
try:
|
|
135
135
|
if profile.date_format:
|
|
136
|
-
date = dt.datetime.strptime(date_text, profile.date_format).date()
|
|
136
|
+
date = dt.datetime.strptime(date_text, profile.date_format).date()
|
|
137
137
|
else:
|
|
138
138
|
date = dt.date.fromisoformat(date_text)
|
|
139
139
|
except ValueError as exc:
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import json
|
|
6
|
+
import re
|
|
6
7
|
|
|
7
8
|
import pytest
|
|
8
9
|
|
|
@@ -104,7 +105,7 @@ def test_malformed_line_is_an_integrity_error(tmp_path):
|
|
|
104
105
|
_append(store, {"n": 1})
|
|
105
106
|
segment = store.segments()[0]
|
|
106
107
|
segment.write_text(segment.read_text() + "not json\n", encoding="utf-8")
|
|
107
|
-
with pytest.raises(IntegrityError, match=
|
|
108
|
+
with pytest.raises(IntegrityError, match=re.escape(f"{segment.relative_to(tmp_path)}:2")):
|
|
108
109
|
store.read_records()
|
|
109
110
|
|
|
110
111
|
|