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

    • Expose source and object-name (positional args) of prepare-commit-msg hook as PRE_COMMIT_COMIT_MSG_SOURCE and PRE_COMMIT_COMMIT_OBJECT_NAME.

    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

    • Expose source and object-name (positional args) of prepare-commit-msg hook as PRE_COMMIT_COMIT_MSG_SOURCE and PRE_COMMIT_COMMIT_OBJECT_NAME.

    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

    • Expose source and object-name (positional args) of prepare-commit-msg hook as PRE_COMMIT_COMIT_MSG_SOURCE and PRE_COMMIT_COMMIT_OBJECT_NAME.

    Fixes

    ... (truncated)

    Changelog

    Sourced from pre-commit's changelog.

    2.21.0 - 2022-12-25

    Features

    Fixes

    2.20.0 - 2022-07-10

    Features

    • Expose source and object-name (positional args) of prepare-commit-msg hook as PRE_COMMIT_COMIT_MSG_SOURCE and PRE_COMMIT_COMMIT_OBJECT_NAME.

    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
A new GraphQL library for Python 🍓

Strawberry GraphQL Python GraphQL library based on dataclasses Installation ( Quick Start ) The quick start method provides a server and CLI to get go

Strawberry GraphQL 2.8k Jan 01, 2023
graphw00f is Server Engine Fingerprinting utility for software security professionals looking to learn more about what technology is behind a given GraphQL endpoint.

graphw00f - GraphQL Server Fingerprinting graphw00f (inspired by wafw00f) is the GraphQL fingerprinting tool for GQL endpoints. Table of Contents How

Dolev Farhi 282 Jan 04, 2023
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
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
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
Tyk Open Source API Gateway written in Go, supporting REST, GraphQL, TCP and gRPC protocols

Tyk API Gateway Tyk is an open source Enterprise API Gateway, supporting REST, GraphQL, TCP and gRPC protocols. Tyk Gateway is provided ‘Batteries-inc

Tyk Technologies 8k Jan 09, 2023
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
Simple GraphQL client for Python 2.7+

python-graphql-client Simple GraphQL client for Python 2.7+ Install pip install graphqlclient Usage from graphqlclient import GraphQLClient client =

Prisma Labs 150 Nov 29, 2022
Modular, cohesive, transparent and fast web server template

kingdom-python-server 🐍 Modular, transparent, batteries (half) included, lightning fast web server. Features a functional, isolated business layer wi

T10 20 Feb 08, 2022
RPyC (Remote Python Call) - A transparent and symmetric RPC library for python

RPyC (pronounced like are-pie-see), or Remote Python Call, is a transparent library for symmetrical remote procedure calls, clustering, and distribute

1.3k Jan 05, 2023
This is a minimal project using graphene with django and user authentication to expose a graphql endpoint.

Welcome This is a minimal project using graphene with django and user authentication to expose a graphql endpoint. Definitely checkout how I have mana

yosef salmalian 1 Nov 18, 2021
GraphQL Engine built with Python 3.6+ / asyncio

Tartiflette is a GraphQL Server implementation built with Python 3.6+. Summary Motivation Status Usage Installation Installation dependencies Tartifle

tartiflette 839 Dec 31, 2022
This is a graphql api build using ariadne python that serves a graphql-endpoint at port 3002 to perform language translation and identification using deep learning in python pytorch.

Language Translation and Identification this machine/deep learning api that will be served as a graphql-api using ariadne, to perform the following ta

crispengari 2 Dec 30, 2021
An unofficial Blender add-on for Autodesk's Arnold render engine.

Arnold for Blender Arnold for Blender (or BtoA) provides a bridge to the Arnold renderer from within Blender's standard interface. BtoA is an unoffici

Luna Digital, Ltd. 89 Dec 28, 2022
🔪 Facebook Messenger to email bridge based on reverse engineered auth and GraphQL APIs.

Unzuckify This repository has a small Python application which allows me to receive an email notification when somebody sends me a Facebook message. W

Radon Rosborough 33 Dec 18, 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
Graphql-codegen library - a pure python implementation

turms DEVELOPMENT Inspiration Turms is a pure python implementation of the awesome graphql-codegen library, following a simliar extensible design. It

Johannes Roos 22 Dec 23, 2022
Django Project with Rest and Graphql API's

Django-Rest-and-Graphql # 1. Django Project Setup With virtual environment: mkdir {project_name}. To install virtual Environment sudo apt-get install

Shubham Agrawal 5 Nov 22, 2022
Ariadne is a Python library for implementing GraphQL servers using schema-first approach.

Ariadne Ariadne is a Python library for implementing GraphQL servers. Schema-first: Ariadne enables Python developers to use schema-first approach to

Mirumee Labs 1.9k Jan 01, 2023
Django GraphQL User Management

Django GraphQL User Management An app that explores User management with GraphQL using Graphene in Django. Topics covered: Login. Log Out. Authenticat

0101 Solutions 4 Feb 22, 2022