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

PyCharm warning: Expected type 'ObjectType', got 'Type[Query]' instead #1100

Closed
denizdogan opened this issue Nov 22, 2019 · 16 comments
Closed

Comments

@denizdogan
Copy link

class Query(graphene.ObjectType):
    # ...

schema = Schema(query=Query)

image

Related to #814 which was automatically closed due to staleness.

Any ideas?

@KingDarBoja
Copy link

Hello @denizdogan

What PyCharm version do you own?

@denizdogan
Copy link
Author

@KingDarBoja I use PyCharm 2019.2.4 Professional Edition

@KingDarBoja
Copy link

I can confirm such behaviour on my PyCharm too;

Warning Query Type PyCharm GraphQL

More info:

PyCharm 2019.2.5 (Community Edition)
Build #PC-192.7142.56, built on November 19, 2019
Runtime version: 11.0.4+10-b304.77 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 976M
Cores: 4
Registry: 
Non-Bundled Plugins: org.intellij.plugins.markdown, Docker

@stale
Copy link

stale bot commented Mar 4, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Mar 4, 2020
@denizdogan
Copy link
Author

Don't automatically close this please

@stale stale bot removed the wontfix label Mar 4, 2020
Cito added a commit that referenced this issue Mar 4, 2020
@KingDarBoja
Copy link

@denizdogan Looks like the issue got solved but will be released on Graphene v3-alpha versions instead of v2, just saying, the final word is under Graphql-Python Team 😄

@tmladek
Copy link

tmladek commented Apr 22, 2020

Still present on 2020.1, any news?

@AndHam89
Copy link

I can confirm that this is still present in 2020.1 professional. It would be helpful it it gets solved.

@formigone
Copy link

Came across this looking for the same PyCharm warning, but in a different situation. I'm not a user of this repo, so I won't take the time to locate the code and PR the simple fix for it.

TL/DR:

Whenever you see PyCharm complain with

Expected type X, got Type[X] instead

that's a possible type hinting misunderstanding. See this for more information.

In summary:

# Wrong
class Schema:
   def __init__(self, query: MyClass):

# Right
from typing import Type

class Schema:
   def __init__(self, query: Type[MyClass]):

@AndHam89
Copy link

AndHam89 commented May 1, 2020

Thanks for the hint. I changed the type specification and PyCharm does not anymore complain about a type mismatch. Thanks formigone.

@tobiasfeil
Copy link

@AndHam89 Where did you change the type specification? In the source of graphene? It's still complaining for me

@AndHam89
Copy link

@tobiasfeil You need to change your type specification in you Python code as formigone pointed out. If you refer to the type of a class you need to use the syntax Type[MyClass] if you have a parameter which is of type MyClass.

@tobiasfeil
Copy link

Thank you for the reply! I'm sorry I still don't understand how to do this, since I'm not defining the class Schema in my own code. All I'm doing is using graphene.Schema:
image
So I don't know where the type hint should go, since there's no class Schema in my code... Would you be so kind to tell me how you accomplished this? Did you subclass graphene.Schema? Thanks in advance :)

@Abhi904485
Copy link

Abhi904485 commented Sep 7, 2020

Thank you for the reply! I'm sorry I still don't understand how to do this, since I'm not defining the class Schema in my own code. All I'm doing is using graphene.Schema:
image
So I don't know where the type hint should go, since there's no class Schema in my code... Would you be so kind to tell me how you accomplished this? Did you subclass graphene.Schema? Thanks in advance :)

change the doc present in graphene/types/schema.py

replace:

query (ObjectType): Root query ObjectType. Describes entry point for fields to read
data in your Schema.

with

query (Type[ObjectType]): Root query ObjectType. Describes entry point for fields to read
data in your Schema.

After that problem will resolve

evank28 added a commit to evank28/graphene that referenced this issue Nov 14, 2020
Fixing a Type Warning that resolves graphql-python#1100 for PyCharm IDE users.
@qlibp
Copy link

qlibp commented Jul 17, 2021

Thank you for the reply! I'm sorry I still don't understand how to do this, since I'm not defining the class Schema in my own code. All I'm doing is using graphene.Schema:
image
So I don't know where the type hint should go, since there's no class Schema in my code... Would you be so kind to tell me how you accomplished this? Did you subclass graphene.Schema? Thanks in advance :)

change the doc present in graphene/types/schema.py

replace:

query (ObjectType): Root query ObjectType. Describes entry point for fields to read data in your Schema.

with

query (Type[ObjectType]): Root query ObjectType. Describes entry point for fields to read data in your Schema.

After that problem will resolve

To be concrete, it's weird that pycharm will take the comment as a source for typing checking

@erikwrede
Copy link
Member

New issue for type hinting is #1454. Will start addressing this soon.

@erikwrede erikwrede closed this as not planned Won't fix, can't repro, duplicate, stale Aug 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants