Package: gqlspection
GQLSpectionCLI tool and Python 2.7+ compatible library for parsing GraphQL introspection query and automatic query generation.InstallationGQLSpection is available on PyPI (Python 2.7 and Python 3+ versions are supported).Regular installation:$pipinstallgqlspection[cli]Usage of the CLI toolLoad schema from file and print all query and mutation names in the schema:$gqlspection-fschema.json-lallSend introspection query and generate queries & mutations for everything:$gqlspection-uhttps://.../graphqlGenerate a single query:$gqlspection-uhttps://.../graphql-qsomethingGenerate a number of mutations:$gqlspection-fschema.json-mone,two,threeFull help$ ./gqlspection -h
Usage: gqlspection [OPTIONS]

Options:
  -f, --file TEXT      File with the GraphQL schema (introspection JSON).
  -u, --url TEXT       URL of the GraphQL endpoint with enabled introspection.

  -l, --list TEXT      Parse GraphQL schema and list queries, mutations or
                       both of them (valid values are: 'queries', 'mutations'
                       or 'all').

  -q, --query TEXT     Only print named queries (argument is a comma-separated
                       list of query names).

  -m, --mutation TEXT  Only print named mutations (argument is a comma-
                       separated list of mutation names).

  -Q, --all-queries    Only print queries (by default both queries and
                       mutations are printed).

  -M, --all-mutations  Only print mutations (by default both queries and
                       mutations are printed).

  -h, --help           Show this message and exit.Usage of the Python libraryImport the library:>>>fromgqlspectionimportGQLSchemaSend introspection query and print a single query:>>>schema=GQLSchema(url='https://.../graphql')>>>query=schema.generate_query('SOME_TYPE')>>>print(query.str)Parse introspection schema from a JSON file and print all mutations:>>>frompathlibimportPath>>>importjson>>>data=json.loads(Path(FILE_NAME).read_text())>>>schema=GQLSchema(json=data)>>>forfieldinschema.mutation.fields:>>>print(schema.generate_mutation(field).str())ContributingInstallation with development dependencies from git repo:$gitclonehttps://github.com/doyensec/GQLSpection.git
$cdGQLSpection
$virtualenvvenv
$../venv/bin/activate
$pipinstall-e".[dev]"$# Only needed in ZSH to locate newly added binaries:$rehash
$pre-commitinstallUsing runmeInstallrunmefromhttps://github.com/sigoden/runme(throughcargo install --force runmeor by grabbing a binary
release). Get a list of preinstalled development commands by runningrunmein the source dir:$ runme
USAGE: Runmefile.sh <COMMAND>

COMMANDS:
  deps                    Install development dependencies
  test                    Run tests
  jython.install          Install Jython to jython/
  jython.clean            Cleanup after Jython
  jython.test             Run tests to check Jython compatibility [aliases: jython]
  lint                    Run linters
  clean                   Cleanup bytecode and cache files
  coverage.calculate      Run pytest with coverage calculation [aliases: coverage]
  coverage.github_action  Generate comment body with coverage for Github Action
  build                   Build the python release (files go to dist/)
  publish.pypi            Publish release to PyPI
  publish.github          Publish release to Github
  release                 Make a new release