Generate a FullStack Playground using GraphQL and FastAPI 🚀

Overview

fastql

FastQL - FastAPI GraphQL Playground

Generate a FullStack playground using FastAPI and GraphQL and Ariadne 🚀 .

This Repository is based on this Article Getting started with GraphQL in Python with FastAPI and Ariadne, Read Article to know how to use it.

Overview

  • FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.
  • GraphQL used to create a schema to describe all the possible data that clients can query through that service. A GraphQL schema is made up of object types, which define which kind of object you can request and what fields it has.
  • Ariadne is a Python library for implementing GraphQL servers using schema-first approach.

Features

  • Full Docker integration (Docker based).
  • GraphQL playground based on Graphene and Ariadne.
  • Docker Compose integration and optimization for local development.
  • Production ready Python web server using Uvicorn.
  • Secure password hashing by default.
  • JWT token authentication.
  • SQLAlchemy database integration using PostgreSQL.
  • Alembic migrations for database schema.
  • rabbitMQ (asynchronous) message broker.
  • API tests based on Pytest, integrated with Docker, so you can test the full API interaction, independent on the database.

Getting Started

Prerequisites

  • Python 3.8.6 or higher.
  • Docker.

Project setup

# clone the repo
$ git clone https://github.com/obytes/fastql.git

# move to the project folder
$ cd fastql

Creating virtual environment

  • Create a virtual environment using virtualenv.
# creating virtual environment
$ virtualenv venv

# activate virtual environment
$ source venv/bin/activate

# install all dependencies
$ pip install -r requirements.txt

Running the Docker Container

  • We have the Dockerfile created in above section. Now, we will use the Dockerfile to create the image of the FastAPI app and then start the FastAPI app container.
  • Using a preconfigured Makefile tor run the Docker Compose:
# Pull the latest image
$ make pull

# Build the image
$ make build

# Run the container
$ make start

Note: Running the test on the Container CLI pytest or when you use the command make start the container will be started and the tests will be run before the Uvicorn server is started.

Environment variables

SECRET_KEY= #secret key for JWT token
QUEUE= #rabbitMQ queue name

change all the environment variables in the .env.example and don't forget to rename it to .env.

Preconfigured Packages

Includes preconfigured packages to kick start FastQL by just setting appropriate configuration.

Package Usage
FastAPI FastAPI is a modern, fast (high-performance), web framework for developing APIs with Python 3.6+ based on standard Python type hints.
GraphQL GraphQL used to create a schema to describe all the possible data that clients can query through that service. A GraphQL schema is made up of object types, which define which kind of object you can request and what fields it has.
Ariadne Ariadne is a Python library for implementing GraphQL servers using schema-first approach.

Contributing

  • If you have any questions or suggestions, please open an issue or create a pull request.
  • If you are a contributor, please check out:
    • Is your pull request or issue relate with FastAPI?
    • Is your pull request or issue relate with GraphQL?
    • And make sure you take a look at the schema of the GraphQL playground. schema.graphql
    • Also for People who gonna add a new features or fix somethings please make sure that its build on Docker.

License

This project is licensed under the terms of the MIT license.

Comments
  • chore(deps): bump identify from 2.4.11 to 2.5.10

    chore(deps): bump identify from 2.4.11 to 2.5.10

    Bumps identify from 2.4.11 to 2.5.10.

    Commits
    • 297950f v2.5.10
    • e834194 Merge pull request #352 from andrewring/patch-1
    • e2201fc Add ppm file to extensions
    • eb54678 Merge pull request #351 from pre-commit/pre-commit-ci-update-config
    • 587e55d [pre-commit.ci] pre-commit autoupdate
    • 8413d2b Merge pull request #349 from pre-commit/pre-commit-ci-update-config
    • eb5e3c2 [pre-commit.ci] pre-commit autoupdate
    • 404ffb5 Merge pull request #347 from pre-commit/pre-commit-ci-update-config
    • a9da367 [pre-commit.ci] pre-commit autoupdate
    • 358110c Merge pull request #346 from pre-commit/pre-commit-ci-update-config
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump identify from 2.4.11 to 2.5.9

    chore(deps): bump identify from 2.4.11 to 2.5.9

    Bumps identify from 2.4.11 to 2.5.9.

    Commits
    • 12d842e v2.5.9
    • 916360d Merge pull request #340 from sebastiw/add-erlang
    • fba6e35 Erlang extensions and files
    • 5ab0d6a Merge pull request #345 from pre-commit/all-repos_autofix_no-implicit-optional
    • 159050a remove no_implicit_optional
    • d01f0dd Merge pull request #344 from pre-commit/pre-commit-ci-update-config
    • 15528c8 [pre-commit.ci] pre-commit autoupdate
    • 67db71a Merge pull request #342 from pre-commit/pre-commit-ci-update-config
    • 28b7ae2 [pre-commit.ci] pre-commit autoupdate
    • a81077b v2.5.8
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump identify from 2.4.11 to 2.5.8

    chore(deps): bump identify from 2.4.11 to 2.5.8

    Bumps identify from 2.4.11 to 2.5.8.

    Commits
    • a81077b v2.5.8
    • f07438a Merge pull request #339 from Amir-Ahmad/main
    • 9c23241 Add .cue to extensions.py
    • db88498 v2.5.7
    • 4660ca5 Merge pull request #335 from ioggstream/ioggstream-334
    • b14babe Add .yamlld and .jsonld extensions
    • 3a90716 Merge pull request #337 from pre-commit/pre-commit-ci-update-config
    • 2441a5b [pre-commit.ci] pre-commit autoupdate
    • 56aa6af Merge pull request #336 from pre-commit/pre-commit-ci-update-config
    • 76b7929 [pre-commit.ci] pre-commit autoupdate
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump identify from 2.4.11 to 2.5.6

    chore(deps): bump identify from 2.4.11 to 2.5.6

    Bumps identify from 2.4.11 to 2.5.6.

    Commits
    • cd3504e v2.5.6
    • 3c8710d Merge pull request #331 from CSymes/patch-1
    • 758e928 Add .resx to extensions.py
    • 17f8ed2 Merge pull request #329 from pre-commit/pre-commit-ci-update-config
    • 26f5606 [pre-commit.ci] pre-commit autoupdate
    • 8a6ab8d Merge pull request #328 from pre-commit/pre-commit-ci-update-config
    • 8821518 [pre-commit.ci] pre-commit autoupdate
    • e550e22 v2.5.5
    • 7b208a8 Merge pull request #327 from ColemanTom/add_fortran_file_extensions
    • ae38e88 Merge pull request #325 from ColemanTom/add_julia_file_extension
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump regex from 2021.11.10 to 2022.9.13

    chore(deps): bump regex from 2021.11.10 to 2022.9.13

    Bumps regex from 2021.11.10 to 2022.9.13.

    Commits
    • 4ad1f04 Updated to Unicode 15.0.0.
    • 416dd66 Updated version.
    • 134e570 Updated main.yml for GitHub Actions. Contributed by animalize.
    • 45642ba Git issue 479: Segmentation fault when using conditional pattern
    • 71be78a Git issue 477: \v for vertical spacing
    • 0175830 Git issue 475: 2022.7.24 improperly released
    • ea5e640 Git issue 474: regex has no equivalent to re.Match.groups() for captures
    • 5c9b260 Git issue 473: Emoji classified as letter
    • 8a514bc Git issue 472: Revisit compilation flag to prevent adding a single explicitly...
    • 74b8db0 Git issue 467: Scoped inline flags 'a', 'u' and 'L' affect global flags
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump identify from 2.4.11 to 2.5.5

    chore(deps): bump identify from 2.4.11 to 2.5.5

    Bumps identify from 2.4.11 to 2.5.5.

    Commits
    • e550e22 v2.5.5
    • 7b208a8 Merge pull request #327 from ColemanTom/add_fortran_file_extensions
    • ae38e88 Merge pull request #325 from ColemanTom/add_julia_file_extension
    • 46be6b9 Merge pull request #326 from ColemanTom/add_cylc_file_extension
    • 858928b Add file extensions for modern fortran
    • 75cb1ae Add Cylc configs file extension
    • 965c0c0 Add julie file extension - 'jl'
    • 207d5f7 v2.5.4
    • 60b767e Merge pull request #323 from webknjaz/features/isort-config
    • 0c86e51 Identify .isort.cfg as an INI-file
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump pre-commit from 2.17.0 to 2.20.0

    chore(deps): bump pre-commit from 2.17.0 to 2.20.0

    Bumps pre-commit from 2.17.0 to 2.20.0.

    Release notes

    Sourced from pre-commit's releases.

    pre-commit v2.20.0

    Features

    Fixes

    pre-commit v2.19.0

    Features

    Fixes

    Updating

    • Change pre-commit-validate-config / pre-commit-validate-manifest to pre-commit validate-config / pre-commit validate-manifest.

    pre-commit v2.18.1

    Fixes

    pre-commit v2.18.0

    Features

    ... (truncated)

    Changelog

    Sourced from pre-commit's changelog.

    2.20.0 - 2022-07-10

    Features

    Fixes

    2.19.0 - 2022-05-05

    Features

    Fixes

    Updating

    • Change pre-commit-validate-config / pre-commit-validate-manifest to pre-commit validate-config / pre-commit validate-manifest.

    2.18.1 - 2022-04-02

    Fixes

    ... (truncated)

    Commits
    • 78a2d86 v2.20.0
    • e3dc5b7 Merge pull request #2454 from pre-commit/asottile-patch-1
    • ebce88c remove warnings checks
    • d6cc8a1 Merge pull request #2453 from hroncok/python3.11
    • 901e831 Tests: Adjust traceback regexes to allow Python 3.11+ ^^^^^^^
    • 98bb7e6 Merge pull request #2440 from pre-commit/pre-commit-ci-update-config
    • 706d1e9 Merge pull request #2439 from pre-commit/all-repos_autofix_type-checking
    • 3ebd101 [pre-commit.ci] pre-commit autoupdate
    • d8b5930 remove imports from TYPE_CHECKING (py37+)
    • 170335c Merge pull request #2429 from pre-commit/remove-config-option-when-unused
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump regex from 2021.11.10 to 2022.9.11

    chore(deps): bump regex from 2021.11.10 to 2022.9.11

    Bumps regex from 2021.11.10 to 2022.9.11.

    Commits
    • 416dd66 Updated version.
    • 134e570 Updated main.yml for GitHub Actions. Contributed by animalize.
    • 45642ba Git issue 479: Segmentation fault when using conditional pattern
    • 71be78a Git issue 477: \v for vertical spacing
    • 0175830 Git issue 475: 2022.7.24 improperly released
    • ea5e640 Git issue 474: regex has no equivalent to re.Match.groups() for captures
    • 5c9b260 Git issue 473: Emoji classified as letter
    • 8a514bc Git issue 472: Revisit compilation flag to prevent adding a single explicitly...
    • 74b8db0 Git issue 467: Scoped inline flags 'a', 'u' and 'L' affect global flags
    • 138970b Git issue 457: Difference with re, when repl returns None
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump asgiref from 3.5.0 to 3.5.2

    chore(deps): bump asgiref from 3.5.0 to 3.5.2

    Bumps asgiref from 3.5.0 to 3.5.2.

    Changelog

    Sourced from asgiref's changelog.

    3.5.2 (2022-05-16)

    • Allow async-callables class instances to be passed to AsyncToSync without warning

    • Prevent giving async-callable class instances to SyncToAsync

    3.5.1 (2022-04-30)

    • sync_to_async in thread-sensitive mode now works corectly when the outermost thread is synchronous (#214)
    Commits
    • 67b2e81 Releasing 3.5.2
    • 7794c2a Fix root_path in WebSocket Connection Scope (#329)
    • df1e582 Disallow async callable class instances as callable for sync.SyncToAsync (#...
    • ab7379a Don't warn 'non-async-marked callable' for async callable instance (#325)
    • 12f6355 Releasing 3.5.1
    • add5764 Preserve CurrentThreadExecutor across create_task (#320)
    • d451a72 Remove SOCK_NONBLOCK from socket creation on tests (#321)
    • cde961b Fixed a typographical error
    • 464553a Rewrote multiprocessing test to use no local functions
    • 3554e05 Fix allowed values for spec_version on WebSocket and HTTP Connection scopes...
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump frozenlist from 1.3.0 to 1.3.1

    chore(deps): bump frozenlist from 1.3.0 to 1.3.1

    Bumps frozenlist from 1.3.0 to 1.3.1.

    Release notes

    Sourced from frozenlist's releases.

    1.3.1

    The published source distribution package became buildable under Python 3.11.


    Changelog

    Sourced from frozenlist's changelog.

    1.3.1 (2022-08-02)

    The published source distribution package became buildable under Python 3.11.


    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump mako from 1.1.6 to 1.2.2

    chore(deps): bump mako from 1.1.6 to 1.2.2

    Bumps mako from 1.1.6 to 1.2.2.

    Release notes

    Sourced from mako's releases.

    1.2.2

    Released: Mon Aug 29 2022

    bug

    • [bug] [lexer] Fixed issue in lexer where the regexp used to match tags would not correctly interpret quoted sections individually. While this parsing issue still produced the same expected tag structure later on, the mis-handling of quoted sections was also subject to a regexp crash if a tag had a large number of quotes within its quoted sections.

      References: #366

    1.2.1

    Released: Thu Jun 30 2022

    bug

    • [bug] [tests] Various fixes to the test suite in the area of exception message rendering to accommodate for variability in Python versions as well as Pygments.

      References: #360

    misc

    • [performance] Optimized some codepaths within the lexer/Python code generation process, improving performance for generation of templates prior to their being cached. Pull request courtesy Takuto Ikuta.

      References: #361

    1.2.0

    Released: Thu Mar 10 2022

    changed

    • [changed] [py3k] Corrected "universal wheel" directive in setup.cfg so that building a wheel does not target Python 2.

      References: #351

    • [changed] [py3k] The bytestring_passthrough template argument is removed, as this flag only applied to Python 2.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • chore(deps): bump asgiref from 3.5.0 to 3.6.0

    chore(deps): bump asgiref from 3.5.0 to 3.6.0

    Bumps asgiref from 3.5.0 to 3.6.0.

    Changelog

    Sourced from asgiref's changelog.

    3.6.0 (2022-12-20)

    • Two new functions are added to the asgiref.sync module: iscoroutinefunction() and markcoroutinefunction().

      Python 3.12 deprecates asyncio.iscoroutinefunction() as an alias for inspect.iscoroutinefunction(), whilst also removing the _is_coroutine marker. The latter is replaced with the inspect.markcoroutinefunction decorator.

      The new asgiref.sync functions are compatibility shims for these functions that can be used until Python 3.12 is the minimum supported version.

      Note that these functions are considered beta, and as such, whilst not likely, are subject to change in a point release, until the final release of Python 3.12. They are included in asgiref now so that they can be adopted by Django 4.2, in preparation for support of Python 3.12.

    • The loop argument to asgiref.timeout.timeout is deprecated. As per other asyncio based APIs, the running event loop is used by default. Note that asyncio provides timeout utilities from Python 3.11, and these should be preferred where available.

    • Support for the ASGI_THREADS environment variable, used by SyncToAsync, is removed. In general, a running event-loop is not available to asgiref at import time, and so the default thread pool executor cannot be configured. Protocol servers, or applications, should set the default executor as required when configuring the event loop at application startup.

    3.5.2 (2022-05-16)

    • Allow async-callables class instances to be passed to AsyncToSync without warning

    • Prevent giving async-callable class instances to SyncToAsync

    3.5.1 (2022-04-30)

    • sync_to_async in thread-sensitive mode now works corectly when the outermost thread is synchronous (#214)
    Commits
    • 79a1d01 Releasing 3.6.0.
    • 7a6c631 Added release note for coroutine detection shims.
    • bea951e Added Python 3.11 support
    • ea79016 Updated timeout helper to use get_running_loop(). (#337)
    • 36f37c9 Added coroutine detection shims for Python 3.12 (#360)
    • 467c154 Updated pre-commit versions and fixed linting errors.
    • 72c5ca1 Updated flake8 repo location in pre-commit config to github.
    • 8b76e05 Tweak conf.py to fix Sphinx warnings (#355)
    • 9acb1a2 Added missing HTTPResponseTrailersEvent to ASGISendEvent
    • 3b5aaff Added HTTP Trailers extension
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • chore(deps): bump identify from 2.4.11 to 2.5.11

    chore(deps): bump identify from 2.4.11 to 2.5.11

    Bumps identify from 2.4.11 to 2.5.11.

    Commits
    • 5434951 v2.5.11
    • 222038f Merge pull request #353 from colindean/patch-1
    • 0cb0bf0 Adds .make to extensions
    • 297950f v2.5.10
    • e834194 Merge pull request #352 from andrewring/patch-1
    • e2201fc Add ppm file to extensions
    • eb54678 Merge pull request #351 from pre-commit/pre-commit-ci-update-config
    • 587e55d [pre-commit.ci] pre-commit autoupdate
    • 8413d2b Merge pull request #349 from pre-commit/pre-commit-ci-update-config
    • eb5e3c2 [pre-commit.ci] pre-commit autoupdate
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • chore(deps): bump pre-commit from 2.17.0 to 2.21.0

    chore(deps): bump pre-commit from 2.17.0 to 2.21.0

    Bumps pre-commit from 2.17.0 to 2.21.0.

    Release notes

    Sourced from pre-commit's releases.

    pre-commit v2.21.0

    Features

    Fixes

    pre-commit v2.20.0

    Features

    Fixes

    ... (truncated)

    Changelog

    Sourced from pre-commit's changelog.

    2.21.0 - 2022-12-25

    Features

    Fixes

    2.20.0 - 2022-07-10

    Features

    Fixes

    ... (truncated)

    Commits
    • 40c5bda v2.21.0
    • bb27ea3 Merge pull request #2642 from rkm/fix/dotnet-nuget-config
    • c38e0c7 dotnet: ignore nuget source during tool install
    • bce513f Merge pull request #2641 from rkm/fix/dotnet-tool-prefix
    • e904628 fix dotnet hooks with prefixes
    • d7b8b12 Merge pull request #2646 from pre-commit/pre-commit-ci-update-config
    • 94b6178 [pre-commit.ci] pre-commit autoupdate
    • b474a83 Merge pull request #2643 from pre-commit/pre-commit-ci-update-config
    • a179808 [pre-commit.ci] pre-commit autoupdate
    • 3aa6206 Merge pull request #2605 from lorenzwalthert/r/fix-exe
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • chore(deps): bump frozenlist from 1.3.0 to 1.3.3

    chore(deps): bump frozenlist from 1.3.0 to 1.3.3

    Bumps frozenlist from 1.3.0 to 1.3.3.

    Release notes

    Sourced from frozenlist's releases.

    1.3.3

    • Fixed CI runs when creating a new release, where new towncrier versions fail when the current version section is already present.

    1.3.1

    The published source distribution package became buildable under Python 3.11.


    Changelog

    Sourced from frozenlist's changelog.

    1.3.3 (2022-11-08)

    • Fixed CI runs when creating a new release, where new towncrier versions fail when the current version section is already present.

    1.3.2 (2022-11-08)

    Misc

    • Updated the CI runs to better check for test results and to avoid deprecated syntax. [#327](https://github.com/aio-libs/frozenlist/issues/327) <https://github.com/aio-libs/frozenlist/issues/327>_

    1.3.1 (2022-08-02)

    The published source distribution package became buildable under Python 3.11.


    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • chore(deps): bump regex from 2021.11.10 to 2022.10.31

    chore(deps): bump regex from 2021.11.10 to 2022.10.31

    Bumps regex from 2021.11.10 to 2022.10.31.

    Commits
    • cc39262 Updated text for supported Unicode and Python versions.
    • 4ad1f04 Updated to Unicode 15.0.0.
    • 416dd66 Updated version.
    • 134e570 Updated main.yml for GitHub Actions. Contributed by animalize.
    • 45642ba Git issue 479: Segmentation fault when using conditional pattern
    • 71be78a Git issue 477: \v for vertical spacing
    • 0175830 Git issue 475: 2022.7.24 improperly released
    • ea5e640 Git issue 474: regex has no equivalent to re.Match.groups() for captures
    • 5c9b260 Git issue 473: Emoji classified as letter
    • 8a514bc Git issue 472: Revisit compilation flag to prevent adding a single explicitly...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • alembic: error: too few arguments

    alembic: error: too few arguments

    I tried to check out and run the recent version and the main container fails to start with:

    fastql-fastql-1     | usage: alembic [-h] [--version] [-c CONFIG] [-n NAME] [-x X] [--raiseerr]
    fastql-fastql-1     |                {branches,current,downgrade,edit,ensure_version,heads,history,init,list_templates,merge,revision,show,stamp,upgrade}
    fastql-fastql-1     |                ...
    fastql-fastql-1     | alembic: error: too few arguments
    

    I want to add I'm happy I found this project being new to python (as I'd like to do some ML stuff). It covers all I was looking for - GraphQL lightweight playground wrapped into docker, not to mention poetry dependency management and more...

    With a bit of experience I'd certainly would open some PRs but now I just did some workarounds to be able to build and run (there are apparently a few more things to get all working - I can create tickets for other stuff too)

    opened by ciekawy 0
Releases(1.0.0)
  • 1.0.0(Feb 4, 2022)

    Overview đź“Ś

    • FastAPI is a modern, fast (high-performance), a web framework for building APIs with Python 3.6+ based on standard Python type hints.
    • GraphQL is used to create a schema to describe all the possible data that clients can query through that service. A GraphQL schema is made up of object types, which define which kind of object you can request and what fields it has.
    • Ariadne is a Python library for implementing GraphQL servers using a schema-first approach.

    Features

    • Full Docker integration (Docker-based).
    • Docker Compose integration and optimization for local development.
    • Production-ready Python web server using Uvicorn and Gunicorn.
    • GraphQL playground based on Graphene and Ariadne.
    • Docker Compose integration and optimization for local development.
    • Production-ready Python web server using Uvicorn.
    • Secure password hashing by default.
    • JWT token authentication.
    • SQLAlchemy database integration using PostgreSQL.
    • Alembic migrations for database schema.
    • rabbitMQ (asynchronous) message broker.
    • API tests based on Pytest, integrated with Docker, so you can test the full API interaction, independent on the database.
    Source code(tar.gz)
    Source code(zip)
Owner
OBytes
We're a team of dreamers and makers who create products that your users will love
OBytes
Enable idempotent operations in POST and PATCH endpoints

Idempotency Header ASGI Middleware A middleware for making POST and PATCH endpoints idempotent. The purpose of the middleware is to guarantee that exe

Sondre Lillebø Gundersen 12 Dec 28, 2022
Gerenciar a velocidade da internet banda larga

Monitoramento da Velocidade da internet 📶 Status do Projeto: ✔️ (pronto) Tópicos ✍️ Descrição do projeto Funcionalidades Deploy da Aplicação Pré-requ

Bárbara Guerbas de Figueiredo 147 Nov 02, 2022
A real time webchat made in graphql

Graphql Chat. This is a real time webchat made in graphql. Description Welcome to my webchat api, here i put my knowledge in graphql to work. Requirem

Nathan André 1 Jan 03, 2022
Graphene MongoEngine integration

Graphene-Mongo A Mongoengine integration for Graphene. Installation For installing graphene-mongo, just run this command in your shell pip install gra

GraphQL Python 261 Dec 31, 2022
Burp Suite extension to log GraphQL operations as a comment

Burp GraphQL Logger A very simple, straightforward extension that logs GraphQL operations as a comment in the Proxy view. To enable the highlight, unc

22 Jul 02, 2022
tartiflette-aiohttp is a wrapper of aiohttp which includes the Tartiflette GraphQL Engine, do not hesitate to take a look of the Tartiflette project.

tartiflette-aiohttp is a wrapper of aiohttp which includes the Tartiflette GraphQL Engine. You can take a look at the Tartiflette API documentation. U

tartiflette 60 Nov 08, 2022
A library to help construct a graphql-py server supporting react-relay

Relay Library for GraphQL Python GraphQL-relay-py is the Relay library for GraphQL-core. It allows the easy creation of Relay-compliant servers using

GraphQL Python 143 Nov 15, 2022
Fastapi strawberry graphql

fastapi-strawberry-graphql Quick and dirty 🍓 python python --version Python 3.10 pip pip install sqlalchemy pip install sqlmodel pip install fastapi

Rodrigo Ney 7 Oct 19, 2022
A Django GraphQL Starter that uses graphene and graphene_django to interface GraphQL.

Django GraphQL Starter GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data... According to the doc

0101 Solutions 1 Jan 10, 2022
GraphQL security auditing script with a focus on performing batch GraphQL queries and mutations

BatchQL BatchQL is a GraphQL security auditing script with a focus on performing batch GraphQL queries and mutations. This script is not complex, and

Assetnote 267 Dec 24, 2022
Generate daily updated visualizations of user and repository statistics from the GitHub API using GitHub Actions

Generate daily updated visualizations of user and repository statistics from the GitHub API using GitHub Actions for any combination of private and public repositories - dark mode supported

Adam Ross 15 Dec 31, 2022
A Python dependency resolver

python-resolver A Python dependency resolver. Issues Only supports wheels (no sdists!) Usage Python library import packaging.requirements import resol

Filipe LaĂ­ns 19 Jun 29, 2022
Django GraphQL To Do List Application

Django GraphQL Simple ToDo HOW TO RUN just run the following instructions: python -m venv venv pip install -r requirements.txt source venv/bin/activat

pedram shahsafi 1 Nov 13, 2021
Integrate GraphQL with your Pydantic models

graphene-pydantic A Pydantic integration for Graphene. Installation pip install "graphene-pydantic" Examples Here is a simple Pydantic model: import u

GraphQL Python 179 Jan 02, 2023
GraphQL framework for Python

Graphene 💬 Join the community on Slack We are looking for contributors! Please check the ROADMAP to see how you can help ❤️ The below readme is the d

GraphQL Python 7.5k Jan 01, 2023
GraphQL framework for Python

Graphene 💬 Join the community on Slack We are looking for contributors! Please check the ROADMAP to see how you can help ❤️ The below readme is the d

GraphQL Python 7.5k Jan 01, 2023
Translate APIs described by OpenAPI Specifications (OAS) into GraphQL

OpenAPI-to-GraphQL Translate APIs described by OpenAPI Specifications (OAS) or Swagger into GraphQL. Getting started OpenAPI-to-GraphQL can be used in

International Business Machines 1.4k Dec 29, 2022
ASGI support for the Tartiflette GraphQL engine

tartiflette-asgi is a wrapper that provides ASGI support for the Tartiflette Python GraphQL engine. It is ideal for serving a GraphQL API over HTTP, o

tartiflette 99 Dec 27, 2022
Authorization middleware for GraphQL

GraphQL-Authz is a Python3.6+ port of GraphQL-Authz, the node.js implementation for the Casbin authorization middleware.

2 Oct 24, 2022
Python script to like all posts from a selected Anilist profile

AniLiker: A python autoliker What's the point of this project? This project was a way to learn GraphQL, and also create a project that I've been inter

Iván Pérez 9 Nov 25, 2022