Skip to content

0.3.0

Choose a tag to compare

@jqnatividad jqnatividad released this 10 Oct 18:16
· 12 commits to main since this release
3105e48

⚠️ Behavior change: relative stdout_path now follows cwd=

A relative stdout_path is now resolved against the client's cwd=, the same way a relative --output path given to qsv is. Previously it was resolved against Python's working directory.

qsv = Qsv(cwd="/data")
qsv.run("stats", "in.csv", stdout_path="out.csv")
# 0.2.0: writes ./out.csv (relative to where Python runs)
# 0.3.0: writes /data/out.csv (next to in.csv)

This raises no error. If your code combines cwd= with a relative stdout_path, its output file will be written somewhere else after you upgrade. To keep the old location, pass an absolute path. (#7)

Fixed

  • AsyncQsv timeouts keep stderr. QsvTimeout.stderr now includes what qsv wrote before the timeout, as it already did for Qsv. Previously, stderr already read when the timeout fired was lost. (#6)
  • No bare ValueError from capability detection. If the binary's version can't be determined, capabilities (and run with min_version) raise QsvError. If --capabilities returns JSON of an unexpected shape or without a usable version, the client falls back to --version. (#7, #8)
  • Windows: binary= / QSV_BIN paths without an extension. C:/tools/qsv now finds C:/tools/qsv.exe, trying each PATHEXT extension. (#8)
  • The QsvError docstring now names the argv attribute correctly: args_run. (#7)

Under the hood

  • New tests exercise qsv's JSON error format and --capabilities end to end, plus binary discovery. The latest qsv release (24.0.0) supports neither format yet, so these paths were previously only tested at the parser level.
  • CI also runs the integration tests against a pinned qsv 24.0.0, so the text-error and --version fallbacks stay covered once newer qsv releases support JSON.
  • The publish workflow refuses to upload if the release tag doesn't match the package version.

Full changelog: 0.2.0...0.3.0