-
Notifications
You must be signed in to change notification settings - Fork 94
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
Fixing a couple type problems: how I would address most of #381 #382
Conversation
What do the empty 'typed' files do? |
|
The empty py.typed files are simply a python convention that allow typecheckers to use the type annotations of your package, when typechecking project that depend on your package. (Seems kind of redundant to me, but I didn't make the conventions!) https://peps.python.org/pep-0561/#packaging-type-information I think probably the mypy step is failing for some other reason, because the error message says
Which seems unrelated. I'll see if I can replicate this on my machine, later. Ah, hold on, the unrelated error message is a bug in mypy, so I will have to replicate this error on my machine, just to see what the actual error is! There are also other errors above in the steps, but quite possibly those are unrelated. |
Signed-off-by: wyattscarpenter <[email protected]>
Signed-off-by: wyattscarpenter <[email protected]>
…ypy deps Signed-off-by: wyattscarpenter <[email protected]>
Signed-off-by: wyattscarpenter <[email protected]>
I think the problems should be fixed now. It had to do with importing the type so that the typechecker could see it, while making sure not to cause a circular import. These commits can be squashed. |
Running integration tests, then will merge. |
* move py.typed to correct places https://peps.python.org/pep-0561/ says 'For namespace packages (see PEP 420), the py.typed file should be in the submodules of the namespace, to avoid conflicts and for clarity.'. Previously, when I added the py.typed file to this project, #382 , I was unaware this was a namespace package (although, curiously, it seems I had done it right initially and then changed to the wrong way). As PEP 561 warns us, this does create conflicts; other libraries in the databricks namespace package (such as, in my case, databricks-vectorsearch) are then treated as though they are typed, which they are not. This commit moves the py.typed file to the correct places, the submodule folders, fixing that problem. Signed-off-by: wyattscarpenter <[email protected]> * change target of mypy to src/databricks instead of src. I think this might fix the CI code-quality checks failure, but unfortunately I can't replicate that failure locally and the error message is unhelpful Signed-off-by: wyattscarpenter <[email protected]> * Possible workaround for bad error message 'error: --install-types failed (no mypy cache directory)'; see python/mypy#10768 (comment) Signed-off-by: wyattscarpenter <[email protected]> * fix invalid yaml syntax Signed-off-by: wyattscarpenter <[email protected]> * Best fix (#3) Fixes the problem by cding and supplying a flag to mypy (that mypy needs this flag is seemingly fixed/changed in later versions of mypy; but that's another pr altogether...). Also fixes a type error that was somehow in the arguments of the program (?!) (I guess this is because you guys are still using implicit optional) --------- Signed-off-by: wyattscarpenter <[email protected]> * return the old result_links default (#5) Return the old result_links default, make the type optional, & I'm pretty sure the original problem is that add_file_links can't take a None, so these statements should be in the body of the if-statement that ensures it is not None Signed-off-by: wyattscarpenter <[email protected]> * Update src/databricks/sql/utils.py "self.download_manager is unconditionally used later, so must be created. Looks this part of code is totally not covered with tests 🤔" Co-authored-by: Levko Kravets <[email protected]> Signed-off-by: wyattscarpenter <[email protected]> --------- Signed-off-by: wyattscarpenter <[email protected]> Co-authored-by: Levko Kravets <[email protected]>
see #381