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

CV2 stub defines type aliases with circular references #213

Closed
erictraut opened this issue Jun 6, 2022 · 1 comment · Fixed by #292
Closed

CV2 stub defines type aliases with circular references #213

erictraut opened this issue Jun 6, 2022 · 1 comment · Fixed by #292
Assignees
Labels
bug Something isn't working

Comments

@erictraut
Copy link
Contributor

The cv2/__init__.pyi defines several type aliases that are invalid because they refer to themselves. This leaves them Unknown.

Here are a few examples:

VariationalRefinement = _mod_cv2.VariationalRefinement
VideoCapture = _mod_cv2.VideoCapture
VideoWriter = _mod_cv2.VideoWriter

Since _mod_cv2 refers back to this same type stub, these are effectively equivalent to:

VariationalRefinement = VariationalRefinement
VideoCapture = VideoCapture
VideoWriter = VideoWriter

Pyright correctly flags these as errors in the stub. They should be fixed.

@Avasam
Copy link
Contributor

Avasam commented Jun 13, 2023

For anyone else landing here:

Given that opencv can now generates python stubs and opencv-python has been updated to ship them, you can try the in-development version using pip install git+https://github.com/opencv/opencv-python.git.

You can set the appropriate environment variables first if you'd like to install a specific package (like headless, contrib or healdless-contrib):

ENABLE_CONTRIB=1
ENABLE_HEADLESS=1

It should work as-is with pyright and mypy, but for Pylance you'll have to remove the bundled stubs every time you update the extension. It can be found at: %HOMEPATH%\.vscode\extensions\ms-python.vscode-pylance-<VERSION>\dist\bundled\stubs\cv2-stubs (where <VERSION> is your current Pylance version).

If you have an issue with those generated stubs, you can raise it upstream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants