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
Merged

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

merged 1 commit into from Feb 1, 2020

Conversation

scop
Copy link
Member

@scop 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.

@probot-home-assistant probot-home-assistant bot added the small-pr PRs with less than 30 lines. label Jan 17, 2020
@scop
Copy link
Member 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
Copy link
Member

balloob commented Feb 1, 2020

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

@balloob
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
@scop scop deleted the pre-commit-wrap branch February 1, 2020 21:09
@scop
Copy link
Member 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.
Labels
cla-signed small-pr PRs with less than 30 lines.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants