Skip to content

ci: run mypy on tests and add initial typing for ssh and tui tests#684

Open
ishan372or wants to merge 4 commits intoneuroinformatics-unit:mainfrom
ishan372or:ci/mypy-tests-typing
Open

ci: run mypy on tests and add initial typing for ssh and tui tests#684
ishan372or wants to merge 4 commits intoneuroinformatics-unit:mainfrom
ishan372or:ci/mypy-tests-typing

Conversation

@ishan372or
Copy link
Contributor

Description

What is this PR

  • Bug fix
  • Addition of a new feature
  • Other

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-files locally

Is this a breaking change?

No

Does this PR require an update to the documentation?

No

Checklist:

  • The code has been tested locally
  • Tests have been added to cover all new functionality
  • The documentation has been updated to reflect any changes
  • The code has been formatted with pre-commit

Copy link
Member

@JoeZiminski JoeZiminski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cool I've not seen this syntax before, what does it do?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

!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.

@JoeZiminski
Copy link
Member

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!

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.

2 participants