Let's say I have a graphql query that takes a parameter which is named after a reserved python keyword (e.g: from). Following python conventions, this is how I would declare it:
Here, name is used so that a user don't have to deal with the ugly underscore. Which is nice. However, there is a problem in the resolver:
def resolve_some_query(_, args, context, infos):
args["from_"] # KeyError ! Because the arg name is 'from' which is not what I expect.
Now this is not a big deal, I could just use args["from"] when I need the value. But it becomes a problem when I want to pass all the parameters to an other function like this:
Because my function signature would looks like this and cause a syntax error:
def call_some_handler(from=None):
pass
I think trailing underscores should be removed when calling graphene.utils.str_converters.to_snake_case this would allow usage of python reserved keyword as parameters name while not breaking compatibility. If you guys agree with this I can make a PR during the weekend.
Hi !
Let's say I have a graphql query that takes a parameter which is named after a reserved python keyword (e.g:
from
). Following python conventions, this is how I would declare it:Here,
name
is used so that a user don't have to deal with the ugly underscore. Which is nice. However, there is a problem in the resolver:Now this is not a big deal, I could just use
args["from"]
when I need the value. But it becomes a problem when I want to pass all the parameters to an other function like this:Because my function signature would looks like this and cause a syntax error:
I think trailing underscores should be removed when calling
graphene.utils.str_converters.to_snake_case
this would allow usage of python reserved keyword as parameters name while not breaking compatibility. If you guys agree with this I can make a PR during the weekend.