Skip to content

build(deps): require qsv-client>=0.2.0 - #348

Merged
jqnatividad merged 1 commit into
mainfrom
deps/qsv-client-0.2.0
Oct 9, 2026
Merged

jqnatividad merged 1 commit into
mainfrom
deps/qsv-client-0.2.0

Conversation

@jqnatividad

@jqnatividad jqnatividad commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Raises the floor to qsv-client>=0.2.0 (release notes). With >=0.1.0, a fresh install already gets 0.2.0, but an environment that has 0.1.0 installed keeps it on pip install -r requirements.txt.

The fix that matters for DP+: a qsv timeout is bounded again even when a process qsv started (for example one spawned by describegpt in the AI suggestions stage) leaves the process group and keeps the output pipes open. Before, the job waited for that process to exit. The 0.2.0 Windows support doesn't affect DP+.

No DP+ code changes. QSVCommand only uses Qsv(binary=, timeout=), run(check=False, text=) and error_from_run, none of which changed. The tests that mock qsv_client._process.run_sync / RawResult still work, since both keep the same signatures.

One test fix

test_a_failed_search_raises_job_error patched pathlib.Path.absolute process-wide (pii_screening.Path is pathlib.Path) to point the PII regex file at a missing path. qsv-client 0.2.0 resolves the qsv binary with Path.absolute(), so the patch also turned the qsv binary into the missing regex file. The test then got FileNotFoundError instead of JobError. It now moves pii_screening.__file__ into tmp_path, which makes only the default regex path missing. It passes on both 0.1.0 and 0.2.0.

Test plan

Run in a scratch environment (CKAN 2.11.6, Python 3.11, qsv 24.0.0), with CKAN's pytest plugins disabled because these unit tests don't need a CKAN .ini:

  • tests/test_qsv_command_client.py and tests/test_ai_suggestions.py: 57 passed on qsv-client 0.2.0
  • tests/test_pii_screening_search.py: 21 passed on both 0.1.0 and 0.2.0
  • Full unit suite (tests/ --ignore=tests/integration): the same set of failures on 0.1.0 and 0.2.0. All of them need the Prefect/CKAN services this environment lacks, and none are new.
  • CI

🤖 Generated with Claude Code

qsv-client 0.2.0 bounds a timeout even when a process qsv started (e.g.
one spawned by describegpt) leaves the process group and keeps the
output pipes open; with >=0.1.0, an environment that already has 0.1.0
installed keeps it on `pip install -r requirements.txt`. No DP+ code
changes are needed: QSVCommand only uses Qsv(binary=, timeout=),
run(check=False, text=) and error_from_run, all unchanged.

test_a_failed_search_raises_job_error patched pathlib.Path.absolute
process-wide to point the PII regex file at a missing path. qsv-client
0.2.0 resolves the qsv binary with Path.absolute(), so the patch also
turned the binary into the missing regex file (FileNotFoundError instead
of JobError). It now moves pii_screening.__file__ into tmp_path instead,
which makes only the default regex path missing. Passes on 0.1.0 and
0.2.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jqnatividad
jqnatividad merged commit 93cca7b into main Oct 9, 2026
3 checks passed
@jqnatividad
jqnatividad deleted the deps/qsv-client-0.2.0 branch October 9, 2026 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant