The code example in docstring starts with `from graphene import Mutation` and defines a `class Mutation` later. This definition would shadow previously imported name and (which is more important) confuses a reader about usage of this class — one need to keep in mind that previous usage of `Mutation` is imported from graphene and have not been overridden yet.
This PR changes an import-from statement to an import statement, so `graphene.Mutation` is used explicitly. This approach is consistent with other code examples in docs (e. g. https://docs.graphene-python.org/en/v2.1.9/types/mutations/).
Another option is to change name of example class Mutation to something more clear (maybe SchemaMutation or RootMutation), but I'm not sure what name to choose.
Only docstring is updated, no code changes.
* Improve enum compatibility by supporting return enum as well as values and names
* Handle invalid enum values
* Rough implementation of compat middleware
* Move enum middleware into compat module
* Fix tests
* Tweak enum examples
* Add some tests for the middleware
* Clean up tests
* Add missing imports
* Remove enum compat middleware
* Use custom dedent function and pin graphql-core to >3.1.2
* Pass extra kwargs down the meta chain
* Rename name argument to allow custom name
* Reword error message
* Explicitly define kwargs
* Revert change to explicit kwargs
* name -> name_ for Enum __new__ function
* Revert "Update requirement for Query type in mutation docs (#1213)"
This reverts commit a9625dac0e.
* Add test to check that Query type must be defined
* Allow fast ObjectType creation based on dataclasses
* Fixed Python 3.8 integration
* Added repr and eq methods to ObjectType containers
* Reformatted code
* Fixed mypy issue
* Removed unused __init__ for ObjectType containers
* Use black in dataclasses
* Use latest black verison on precommit
The subclass polyfill was only needed for Python 2.7-3.5
Python 3.6 introduced the __init_subclass__, so since Graphene now requires Python 3.6+, this is no longer needed.
https://www.python.org/dev/peps/pep-0487/
* Added support for subscription
* Added pre-commit hooks for black and formatted changed files
* Checked with flake8
* Integrated changes from master.
Co-authored-by: Rob Blackbourn <rblackbourn@bhdgsystematic.com>
Co-authored-by: Rob Blackbourn <rtb@beast.jetblack.net>
* Add a helpful message to when a global_id fails to parse.
* Update test_node to have errors on test_node_query_incorrect_id
* Black the node.py file
* Remove func wrapper used in debugging get_resolver partial
* Update node.py
* Expand error messages
Co-authored-by: Jonathan Kim <jkimbo@gmail.com>
* The default_value of InputField should be INVALID
Since GraphQL 3.0 there is a distinction between None and INVALID (no value).
The tests captured the bug and are updated.
* Update minimum graphql-core version
* Use Undefined instead of INVALID
Co-authored-by: Jonathan Kim <jkimbo@gmail.com>
* Fix tests
* Add extra folders to make test command
* Update snapshots
* Add python 3.8 to test matrix
* Add black command to makefile and black dependency to setup.py
* Add lint command
* Run format
* Remove 3.8 from test matrix
* Add Python 3.8 to test matrix
* Update setup.py
* Propagate name, deprecation_reason arguments of relay.NodeField to Field
* Allow custom description in Node.Field and move ID description to ID argument
* Add test for Node.Field with custom name
* Add tests for description, deprecation_reason arguments of NodeField
* Pass all kwargs from NodeField to Field
* v3.0 - remove Python 2.x from build (#983)
* Change travis to only compile for p3.6+
* Changed tox to only run Python 3.6+
* Changed library classifiers to reflect support in Python 3.6+
* Changed version to 3.0.0 development
In [15]: get_version((3, 0, 0, "alpha", 0))
Out[15]: '3.0.dev20190601212304'
* Reorganize Tests (#985)
We no longer need a dedicated folder for Python3.6+ tests
We no longer need to check six.PY3 in tests
* Upgrade black to 19.3b0 (#987)
* Remove six dependency (#986)
* No one is using func_name
* Remove six simple usages
* Remove six requirement
* Remove `six.with_metaclass` calls
* pytest-asyncio should be a regular dependency now with Py3 move
* Change dependency to graphql-core-next (#988)
* Changed dependencies to core-next
* Converted Scalars
* ResolveInfo name change
* Ignore .venv
* Make Schema compatible with GraphQL-core-next
* Ignore more venv names and mypy and pytest caches
* Remove print statements for debugging in schema test
* core-next now provides out_type and out_name
* Adapt date and time scalar types to core-next
* Ignore the non-standard result.invalid flag
* Results are named tuples in core-next (immutable)
* Enum values are returned as dict in core-next
* Fix mutation tests with promises
* Make all 345 tests pass with graphql-core-next
* Remove the compat module which was only needed for older Py version
* Remove object as base class (not needed in Py 3)
* We can assume that dicts are ordered in Py 3.6+
* Make use of the fact that dicts are iterable
* Use consistent style of importing from pytest
* Restore compatibility with graphql-relay-py v3
Add adpaters for the PageInfo and Connection args.
* Avoid various deprecation warnings
* Use graphql-core 3 instead of graphql-core-next
* Update dependencies, reformat changes with black
* Update graphene/relay/connection.py
Co-Authored-By: Jonathan Kim <jkimbo@gmail.com>
* Run black on setup.py
* Remove trailing whitespace
* expose livehtml autobuild in Makefile
* add API documentation for schema
* document graphene core API
* fixes black lint
* Update graphene/types/union.py
Co-Authored-By: Jonathan Kim <jkimbo@gmail.com>
* Update graphene/types/argument.py
Co-Authored-By: Jonathan Kim <jkimbo@gmail.com>
* Update graphene/types/field.py
Co-Authored-By: Jonathan Kim <jkimbo@gmail.com>
* Update graphene/types/inputfield.py
Co-Authored-By: Jonathan Kim <jkimbo@gmail.com>
* add note about non-functional `interfaces` meta argument in mutation
* update with other virtual environment configuration
* pin autobuild
* format argument example code
* format enum input object and interface examples
* format enum mutation union examples
* revise documentation with imports, capitalization
* Replicate error with test
* Fix - ignore parameters we do not recognize
* Seperate Python3.6+ tests to their own folder
* lint
* Unused import
* Black formatting
* DateTime, Date, and Time now accept datetime.datetime, datetime.date, and datetime.time resp. inputs when used as variables
* Added tests and improved resilience against bad DateTime, Date, and Time inputs.
* Fixed string type checks too narrow for py2.7
* fixed some of pre-commit's complaints
This adds documentation in the API for `PageInfo`s and `Edges`.
This is useful to include in Graphene because `PageInfo` is always the same, and Edges always have the same format, so documentation for both can be created automatically.