Repository navigation
0.3.0
⚠️ 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
AsyncQsvtimeouts keep stderr.QsvTimeout.stderrnow includes what qsv wrote before the timeout, as it already did forQsv. Previously, stderr already read when the timeout fired was lost. (#6)- No bare
ValueErrorfrom capability detection. If the binary's version can't be determined,capabilities(andrunwithmin_version) raiseQsvError. If--capabilitiesreturns JSON of an unexpected shape or without a usable version, the client falls back to--version. (#7, #8) - Windows:
binary=/QSV_BINpaths without an extension.C:/tools/qsvnow findsC:/tools/qsv.exe, trying eachPATHEXTextension. (#8) - The
QsvErrordocstring now names the argv attribute correctly:args_run. (#7)
Under the hood
- New tests exercise qsv's JSON error format and
--capabilitiesend 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
--versionfallbacks 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