class

Analyzer::Python::Graphene

Inherits Analyzer::Python::PythonEngine < Analyzer < FileHelper < Reference < Object

Constants

CLIENT_ID_BASE = /ClientIDMutation|FormMutation|SerializerMutation/
CONNECTION_ARGS = [{name: "before", type: "String"}, {name: "after", type: "String"}, {name: "first", type: "Int"}, {name: "last", type: "Int"}]
CONNECTION_FIELDS = ["ConnectionField", "RelayConnectionField", "DjangoConnectionField", "DjangoFilterConnectionField", "SQLAlchemyConnectionField", "MongoengineConnectionField"] of ::String
DICT_ENTRY = /\A["'](\w+)["']\s*:\s*(.+)\z/m
NOT_ARGS = ["description", "resolver", "deprecation_reason", "default_value", "args"] of ::String

An extra keyword argument is a GraphQL argument only when it holds a mounted type (a call: graphene rejects anything else), so name="x", required=True and app-specific options are not; these are options that may still be spelled as a call (description=_("...")).

TAGGER = "graphene_analyzer"
WRAPPERS = ["Field", "Argument", "InputField", "Dynamic", "DjangoListField"] of ::String

Class methods

tech_name
Source

Instance methods

analyze
Source
tech

Instance-side view of the same declaration. The per-file rescues live on this base class, which has no way to name the analyzer that is running inside them, so a skipped file could not be attributed to a tech. Deriving it from analyzer_for keeps the name written exactly once.

Source

Nested types