Feat(Docs): Added docs
This commit is contained in:
parent
1916a2d0da
commit
22374728be
@ -2,6 +2,18 @@
|
|||||||
|
|
||||||
## General Bits of Information
|
## General Bits of Information
|
||||||
|
|
||||||
|
### SameSite setting
|
||||||
|
|
||||||
|
The SameSite setting ensures that cookie data is only sent with requests that originate from the given domain. This prevents other websites from initiating requests with the cookie data.
|
||||||
|
|
||||||
|
### Pydantic's purpose
|
||||||
|
|
||||||
|
Pydantic is to validate the schema/the shape of our input/output (works with JSON responses too).
|
||||||
|
|
||||||
|
### Python's dataclass
|
||||||
|
|
||||||
|
Class full of data. Meant to be used to serialize data into JSON objects.
|
||||||
|
|
||||||
### Quart specific terminologies
|
### Quart specific terminologies
|
||||||
|
|
||||||
`blueprint`: a collection of route handlers/API functionalities.
|
`blueprint`: a collection of route handlers/API functionalities.
|
||||||
|
110
backend/pdm.lock
generated
110
backend/pdm.lock
generated
@ -68,6 +68,18 @@ version = "0.4"
|
|||||||
requires_python = ">=3.6"
|
requires_python = ">=3.6"
|
||||||
summary = "Query building for the postgresql prepared statements and asyncpg."
|
summary = "Query building for the postgresql prepared statements and asyncpg."
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bump-pydantic"
|
||||||
|
version = "0.6.0"
|
||||||
|
requires_python = ">=3.8"
|
||||||
|
summary = "Convert Pydantic from V1 to V2 ♻"
|
||||||
|
dependencies = [
|
||||||
|
"libcst",
|
||||||
|
"rich",
|
||||||
|
"typer>=0.7.0",
|
||||||
|
"typing-extensions",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "certifi"
|
name = "certifi"
|
||||||
version = "2022.12.7"
|
version = "2022.12.7"
|
||||||
@ -96,9 +108,13 @@ summary = "Django/Jinja template indenter"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dnspython"
|
name = "dnspython"
|
||||||
version = "2.2.1"
|
version = "2.4.0"
|
||||||
requires_python = ">=3.6,<4.0"
|
requires_python = ">=3.8,<4.0"
|
||||||
summary = "DNS toolkit"
|
summary = "DNS toolkit"
|
||||||
|
dependencies = [
|
||||||
|
"httpcore>=0.17.3; python_version >= \"3.8\"",
|
||||||
|
"sniffio<2.0,>=1.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "email-validator"
|
name = "email-validator"
|
||||||
@ -178,7 +194,7 @@ summary = "Pure-Python HPACK header compression"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "httpcore"
|
name = "httpcore"
|
||||||
version = "0.16.2"
|
version = "0.17.3"
|
||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "A minimal low-level HTTP client."
|
summary = "A minimal low-level HTTP client."
|
||||||
dependencies = [
|
dependencies = [
|
||||||
@ -251,6 +267,17 @@ dependencies = [
|
|||||||
"MarkupSafe>=2.0",
|
"MarkupSafe>=2.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libcst"
|
||||||
|
version = "1.0.1"
|
||||||
|
requires_python = ">=3.7"
|
||||||
|
summary = "A concrete syntax tree with AST-like properties for Python 3.5, 3.6, 3.7, 3.8, 3.9, and 3.10 programs."
|
||||||
|
dependencies = [
|
||||||
|
"pyyaml>=5.2",
|
||||||
|
"typing-extensions>=3.7.4.2",
|
||||||
|
"typing-inspect>=0.4.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "markdown-it-py"
|
name = "markdown-it-py"
|
||||||
version = "3.0.0"
|
version = "3.0.0"
|
||||||
@ -527,12 +554,31 @@ version = "2.0.1"
|
|||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "A lil' TOML parser"
|
summary = "A lil' TOML parser"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typer"
|
||||||
|
version = "0.9.0"
|
||||||
|
requires_python = ">=3.6"
|
||||||
|
summary = "Typer, build great CLIs. Easy to code. Based on Python type hints."
|
||||||
|
dependencies = [
|
||||||
|
"click<9.0.0,>=7.1.1",
|
||||||
|
"typing-extensions>=3.7.4.3",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typing-extensions"
|
name = "typing-extensions"
|
||||||
version = "4.7.1"
|
version = "4.7.1"
|
||||||
requires_python = ">=3.7"
|
requires_python = ">=3.7"
|
||||||
summary = "Backported and Experimental Type Hints for Python 3.7+"
|
summary = "Backported and Experimental Type Hints for Python 3.7+"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typing-inspect"
|
||||||
|
version = "0.9.0"
|
||||||
|
summary = "Runtime inspection utilities for typing module."
|
||||||
|
dependencies = [
|
||||||
|
"mypy-extensions>=0.3.0",
|
||||||
|
"typing-extensions>=3.7.4",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vulture"
|
name = "vulture"
|
||||||
version = "2.7"
|
version = "2.7"
|
||||||
@ -569,7 +615,7 @@ summary = ""
|
|||||||
lock_version = "4.2"
|
lock_version = "4.2"
|
||||||
cross_platform = true
|
cross_platform = true
|
||||||
groups = ["default", "dev"]
|
groups = ["default", "dev"]
|
||||||
content_hash = "sha256:16d91f7318080678d7a1a12a0a93787dfbe51a9e60a8802299383f2ab765565a"
|
content_hash = "sha256:d37d21af7b30969d5022b4c4c7cc3803617d2b1ea260ebe444fe15fa4f42ab84"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
"aiofiles 22.1.0" = [
|
"aiofiles 22.1.0" = [
|
||||||
@ -677,6 +723,10 @@ content_hash = "sha256:16d91f7318080678d7a1a12a0a93787dfbe51a9e60a8802299383f2ab
|
|||||||
{url = "https://files.pythonhosted.org/packages/31/5a/c5ecd08a0c9b4dfece3b41aeefc3770968b4a2da1784941c9c8dd1c65347/buildpg-0.4-py3-none-any.whl", hash = "sha256:20d539976c81ea6f5529d3930016b0482ed0ff06def3d6da79d0fc0a3bbaeeb1"},
|
{url = "https://files.pythonhosted.org/packages/31/5a/c5ecd08a0c9b4dfece3b41aeefc3770968b4a2da1784941c9c8dd1c65347/buildpg-0.4-py3-none-any.whl", hash = "sha256:20d539976c81ea6f5529d3930016b0482ed0ff06def3d6da79d0fc0a3bbaeeb1"},
|
||||||
{url = "https://files.pythonhosted.org/packages/48/f2/ff0e51a3c2390538da6eb4f85e30d87aafbcc6d057c6c9bb9fa222c8f2fc/buildpg-0.4.tar.gz", hash = "sha256:3a6c1f40fb6c826caa819d84727e36a1372f7013ba696637b492e5935916d479"},
|
{url = "https://files.pythonhosted.org/packages/48/f2/ff0e51a3c2390538da6eb4f85e30d87aafbcc6d057c6c9bb9fa222c8f2fc/buildpg-0.4.tar.gz", hash = "sha256:3a6c1f40fb6c826caa819d84727e36a1372f7013ba696637b492e5935916d479"},
|
||||||
]
|
]
|
||||||
|
"bump-pydantic 0.6.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/90/8b/ce0cf8238dcf78cb56c64097571fc0d128abf1763c605a30314ff2e9f4cc/bump_pydantic-0.6.0.tar.gz", hash = "sha256:33149329dd81b2868c84be835b072b3ee0199cb4d564736585ca73fb108dc4bd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/cc/46/1996f874ef55c26572fcbc616984931ddb3abd2be7d4d5a5a1020806933c/bump_pydantic-0.6.0-py3-none-any.whl", hash = "sha256:a430f171eb39ce355e277c7aded67ac427cadd42c5c025ad5519cfff25a73abc"},
|
||||||
|
]
|
||||||
"certifi 2022.12.7" = [
|
"certifi 2022.12.7" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/37/f7/2b1b0ec44fdc30a3d31dfebe52226be9ddc40cd6c0f34ffc8923ba423b69/certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"},
|
{url = "https://files.pythonhosted.org/packages/37/f7/2b1b0ec44fdc30a3d31dfebe52226be9ddc40cd6c0f34ffc8923ba423b69/certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"},
|
||||||
{url = "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"},
|
{url = "https://files.pythonhosted.org/packages/71/4c/3db2b8021bd6f2f0ceb0e088d6b2d49147671f25832fb17970e9b583d742/certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"},
|
||||||
@ -692,9 +742,9 @@ content_hash = "sha256:16d91f7318080678d7a1a12a0a93787dfbe51a9e60a8802299383f2ab
|
|||||||
"djhtml 3.0.6" = [
|
"djhtml 3.0.6" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/a0/03/aac9bfb7c9b03604a2c4b0d474af22731ef41cb662fad07f956ae7bf0f6b/djhtml-3.0.6.tar.gz", hash = "sha256:abfc4d7b4730432ca6a98322fbdf8ae9d6ba254ea57ba3759a10ecb293bc57de"},
|
{url = "https://files.pythonhosted.org/packages/a0/03/aac9bfb7c9b03604a2c4b0d474af22731ef41cb662fad07f956ae7bf0f6b/djhtml-3.0.6.tar.gz", hash = "sha256:abfc4d7b4730432ca6a98322fbdf8ae9d6ba254ea57ba3759a10ecb293bc57de"},
|
||||||
]
|
]
|
||||||
"dnspython 2.2.1" = [
|
"dnspython 2.4.0" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/99/fb/e7cd35bba24295ad41abfdff30f6b4c271fd6ac70d20132fa503c3e768e0/dnspython-2.2.1.tar.gz", hash = "sha256:0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e"},
|
{url = "https://files.pythonhosted.org/packages/8f/a7/061a2659015c7e92e32270276dd61d0e21ec1c92a1599807c2d357f24d54/dnspython-2.4.0-py3-none-any.whl", hash = "sha256:46b4052a55b56beea3a3bdd7b30295c292bd6827dd442348bc116f2d35b17f0a"},
|
||||||
{url = "https://files.pythonhosted.org/packages/9b/ed/28fb14146c7033ba0e89decd92a4fa16b0b69b84471e2deab3cc4337cc35/dnspython-2.2.1-py3-none-any.whl", hash = "sha256:a851e51367fb93e9e1361732c1d60dab63eff98712e503ea7d92e6eccb109b4f"},
|
{url = "https://files.pythonhosted.org/packages/bd/5f/45f60fd7b03a1bef883a0eb4f9b6465628c1977393be45802eef1962571d/dnspython-2.4.0.tar.gz", hash = "sha256:758e691dbb454d5ccf4e1b154a19e52847f79e21a42fef17b969144af29a4e6c"},
|
||||||
]
|
]
|
||||||
"email-validator 2.0.0.post2" = [
|
"email-validator 2.0.0.post2" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/01/c4/b3972387f0ed2374035b61b46c17367c2363b958c966cfb1607282db5b56/email_validator-2.0.0.post2.tar.gz", hash = "sha256:1ff6e86044200c56ae23595695c54e9614f4a9551e0e393614f764860b3d7900"},
|
{url = "https://files.pythonhosted.org/packages/01/c4/b3972387f0ed2374035b61b46c17367c2363b958c966cfb1607282db5b56/email_validator-2.0.0.post2.tar.gz", hash = "sha256:1ff6e86044200c56ae23595695c54e9614f4a9551e0e393614f764860b3d7900"},
|
||||||
@ -732,9 +782,9 @@ content_hash = "sha256:16d91f7318080678d7a1a12a0a93787dfbe51a9e60a8802299383f2ab
|
|||||||
{url = "https://files.pythonhosted.org/packages/3e/9b/fda93fb4d957db19b0f6b370e79d586b3e8528b20252c729c476a2c02954/hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"},
|
{url = "https://files.pythonhosted.org/packages/3e/9b/fda93fb4d957db19b0f6b370e79d586b3e8528b20252c729c476a2c02954/hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"},
|
||||||
{url = "https://files.pythonhosted.org/packages/d5/34/e8b383f35b77c402d28563d2b8f83159319b509bc5f760b15d60b0abf165/hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"},
|
{url = "https://files.pythonhosted.org/packages/d5/34/e8b383f35b77c402d28563d2b8f83159319b509bc5f760b15d60b0abf165/hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"},
|
||||||
]
|
]
|
||||||
"httpcore 0.16.2" = [
|
"httpcore 0.17.3" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/91/52/93f22e5441539256c0d113faf17e45284aee16eebdd95089e3ca6f480b18/httpcore-0.16.2-py3-none-any.whl", hash = "sha256:52c79095197178856724541e845f2db86d5f1527640d9254b5b8f6f6cebfdee6"},
|
{url = "https://files.pythonhosted.org/packages/63/ad/c98ecdbfe04417e71e143bf2f2fb29128e4787d78d1cedba21bd250c7e7a/httpcore-0.17.3.tar.gz", hash = "sha256:a6f30213335e34c1ade7be6ec7c47f19f50c56db36abef1a9dfa3815b1cb3888"},
|
||||||
{url = "https://files.pythonhosted.org/packages/9b/20/26f6cc4fd00391f8f1c57b0020f5c6eec23904723db04b6f7608e222d815/httpcore-0.16.2.tar.gz", hash = "sha256:c35c5176dc82db732acfd90b581a3062c999a72305df30c0fc8fafd8e4aca068"},
|
{url = "https://files.pythonhosted.org/packages/94/2c/2bde7ff8dd2064395555220cbf7cba79991172bf5315a07eb3ac7688d9f1/httpcore-0.17.3-py3-none-any.whl", hash = "sha256:c2789b767ddddfa2a5782e3199b2b7f6894540b17b16ec26b2c4d8e103510b87"},
|
||||||
]
|
]
|
||||||
"httpx 0.24.1" = [
|
"httpx 0.24.1" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/ec/91/e41f64f03d2a13aee7e8c819d82ee3aa7cdc484d18c0ae859742597d5aa0/httpx-0.24.1-py3-none-any.whl", hash = "sha256:06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd"},
|
{url = "https://files.pythonhosted.org/packages/ec/91/e41f64f03d2a13aee7e8c819d82ee3aa7cdc484d18c0ae859742597d5aa0/httpx-0.24.1-py3-none-any.whl", hash = "sha256:06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd"},
|
||||||
@ -768,6 +818,38 @@ content_hash = "sha256:16d91f7318080678d7a1a12a0a93787dfbe51a9e60a8802299383f2ab
|
|||||||
{url = "https://files.pythonhosted.org/packages/7a/ff/75c28576a1d900e87eb6335b063fab47a8ef3c8b4d88524c4bf78f670cce/Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
|
{url = "https://files.pythonhosted.org/packages/7a/ff/75c28576a1d900e87eb6335b063fab47a8ef3c8b4d88524c4bf78f670cce/Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
|
||||||
{url = "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
|
{url = "https://files.pythonhosted.org/packages/bc/c3/f068337a370801f372f2f8f6bad74a5c140f6fda3d9de154052708dd3c65/Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
|
||||||
]
|
]
|
||||||
|
"libcst 1.0.1" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/00/6a/47b61d3c9f6d8f382ead9f068131d3ab742540bc2307292b69f896fa3f78/libcst-1.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:b97f652b15c50e91df411a9c8d5e6f75882b30743a49b387dcedd3f68ed94d75"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/01/29/554357cbbd9c894c58241f0403cbab9c6c1842eb6eb7ebc6d30a2fedaefa/libcst-1.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2cb687e1514625e91024e50a5d2e485c0ad3be24f199874ebf32b5de0346150"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/10/c1/2f633311d479e8fcbfdfd7bc5e22ce1c2b94dd1734238c197024c08c1d23/libcst-1.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5599166d5fec40e18601fb8868519dde99f77b6e4ad6074958018f9545da7abd"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/1c/df/9c7af7d8756d436ceb3c5046a93781141b2ee2c54d2c09d4096b1bbad4a6/libcst-1.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b4e336f6d68456017671cdda8ddebf9caebce8052cc21a3f494b03d7bd28386"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/28/31/57f77e87eef8ada6724e65d6838d599a10b3f9cbe991b310af83d387f14c/libcst-1.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8420926791b0b6206cb831a7ec73d26ae820e65bdf07ce9813c7754c7722c07a"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/29/34/93e180facfa6abf19843d6e38ae468db8ea93decbe889335472bc959420b/libcst-1.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae49dcbfadefb82e830d41d9f0a1db0af3b771224768f431f1b7b3a9803ed7e3"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/2a/bc/1112e0707566230709965817f2881fc18f9a322bbbb52ae8adf7c28981cc/libcst-1.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c90c74a8a314f0774f045122323fb60bacba79cbf5f71883c0848ecd67179541"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/32/10/f3da8077892a1691f73723ea4e7598fd20eb7a752aad780c04fe0719a374/libcst-1.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b666a605f4205c8357696f3b6571a38f6a8537cdcbb8f357587d35168298af34"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/38/00/a11a447fb6d48c6f69822fe2fc55b011a7b6ddd4cbd8a718442ac382dbc5/libcst-1.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d31ce2790eab59c1bd8e33fe72d09cfc78635c145bdc3f08296b360abb5f443"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/51/19/763eefa2d39f25ac4c9988387d5607fd8f3ed5e929af9f10eb30c712a306/libcst-1.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddd4e0eeec499d1c824ab545e62e957dbbd69a16bc4273208817638eb7d6b3c6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/66/f6/98c32c80b5fec10a39b6cb74bbf9363d627c60535b96f9d3c15848515109/libcst-1.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:ae7f4e71d714f256b5f2ff98b5a9effba0f9dff4d779d8f35d7eb157bef78f59"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/68/14/c6708490dd74cc833e62731725024cc27d1fed38cf1cd03217bb35a88a37/libcst-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6b5aea04c35e13109edad3cf83bc6dcd74309b150a781d2189eecb288b73a87"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/68/41/9824b7a575e96eb2525f192541c4413044ea8500c651ae398353285861cf/libcst-1.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0533de4e35396c61aeb3a6266ac30369a855910c2385aaa902ff4aabd60d409"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/76/4d/602abfcdc97d1c3da768f31ef5d9e2f27db62676356b64a98205498313a0/libcst-1.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6caa33430c0c7a0fcad921b0deeec61ddb96796b6f88dca94966f6db62065f4f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/79/61/dbb644542cf4f50ec7e6e1ec10f23d732ecc9835f4e8ab13308c1509e1e5/libcst-1.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:47dba43855e9c7b06d8b256ee81f0ebec6a4f43605456519577e09dfe4b4288c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/a9/bb/1609e940be017480680eb5cc2e0fcb0971c1a3821b51804c8b14928182d5/libcst-1.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1adcfa7cafb6a0d39a1a0bec541355608038b45815e0c5019c95f91921d42884"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/af/3a/90caf552575489412bc4b041ca9894062ca2f0200cd7df8884325f0575bf/libcst-1.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d237e9164a43caa7d6765ee560412264484e7620c546a2ee10a8d01bd56884e0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/b0/51/3dc19576d1b1a53dc59cbe78586a6996eb5e96cd7a3a228dc544505af0e5/libcst-1.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:119ba709f1dcb785a4458cf36cedb51d6f9cb2eec0acd7bb171f730eac7cb6ce"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c1/23/0cc3da3a7a5989bb34a491c6d51b25aecfba9a8e23efde92f1a15fc20915/libcst-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0138068baf09561268c7f079373bda45f0e2b606d2d19df1307ca8a5134fc465"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c1/72/6c99471219c4e9a40c07909f5baed3eccfeab4a2063c54d1fc0ccfe9b1fc/libcst-1.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:414350df5e334ddf0db1732d63da44e81b734d45abe1c597b5e5c0dd46aa4156"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c7/5c/2a0871654ae1bd9ee2e57bc5d3e2546ef1230a6d7f88adb1f72ccac8b28e/libcst-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4840a3de701778f0a19582bb3085c61591329153f801dc25da84689a3733960b"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/c7/ed/b81f0613bf23f49d6a0a8f9370d5badfad5bb46fb429e1d4b82c8812e100/libcst-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600c4d3a9a2f75d5a055fed713a5a4d812709947909610aa6527abe08a31896f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ca/90/ea0b513c830c487dd4ec581424c544ac0366cb5b7b0045e2bd95796b7bb7/libcst-1.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:80423311f09fc5fc3270ede44d30d9d8d3c2d3dd50dbf703a581ca7346949fa6"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/d4/57/af4efe8864edfb9dd22486ef9cdc3cea5b4a0030b8b75d7792acd6bf67a0/libcst-1.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c50541c3fd6b1d5a3765c4bb5ee8ecbba9d0e798e48f79fd5adf3b6752de4d0"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/e8/be/01ee6bcc9452094638ebf6f4f975e7dfaff050c9d8623757b0700201aa10/libcst-1.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:967c66fabd52102954207bf1541312b467afc210fdf7033f32da992fb6c2372c"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ea/5d/efa25625ae5da55aeca0ef49519278b6a33feb40d9094bca41e20e87d780/libcst-1.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:5e3293e77657ba62533553bb9f0c5fb173780e164c65db1ea2a3e0d03944a284"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/eb/9e/1158d6033a744593a7af39362cbc961036d439b6c49814cfe6e78b7ad2e2/libcst-1.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9d6dec2a3c443792e6af7c36fadc256e4ea586214c76b52f0d18118811dbe351"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/f4/b2/dd6fcf70dc59281e6de7c4b2f6150d07c26db127262dd5cba16fde1464ed/libcst-1.0.1.tar.gz", hash = "sha256:37187337f979ba426d8bfefc08008c3c1b09b9e9f9387050804ed2da88107570"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/fe/f7/ab8ea8608b63e4c1790af89e8ccb419356788aba2f9f8a1ef084be342a10/libcst-1.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:440887e5f82efb299f2e98d4bfa5663851a878cfc0efed652ab8c50205191436"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/ff/e6/5dcaaf8d3c02ced4f496e9eebddb8220056c06b290330ad5a12590fb44f8/libcst-1.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a4931feceab171e6fce73de94e13880424367247dad6ff2b49cabfec733e144"},
|
||||||
|
]
|
||||||
"markdown-it-py 3.0.0" = [
|
"markdown-it-py 3.0.0" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
|
{url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
|
||||||
{url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
|
{url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
|
||||||
@ -1034,10 +1116,18 @@ content_hash = "sha256:16d91f7318080678d7a1a12a0a93787dfbe51a9e60a8802299383f2ab
|
|||||||
{url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
{url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
||||||
{url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
{url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
||||||
]
|
]
|
||||||
|
"typer 0.9.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/5b/49/39f10d0f75886439ab3dac889f14f8ad511982a754e382c9b6ca895b29e9/typer-0.9.0.tar.gz", hash = "sha256:50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/bf/0e/c68adf10adda05f28a6ed7b9f4cd7b8e07f641b44af88ba72d9c89e4de7a/typer-0.9.0-py3-none-any.whl", hash = "sha256:5d96d986a21493606a358cae4461bd8cdf83cbf33a5aa950ae629ca3b51467ee"},
|
||||||
|
]
|
||||||
"typing-extensions 4.7.1" = [
|
"typing-extensions 4.7.1" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/3c/8b/0111dd7d6c1478bf83baa1cab85c686426c7a6274119aceb2bd9d35395ad/typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"},
|
{url = "https://files.pythonhosted.org/packages/3c/8b/0111dd7d6c1478bf83baa1cab85c686426c7a6274119aceb2bd9d35395ad/typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"},
|
||||||
{url = "https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"},
|
{url = "https://files.pythonhosted.org/packages/ec/6b/63cc3df74987c36fe26157ee12e09e8f9db4de771e0f3404263117e75b95/typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"},
|
||||||
]
|
]
|
||||||
|
"typing-inspect 0.9.0" = [
|
||||||
|
{url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"},
|
||||||
|
{url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"},
|
||||||
|
]
|
||||||
"vulture 2.7" = [
|
"vulture 2.7" = [
|
||||||
{url = "https://files.pythonhosted.org/packages/49/18/effa6c244dc6ee8c6f52e937330f0ee02813e4c478156b2e86acb9191238/vulture-2.7-py2.py3-none-any.whl", hash = "sha256:bccc51064ed76db15a6b58277cea8885936af047f53d2655fb5de575e93d0bca"},
|
{url = "https://files.pythonhosted.org/packages/49/18/effa6c244dc6ee8c6f52e937330f0ee02813e4c478156b2e86acb9191238/vulture-2.7-py2.py3-none-any.whl", hash = "sha256:bccc51064ed76db15a6b58277cea8885936af047f53d2655fb5de575e93d0bca"},
|
||||||
{url = "https://files.pythonhosted.org/packages/de/ff/196ca63becc5faf5586202ab6e30102322adeea538bb45549d97ed38225d/vulture-2.7.tar.gz", hash = "sha256:67fb80a014ed9fdb599dd44bb96cb54311032a104106fc2e706ef7a6dad88032"},
|
{url = "https://files.pythonhosted.org/packages/de/ff/196ca63becc5faf5586202ab6e30102322adeea538bb45549d97ed38225d/vulture-2.7.tar.gz", hash = "sha256:67fb80a014ed9fdb599dd44bb96cb54311032a104106fc2e706ef7a6dad88032"},
|
||||||
|
@ -36,6 +36,7 @@ dev = [
|
|||||||
"pytest-asyncio>=0.19.0",
|
"pytest-asyncio>=0.19.0",
|
||||||
"djhtml>=1.5.2",
|
"djhtml>=1.5.2",
|
||||||
"freezegun>=1.2.2",
|
"freezegun>=1.2.2",
|
||||||
|
"bump-pydantic>=0.6.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[tool.black]
|
[tool.black]
|
||||||
|
@ -33,20 +33,24 @@ app: Quart = Quart(__name__)
|
|||||||
# Either in DEV/DEBUG mode or TEST mode
|
# Either in DEV/DEBUG mode or TEST mode
|
||||||
app.config.from_prefixed_env(prefix="TODO")
|
app.config.from_prefixed_env(prefix="TODO")
|
||||||
|
|
||||||
|
# Initializes auth, database, rate limiter and schema
|
||||||
|
# for the web app
|
||||||
auth_manager: QuartAuth = QuartAuth(app)
|
auth_manager: QuartAuth = QuartAuth(app)
|
||||||
quart_db = QuartDB(app)
|
quart_db = QuartDB(app)
|
||||||
rate_limiter: RateLimiter = RateLimiter(app)
|
rate_limiter: RateLimiter = RateLimiter(app)
|
||||||
schema = QuartSchema(app, convert_casing=True)
|
schema = QuartSchema(app, convert_casing=True)
|
||||||
|
|
||||||
|
# Set up logging
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
|
||||||
# registers these groups of routes handlers
|
# Registers these groups of routes handlers
|
||||||
app.register_blueprint(control_blueprint)
|
app.register_blueprint(control_blueprint)
|
||||||
app.register_blueprint(sessions_blueprint)
|
app.register_blueprint(sessions_blueprint)
|
||||||
app.register_blueprint(members_blueprint)
|
app.register_blueprint(members_blueprint)
|
||||||
app.register_blueprint(todos_blueprint)
|
app.register_blueprint(todos_blueprint)
|
||||||
|
|
||||||
|
|
||||||
# rate limiting
|
# Rate limiting
|
||||||
@app.errorhandler(RateLimitExceeded) # type: ignore
|
@app.errorhandler(RateLimitExceeded) # type: ignore
|
||||||
async def handle_rate_limit_exceeded_error(
|
async def handle_rate_limit_exceeded_error(
|
||||||
error: RateLimitExceeded,
|
error: RateLimitExceeded,
|
||||||
@ -54,7 +58,7 @@ async def handle_rate_limit_exceeded_error(
|
|||||||
return {}, error.get_headers(), 429
|
return {}, error.get_headers(), 429
|
||||||
|
|
||||||
|
|
||||||
# handles errors
|
# Handles errors
|
||||||
@app.errorhandler(APIError) # type: ignore
|
@app.errorhandler(APIError) # type: ignore
|
||||||
async def handle_api_error(error: APIError) -> ResponseReturnValue:
|
async def handle_api_error(error: APIError) -> ResponseReturnValue:
|
||||||
return {"code": error.code}, error.status_code
|
return {"code": error.code}, error.status_code
|
||||||
|
Loading…
x
Reference in New Issue
Block a user