ci: run mypy on tests and add initial typing for ssh and tui tests#684
ci: run mypy on tests and add initial typing for ssh and tui tests#684ishan372or wants to merge 4 commits intoneuroinformatics-unit:mainfrom
Conversation
JoeZiminski
left a comment
There was a problem hiding this comment.
Thanks @ishan372or! please see review, I think instead of using Any we can narrow this to Datashuttle class. If we type hint the output of a function, or a single input, we should probably type the entire function (all inputs and outputs).
| f"docker build failed with: STDOUT-{build_output.stdout} " | ||
| f"STDERR-{build_output.stderr}" | ||
| f"docker build failed with: STDOUT-{build_output.stdout!r} " | ||
| f"STDERR-{build_output.stderr!r}" |
There was a problem hiding this comment.
cool I've not seen this syntax before, what does it do?
There was a problem hiding this comment.
!r on f-string calls repr() instead of str(). In this case of stdout and stderr mypy raises a str-bytes-safe warning when formatting bytes directly into a string. Using repr() makes the conversion explicit which satisfies mypy's check.
259df70 to
ec6d572
Compare
for more information, see https://pre-commit.ci
|
Hi @ishan372or apologies for the delay with this, we are just planning a big release in the next few days. After which this will we can merge this, thanks! |
Description
What is this PR
Why is this PR needed?
Tests were previously excluded from mypy to avoid maintenance burden.
To evaluate feasibility and improve readability where helpful, this PR enables mypy checking for tests and adds an initial, minimal set of type hints. This helps surface real typing issues early and establishes patterns for future incremental improvements.
What does this PR do?
Enables mypy checking for test files.
Adds minimal, targeted type hints to selected SSH test files.
References
Related issue: #532 – Extend type hints to tests
How has this PR been tested?
Ran
pre-commit run mypy --all-fileslocallyIs this a breaking change?
No
Does this PR require an update to the documentation?
No
Checklist: