feat: pydoc pincite — structured Zotero citations in docstrings #293
2 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8a0992576c
|
feat: fetch Federal Register PDF + TXT for all bib rules
Some checks failed
CI / skinny-install (cms) (push) Successful in 30s
CI / skinny-install (conf) (push) Successful in 37s
CI / skinny-install (opps) (push) Successful in 30s
CI / skinny-install (perf) (push) Successful in 36s
CI / skinny-install (pfs) (push) Successful in 36s
CI / skinny-install (rex) (push) Successful in 34s
CI / skinny-install (aco) (pull_request) Successful in 48s
CI / lint-test (pull_request) Failing after 1m24s
CI / skinny-install (bls) (pull_request) Successful in 30s
CI / skinny-install (ccw) (pull_request) Successful in 25s
Infra CI / notebooks (pull_request) Successful in 9s
CI / skinny-install (aco) (push) Successful in 52s
CI / skinny-install (api) (push) Successful in 27s
CI / lint-test (push) Failing after 1m24s
CI / skinny-install (bib) (push) Successful in 34s
CI / skinny-install (bcda) (push) Successful in 38s
CI / skinny-install (bls) (push) Successful in 28s
CI / skinny-install (ccw) (push) Successful in 34s
CI / skinny-install (cli) (push) Successful in 31s
CI / skinny-install (api) (pull_request) Successful in 33s
CI / skinny-install (bcda) (pull_request) Successful in 48s
CI / skinny-install (bib) (pull_request) Successful in 26s
CI / skinny-install (cli) (pull_request) Successful in 26s
CI / skinny-install (cms) (pull_request) Successful in 30s
CI / skinny-install (conf) (pull_request) Successful in 30s
CI / skinny-install (opps) (pull_request) Successful in 30s
CI / skinny-install (perf) (pull_request) Successful in 32s
CI / skinny-install (pfs) (pull_request) Successful in 33s
Infra CI / zotero (pull_request) Successful in 7s
CI / skinny-install (rex) (pull_request) Successful in 28s
Infra CI / docs (pull_request) Failing after 6s
Infra CI / api (pull_request) Successful in 6s
Infra CI / mc (pull_request) Successful in 6s
Script downloads the full text (PDF from govinfo.gov, TXT from federalregister.gov) for all 47 PFS rules in bib.sqlite and attaches them to their items via store.attach_file(). Constructs URLs from the FR document number embedded in each rule's federalregister.gov URL. Falls back to FR API metadata lookup when the URL is ambiguous. Skips items that already have attachments. Usage: uv run python dev/scripts/fetch_fr_attachments.py --dry-run uv run python dev/scripts/fetch_fr_attachments.py uv run python dev/scripts/fetch_fr_attachments.py --key ZJ3YCYYF refs #246 |
||
|
|
5be2749d8f
|
feat: pydoc pincite — structured Zotero citations in docstrings
Some checks failed
CI / skinny-install (bib) (push) Successful in 34s
CI / skinny-install (cli) (push) Successful in 32s
CI / skinny-install (cms) (push) Successful in 27s
CI / skinny-install (conf) (push) Successful in 29s
CI / skinny-install (opps) (push) Successful in 31s
CI / skinny-install (perf) (push) Successful in 30s
CI / skinny-install (pfs) (push) Successful in 31s
Infra CI / notebooks (push) Successful in 7s
CI / skinny-install (aco) (pull_request) Successful in 52s
CI / lint-test (pull_request) Failing after 1m18s
CI / skinny-install (api) (pull_request) Successful in 26s
CI / skinny-install (bcda) (pull_request) Successful in 38s
CI / skinny-install (bib) (pull_request) Successful in 36s
CI / skinny-install (bls) (pull_request) Successful in 26s
CI / skinny-install (cli) (pull_request) Successful in 34s
CI / skinny-install (cms) (pull_request) Successful in 29s
CI / skinny-install (conf) (pull_request) Successful in 28s
CI / skinny-install (opps) (pull_request) Successful in 30s
CI / skinny-install (perf) (pull_request) Successful in 33s
CI / skinny-install (pfs) (pull_request) Successful in 33s
Infra CI / notebooks (pull_request) Successful in 7s
Infra CI / zotero (pull_request) Successful in 6s
Infra CI / docs (pull_request) Failing after 7s
Infra CI / api (pull_request) Successful in 8s
CI / skinny-install (aco) (push) Successful in 51s
CI / lint-test (push) Failing after 1m16s
CI / skinny-install (api) (push) Successful in 26s
CI / skinny-install (bcda) (push) Successful in 35s
CI / skinny-install (bls) (push) Successful in 23s
CI / skinny-install (ccw) (push) Successful in 32s
Infra CI / zotero (push) Successful in 10s
CI / skinny-install (rex) (push) Successful in 25s
Infra CI / docs (push) Failing after 9s
Infra CI / api (push) Successful in 9s
Infra CI / mc (push) Successful in 6s
CI / skinny-install (ccw) (pull_request) Successful in 32s
CI / skinny-install (rex) (pull_request) Successful in 25s
Infra CI / mc (pull_request) Successful in 7s
Centerpiece feature: machine-parseable :pincite: directives in function docstrings that link to specific pages, sections, or paragraphs of bibliography items, enabling a knowledge graph from regulatory source to function to table to column. Format: :pincite:`JX46GQ9L p.14` — NDC validation rules New module src/bib/pincite.py with 4 layers: - Parse: regex extraction of :pincite: directives, AST-based discovery of @nw.narwhalify functions, locator classification (page/section/cfr/ fr/chapter/paragraph) - Store: pincites table in bib.sqlite with upsert, query, tag sync (pin: and fn: namespaces), foreign key validation - Graph: CitationGraph with nodes (functions, items), edges (pincite rows), functions_citing/items_cited_by queries, mermaid and networkx export - Inject: format_pincite_block for References sections, inject_pincites_into_source for AST-located non-destructive docstring modification Schema: new pincites table with unique index on (fn_path, item_key, locator), FK cascade to items. Tag: new Tag.pin(key, locator) factory -> pin:KEY/locator Store: upsert_pincite, list_pincites, delete_pincites on Store class. 39 tests covering parse, classify, store, graph, inject, and check. |