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

Mark packages as typed #305

Open
jooola opened this issue Feb 9, 2023 · 5 comments
Open

Mark packages as typed #305

jooola opened this issue Feb 9, 2023 · 5 comments

Comments

@jooola
Copy link

jooola commented Feb 9, 2023

Describe the bug

Mypy is failing because the packages aren't marked as typed (missing py.typed file), but it seems that most of the packages have the type definitions.

Could the packages be marked as typed ?

To Reproduce

from testcontainers.compose import DockerCompose

with DockerCompose("."):
  pass
$ mypy tests
tests/e2e_test.py:12: error: Skipping analyzing "testcontainers.compose": module is installed, but missing library stubs or py.typed marker  [import]
tests/e2e_test.py:12: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports

@tillahoffmann
Copy link
Collaborator

Yes, that should definitely be possible. Would you be up for setting up a PR? We could also add mypy checks in the same PR.

totallyzen added a commit that referenced this issue Feb 21, 2024
# change

advances #305
- replace `flake8` with `ruff` and install `pre-commit`
- run linters as part of a separate job (to separate linting from
testing)
- add a draft of `mypy` setup but not try to fix stuff because it's a
complicated procedure to fix everything - this PR already reformatted a
lot of code

---------

Co-authored-by: Balint Bartha <totallyzen@users.noreply.github.com>
Co-authored-by: David Ankin <daveankin@gmail.com>
@alexanderankin
Copy link
Collaborator

@jooola if you have any feedback about #504 it is welcome!

@brandur
Copy link

brandur commented Jun 30, 2024

Does anyone know off hand whether this one was ever resolved?

I'm kind of a Python noob and was trying to add type checking on a project's tests. I got almost all of it working, except for testcontainers:

tests/conftest.py:5: error: Skipping analyzing "testcontainers.postgres": module is installed, but missing library stubs or py.typed marker  [import-untyped]

Looking in the file I'm using, it is typed, but I think the problem is that it's not declaring itself as such. Fixing this might be as simple as adding a py.typed file to the project.

@alexanderankin
Copy link
Collaborator

there is a pr here but its not a top priority: #504 - almost immediately after i opened there were two pr's with minor typing fixes that conflicted with it, and i did not rebase in time. at this point it would be not only harder to rebase but also there are new modules that need types/mypy checking.

contributions would be accepted for it.

@brandur
Copy link

brandur commented Jun 30, 2024

Thanks. My Python skills are such that I'm already having enough trouble just wrangling types in one much smaller package so I don't think I'll try my hand at this yet, but it's good to know I'm not missing something.

In case this helps anyone else, here's a block that can be placed in mypy.ini to flag it as ignored so that MyPy can pass for everything else:

# testcontainers is typed, but it doesn't correctly declare itself as such.
# Hopefully it can be fixed one day:
#
# https://github.com/testcontainers/testcontainers-python/issues/305
[mypy-testcontainers.*]
ignore_missing_imports = True

alexanderankin pushed a commit that referenced this issue Sep 8, 2024
Lets try and continue the journey from #305 
(the goal is to get core marked as typed)

```
poetry run mypy --config-file pyproject.toml core/tests/test_auth.py core/testcontainers/core/auth.py
Success: no issues found in 2 source files
```
alexanderankin pushed a commit that referenced this issue Sep 8, 2024
Supports:
#305
Related : #691 

```bash
poetry run mypy --config-file pyproject.toml core/testcontainers/core/config.py core/testcontainers/core/utils.py
Success: no issues found in 2 source files
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants