Ariadne Extended
Ariadne comes with a few contrib modules to support integration with Django. This module acts as an additional Django contrib module to reduce some of the boilerplate when integrating with Django.
It copies and follows some of the conventions defined in Django Rest Framework, effort will be made to provide API compatibility with certain DRF extension modules that are relevant.
The overall goal is to provide often re-used modules and GrpahQL schema, so one doesn't have to re-create them per project.
Supported DRF modules
- Pagination classes
- Permissions classes
- Serializer classes ( may not removed and made generic )
- Throttling
- django-filters filter backend
Supported Django versions
2.2.*, 3.0.*
ariadne_extended.graph_loader
auto schema, resolver and types loader
Searches for types and resolvers modules as well as any .graphql files defined within any installed Django application.
Once found they can be used to build the final schema and resolver solution for your ariadne application.
ariadne_extended.payload
Schema, types and resolvers for the graphql Payload interface.
Currently the FieldErrors are highly coupled to Django rest framework field validation exceptions.
ariadne_extended.cursor_pagination
Rename to relay_pagination maybe?
Contains the PageInfo graphql type and Connection interface for utilizing cursor based pagination.
TODO: Should we provide a input type for cursor pagination instead of just copying pagination args info paginate-able list fields??
ariadne_extended.filters
Filter backend interface to pass filter arguments to django-filter.
ariadne_extended.resolvers
ABC for Class Based Resolvers and model resolvers that utilize DRF serializers for saving data. This is likely to change in the future.
ariadne_extended.uuid
DRF UUID field scalar for use with models that may use a UUID as their primary key, or other UUID fields.
Contrib
django-waffle in ariadne_extended.contrib.waffle_graph
Adds resolvers, schema and types that can be utilized to query the any waffle flags, samples and switches.
Checklist
- Get rid of dependency on DRF?
- Investigate the need for a serializer ( nested data reliance? )
- Organize code into multiple Django apps to select desired componentry
- Documentation and examples
- Better support of lists of enums when used with django-filters ( currently expects comma sep list string, not a list of enums from input field resolver )
- License and make public
- Deployment automation
- Mixins are highly coupled to serializers, should they still be?
Release files for ariadne-extended 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ariadne-extended-0.2.5.tar.gz | 22.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ariadne_extended-0.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.2 kB
Release files / ariadne-extended-0.2.5.tar.gz
| Download URL | ariadne-extended-0.2.5.tar.gz |
|---|---|
| Size | 22.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b740a8ac437a73cc012a803ae39f77318bd4f927c849b2d3d7b3c566ae85f0fc
|
|
BLAKE2b-256 checksum How to use checksums |
7e2ed236ef9e9ec14a670d371f9663f008d829a362afa512dd86754871b8435f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.5 CPython/3.7.4 Darwin/20.5.0
|
Release files / ariadne_extended-0.2.5-py3-none-any.whl
| Download URL | ariadne_extended-0.2.5-py3-none-any.whl |
|---|---|
| Size | 28.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b7a07df92b49d344a3dd632556b9e38a445560646fc21d0b230f0933ef2f7231
|
|
BLAKE2b-256 checksum How to use checksums |
8bb9fce3b9df33a99b9a6b957039ebee3c89fb0cdcd83d3566243a10cafeb87e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.5 CPython/3.7.4 Darwin/20.5.0
|