Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run mypy in pre-commit, through a pyenv/virtualenv enabler wrapper script #30922

Merged
merged 1 commit into from Feb 1, 2020

Conversation

@scop
Copy link
Contributor

scop commented Jan 17, 2020

Description:

I believe this would fix the issues we're having and kind of poorly working around with mypy needing our venv active but it might not be, e.g. when committing from a GUI tool not launched from a venv-activated shell. Supports pyenv(-virtualenv) and venvs in a couple of typical dirs, falls back gracefullly if no venv found.

Related issue (if applicable): fixes #

Pull request with documentation for home-assistant.io (if applicable): home-assistant/home-assistant.io#<home-assistant.io PR number goes here>

Example entry for configuration.yaml (if applicable):

Checklist:

  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
  • Untested files have been added to .coveragerc.

If the code does not interact with devices:

  • Tests have been added to verify that the new code works.
@scop scop force-pushed the scop:pre-commit-wrap branch from 7e0f16f to eb95a5e Jan 18, 2020
@scop

This comment has been minimized.

Copy link
Contributor Author

scop commented Feb 1, 2020

@balloob would you happen to have time to check this out? I'm not aware of anything I've missed, and I think we could just try it out and see if folks run into any issues. The virtualenvs must be either managed by pyenv-virtualenv, or be located in venv/ or .venv/ but I think that's a reasonable assumption an could be extended.

In addition to getting more mypy coverage on dev systems, we'd avoid problems when people are forgetting to address the -all config when making pre-commit changes; we're already seeing that with some smaller changes, addition of codespell etc.

@balloob

This comment has been minimized.

Copy link
Member

balloob commented Feb 1, 2020

I run my venv in root of repo. So am I supported?

@balloob

This comment has been minimized.

Copy link
Member

balloob commented Feb 1, 2020

Ah see that case is covered. Looks good

@balloob balloob merged commit dc5ca46 into home-assistant:dev Feb 1, 2020
10 checks passed
10 checks passed
CI Build #20200118.48 succeeded
Details
CI (FullCheck Mypy) FullCheck Mypy succeeded
Details
CI (FullCheck Pylint) FullCheck Pylint succeeded
Details
CI (Overview CheckFormat) Overview CheckFormat succeeded
Details
CI (Overview Lint) Overview Lint succeeded
Details
CI (Overview Validate) Overview Validate succeeded
Details
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
Details
cla-bot Everyone involved has signed the CLA
codecov/patch Coverage not affected when comparing a93088d...eb95a5e
Details
codecov/project 94.58% (target 90%)
Details
@scop scop deleted the scop:pre-commit-wrap branch Feb 1, 2020
@scop

This comment has been minimized.

Copy link
Contributor Author

scop commented Feb 1, 2020

Thanks!

@lock lock bot locked and limited conversation to collaborators Feb 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.