graphql-python / graphene

GraphQL framework for Python
http://graphene-python.org/
MIT License
8.1k stars 827 forks source link

Subclass built-in scalars without creating new GraphQL type #1553

Open RJPercival opened 5 months ago

RJPercival commented 5 months ago

Is your feature request related to a problem? Please describe. I'd like to be able to customise serialization logic for some scalars, e.g. a NormalizedDecimal that inherits from Decimal but calls .normalize() on the value during serialization. Unfortunately, this results in the GraphQL schema containing a new NormalizedDecimal scalar that clients don't know how to deserialize.

Describe the solution you'd like I'd like the type to still be that of the superclass in the schema, e.g. Decimal in the above example.

Describe alternatives you've considered I've tried overriding Scalar.get_type() to return the type of the superclass, but then the subclass doesn't function as intended, e.g. the custom serialization logic doesn't get invoked. I've also tried setting Meta.name to that of the superclass, but that also results in the custom serialization logic not being invoked.