config
PythonType Objects
class PythonType(str)
A string that represents a python type. Either a builtin type or a type from a module.
FreezeConfig Objects
class FreezeConfig(BaseSettings)
Configuration for freezing the generated pydantic models
This is useful for when you want to generate the models that are faux immutable and hashable by default. The configuration allows you to customize the way the models are frozen and specify which types (operation, fragment, input,...) should be frozen.
enabled
Enabling this, will freeze the schema
types
The core types (Input, Fragment, Object, Operation) to freeze
exclude
List of types to exclude from freezing
include
The types to freeze
convert_list_to_tuple
Convert GraphQL List to tuple (with varying length)
GeneratorConfig Objects
class GeneratorConfig(BaseSettings)
Configuration for the generator
This is the main generator configuration that allows you to customize the way the models are generated.
You need to specify the documents that should be parsed and the scalars that should be used.
domain
The domain of the GraphQL API ( will be set as a config variable)
out_dir
The output directory for the generated models
generated_name
The name of the generated file within the output directory
documents
The documents to parse. Setting this will overwrite the documents in the graphql config
verbose
Enable verbose logging
object_bases
The base classes for the generated objects. This is useful if you want to change the base class from BaseModel to something else
interface_bases
List of base classes for interfaces
always_resolve_interfaces
Always resolve interfaces to concrete types
scalar_definitions
Additional config for mapping scalars to python types (e.g. ID: str). Can use dotted paths to import types from other modules.
freeze
Configuration for freezing the generated models: by default disabled
additional_bases
Additional bases for the generated models as map of GraphQL Type to importable base class (e.g. module.package.Class)
additional_config
Additional config for the generated models as map of GraphQL Type to config attributes
force_plugin_order
Should the plugins be forced to run in the order they are defined
parsers
List of parsers to use. Parsers are used to parse the generated AST and translate it before it is converted to python code
plugins
List of plugins to use. Plugins are used to generated the python ast from the graphql documents, objects, etc.
processors
List of processors to use. Processor are used to enforce specific styles on the generated python code
stylers
List of stylers to use. Style are used to enforce specific styles on the generaded class or fieldnames.
Extensions Objects
class Extensions(BaseModel)
Wrapping class to be able to extract the tums configuraiton
turms
The turms configuration
GraphQLProject Objects
class GraphQLProject(BaseSettings)
Configuration for the GraphQL project
This is the main configuration for one GraphQL project. It is compliant with the graphql-config specification. And allows you to specify the schema and the documents that should be parsed.
Turm will use the schema and documents to generate the python models, according to the generator configuration under extensions.turms
schema_url
The schema url or path to the schema file
bearer_token
The bearer token to use for the schema if retrieving it from a remote url
documents
The documents (operations,fragments) to parse
extensions
The extensions configuration for the project (here resides the turms configuration)
GraphQLConfigMultiple Objects
class GraphQLConfigMultiple(BaseSettings)
Configuration for multiple GraphQL projects
This is the main configuration for multiple GraphQL projects. It is compliant with the graphql-config specification for multiple projec.
projects
The projects that should be parsed. The key is the name of the project and the value is the graphql project
GraphQLConfigSingle Objects
class GraphQLConfigSingle(GraphQLProject)
Configuration for a single GraphQL project
This is the main configuration for a single GraphQL project. It is compliant with the graphql-config specification for a single project.