wire remaining hardcoded paths, fix truncated quality measure docs refs #1

- bcda/client.py: output_dir default → conf.path("storage.bcda")
- bcda/express/flatten.py: store_path default → conf.path("storage.bcda")
- notebooks: eliminate all /home/kert/ absolute paths from
  bib_explorer.py and zotero_tutorial.py
- generate_quality_measure_docs.py: complete truncated f-string at
  line 561 (file was committed incomplete), add return statement
- test_client.py: update default assertion to match conf-resolved path
This commit is contained in:
kert
2026-03-12 14:33:43 -04:00
parent 16131e46a5
commit 962dc48509
6 changed files with 34 additions and 9 deletions

View File

@@ -560,4 +560,18 @@ def build_uamcc_passages(
# ── Person time ───────────────────────────────────────────────────
passages["uamcc_int_person_time"] = (
f"Calculate at-risk person-time for each UAMCC-eligible beneficiary.\n\n"
f
f"Source: {_cite(pdf_name, '§3.11', denom_d_page)}\n\n"
f"UAMCC §3.11 Denominator Exclusion Details:\n"
f" \"Persons are considered at risk for admission if they are alive,\n"
f" enrolled in Medicare FFS, and not admitted to an acute care\n"
f" hospital. In addition to time spent in the hospital, excluded\n"
f" from at-risk time are:\n"
f" (1) time spent in an SNF or acute rehabilitation facility;\n"
f" (2) time within 10 days following discharge from a hospital,\n"
f" SNF, or acute rehabilitation facility;\n"
f" (3) time after entering hospice care.\"\n\n"
f"Person-years = at_risk_days / 365.25\n\n"
f"Performance Year: {py_version}."
)
return passages

View File

@@ -83,7 +83,7 @@ def _(ZOTERO_DB, mo, store):
_msg = """
## 2. Migration
No Zotero database found at `/home/kert/zotero/zotero.sqlite`.
No Zotero database found at `{ZOTERO_DB}`.
Start the Zotero container first, or add items manually below.
"""
else:

View File

@@ -14,7 +14,7 @@ def _():
This notebook provides two modes of access:
- **Local SQLite** — reads the Zotero database directly (mounted read-only at `/home/kert/zotero`)
- **Local SQLite** — reads the Zotero database directly from the path configured in `stack.toml`
- **Web API via pyzotero** — connects to `api.zotero.org` when API credentials are configured
The local SQLite path works immediately with the container's library.
@@ -30,7 +30,9 @@ def _(mo):
from pathlib import Path
from pyzotero import zotero
ZOTERO_DB = Path("/home/kert/zotero/zotero.sqlite")
from conf import path as _conf_path
ZOTERO_DB = _conf_path("db.zotero")
mo.md(f"""
## 1. Local Database Connection
@@ -586,7 +588,7 @@ def _(mo):
| Local SQLite | Always available, read-only, fast, no credentials needed |
| Pyzotero Web API | Read/write, sync support, requires zotero.org API key |
The local database is mounted read-only from the `zotero` container at `/home/kert/zotero/zotero.sqlite`.
The local database is mounted read-only from the `zotero` container at the path configured in `stack.toml` (`db.zotero`).
Changes made through the VNC desktop app are reflected here on next Zotero save.
""")
return

View File

@@ -82,12 +82,16 @@ class Client:
client_secret: str,
*,
base_url: str = SANDBOX,
output_dir: str | Path = "data/bcda",
output_dir: str | Path | None = None,
version: str = "v2",
max_retries: int = MAX_RETRIES,
retry_interval: float = RETRY_INITIAL_INTERVAL,
timeout: float = 120.0,
) -> None:
if output_dir is None:
from conf import path
output_dir = path("storage.bcda")
self.client_id = client_id
self.client_secret = client_secret
self.base_url = base_url.rstrip("/")

View File

@@ -958,7 +958,7 @@ def _write_parquet(
def flatten_export(
ndjson_dir: str | Path,
store_path: str | Path = "data/bcda",
store_path: str | Path | None = None,
*,
storage_options: dict | None = None,
) -> dict[str, int]:
@@ -993,6 +993,10 @@ def flatten_export(
from bcda.log import setup
if store_path is None:
from conf import path
store_path = path("storage.bcda")
setup()
ndjson_dir = Path(ndjson_dir)
root = str(store_path).rstrip("/")

View File

@@ -3,7 +3,6 @@
from __future__ import annotations
import gzip
from pathlib import Path
from unittest.mock import patch
import httpx
@@ -849,7 +848,9 @@ class TestClientDefaults:
assert c.base_url == SANDBOX
assert c.version == "v2"
assert c.max_retries == 3
assert c.output_dir == Path("data/bcda")
from conf import path
assert c.output_dir == path("storage.bcda")
c.close()
def test_base_url_trailing_slash(self) -> None: