debug
Browse files- .vscode/launch.json +26 -0
- .vscode/settings.json +13 -7
- poetry.lock +180 -10
- pyproject.toml +2 -0
- test.php +0 -0
- test.py +37 -0
.vscode/launch.json
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"version": "0.2.0",
|
3 |
+
"configurations": [
|
4 |
+
{
|
5 |
+
"name": "Poetry FastAPI Debug (uvicorn)",
|
6 |
+
"type": "python",
|
7 |
+
"request": "launch",
|
8 |
+
"module": "uvicorn",
|
9 |
+
"args": [
|
10 |
+
"test:app",
|
11 |
+
"--reload"
|
12 |
+
],
|
13 |
+
"python": "/home/user/.cache/pypoetry/virtualenvs/fastapi-django-zrSR0Z2A-py3.10/bin/python",
|
14 |
+
"justMyCode": false
|
15 |
+
},
|
16 |
+
{
|
17 |
+
"name": "Poetry Debug: Python File",
|
18 |
+
"type": "python",
|
19 |
+
"request": "launch",
|
20 |
+
"program": "${file}",
|
21 |
+
"python": "/home/user/.cache/pypoetry/virtualenvs/fastapi-django-zrSR0Z2A-py3.10/bin/python",
|
22 |
+
"justMyCode": false
|
23 |
+
}
|
24 |
+
]
|
25 |
+
}
|
26 |
+
|
.vscode/settings.json
CHANGED
@@ -1,8 +1,14 @@
|
|
1 |
{
|
2 |
-
"
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
{
|
2 |
+
"version": "0.2.0",
|
3 |
+
"configurations": [
|
4 |
+
{
|
5 |
+
"name": "Run test.py directly",
|
6 |
+
"type": "python",
|
7 |
+
"request": "launch",
|
8 |
+
"program": "${workspaceFolder}/test.py",
|
9 |
+
"console": "integratedTerminal",
|
10 |
+
"justMyCode": false
|
11 |
+
}
|
12 |
+
]
|
13 |
+
}
|
14 |
+
|
poetry.lock
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# This file is automatically @generated by Poetry 1.
|
2 |
|
3 |
[[package]]
|
4 |
name = "annotated-types"
|
@@ -6,6 +6,7 @@ version = "0.6.0"
|
|
6 |
description = "Reusable constraint types to use with typing.Annotated"
|
7 |
optional = false
|
8 |
python-versions = ">=3.8"
|
|
|
9 |
files = [
|
10 |
{file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"},
|
11 |
{file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
|
@@ -17,6 +18,7 @@ version = "4.3.0"
|
|
17 |
description = "High level compatibility layer for multiple asynchronous event loop implementations"
|
18 |
optional = false
|
19 |
python-versions = ">=3.8"
|
|
|
20 |
files = [
|
21 |
{file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"},
|
22 |
{file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"},
|
@@ -30,7 +32,7 @@ typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
|
|
30 |
|
31 |
[package.extras]
|
32 |
doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
|
33 |
-
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"]
|
34 |
trio = ["trio (>=0.23)"]
|
35 |
|
36 |
[[package]]
|
@@ -39,6 +41,7 @@ version = "3.8.1"
|
|
39 |
description = "ASGI specs, helper code, and adapters"
|
40 |
optional = false
|
41 |
python-versions = ">=3.8"
|
|
|
42 |
files = [
|
43 |
{file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"},
|
44 |
{file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"},
|
@@ -56,6 +59,7 @@ version = "2.4.1"
|
|
56 |
description = "Annotate AST trees with source code positions"
|
57 |
optional = false
|
58 |
python-versions = "*"
|
|
|
59 |
files = [
|
60 |
{file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
|
61 |
{file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
|
@@ -65,8 +69,8 @@ files = [
|
|
65 |
six = ">=1.12.0"
|
66 |
|
67 |
[package.extras]
|
68 |
-
astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"]
|
69 |
-
test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"]
|
70 |
|
71 |
[[package]]
|
72 |
name = "click"
|
@@ -74,6 +78,7 @@ version = "8.1.7"
|
|
74 |
description = "Composable command line interface toolkit"
|
75 |
optional = false
|
76 |
python-versions = ">=3.7"
|
|
|
77 |
files = [
|
78 |
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
|
79 |
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
|
@@ -88,10 +93,48 @@ version = "0.4.6"
|
|
88 |
description = "Cross-platform colored terminal text."
|
89 |
optional = false
|
90 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
|
|
91 |
files = [
|
92 |
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
93 |
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
94 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
[[package]]
|
97 |
name = "decorator"
|
@@ -99,6 +142,7 @@ version = "5.1.1"
|
|
99 |
description = "Decorators for Humans"
|
100 |
optional = false
|
101 |
python-versions = ">=3.5"
|
|
|
102 |
files = [
|
103 |
{file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
|
104 |
{file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
|
@@ -110,6 +154,7 @@ version = "5.0.4"
|
|
110 |
description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
|
111 |
optional = false
|
112 |
python-versions = ">=3.10"
|
|
|
113 |
files = [
|
114 |
{file = "Django-5.0.4-py3-none-any.whl", hash = "sha256:916423499d75d62da7aa038d19aef23d23498d8df229775eb0a6309ee1013775"},
|
115 |
{file = "Django-5.0.4.tar.gz", hash = "sha256:4bd01a8c830bb77a8a3b0e7d8b25b887e536ad17a81ba2dce5476135c73312bd"},
|
@@ -130,6 +175,7 @@ version = "4.2.7"
|
|
130 |
description = "Mypy stubs for Django"
|
131 |
optional = false
|
132 |
python-versions = ">=3.8"
|
|
|
133 |
files = [
|
134 |
{file = "django-stubs-4.2.7.tar.gz", hash = "sha256:8ccd2ff4ee5adf22b9e3b7b1a516d2e1c2191e9d94e672c35cc2bc3dd61e0f6b"},
|
135 |
{file = "django_stubs-4.2.7-py3-none-any.whl", hash = "sha256:4cf4de258fa71adc6f2799e983091b9d46cfc67c6eebc68fe111218c9a62b3b8"},
|
@@ -153,6 +199,7 @@ version = "4.2.7"
|
|
153 |
description = "Monkey-patching and extensions for django-stubs"
|
154 |
optional = false
|
155 |
python-versions = ">=3.8"
|
|
|
156 |
files = [
|
157 |
{file = "django-stubs-ext-4.2.7.tar.gz", hash = "sha256:519342ac0849cda1559746c9a563f03ff99f636b0ebe7c14b75e816a00dfddc3"},
|
158 |
{file = "django_stubs_ext-4.2.7-py3-none-any.whl", hash = "sha256:45a5d102417a412e3606e3c358adb4744988a92b7b58ccf3fd64bddd5d04d14c"},
|
@@ -168,6 +215,8 @@ version = "1.2.0"
|
|
168 |
description = "Backport of PEP 654 (exception groups)"
|
169 |
optional = false
|
170 |
python-versions = ">=3.7"
|
|
|
|
|
171 |
files = [
|
172 |
{file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
|
173 |
{file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
|
@@ -182,13 +231,14 @@ version = "2.0.1"
|
|
182 |
description = "Get the currently executing AST node of a frame, and other information"
|
183 |
optional = false
|
184 |
python-versions = ">=3.5"
|
|
|
185 |
files = [
|
186 |
{file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"},
|
187 |
{file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"},
|
188 |
]
|
189 |
|
190 |
[package.extras]
|
191 |
-
tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"]
|
192 |
|
193 |
[[package]]
|
194 |
name = "fastapi"
|
@@ -196,6 +246,7 @@ version = "0.110.1"
|
|
196 |
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
|
197 |
optional = false
|
198 |
python-versions = ">=3.8"
|
|
|
199 |
files = [
|
200 |
{file = "fastapi-0.110.1-py3-none-any.whl", hash = "sha256:5df913203c482f820d31f48e635e022f8cbfe7350e4830ef05a3163925b1addc"},
|
201 |
{file = "fastapi-0.110.1.tar.gz", hash = "sha256:6feac43ec359dfe4f45b2c18ec8c94edb8dc2dfc461d417d9e626590c071baad"},
|
@@ -215,6 +266,7 @@ version = "0.14.0"
|
|
215 |
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
|
216 |
optional = false
|
217 |
python-versions = ">=3.7"
|
|
|
218 |
files = [
|
219 |
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
|
220 |
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
|
@@ -226,6 +278,7 @@ version = "3.7"
|
|
226 |
description = "Internationalized Domain Names in Applications (IDNA)"
|
227 |
optional = false
|
228 |
python-versions = ">=3.5"
|
|
|
229 |
files = [
|
230 |
{file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
|
231 |
{file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
|
@@ -237,6 +290,7 @@ version = "8.23.0"
|
|
237 |
description = "IPython: Productive Interactive Computing"
|
238 |
optional = false
|
239 |
python-versions = ">=3.10"
|
|
|
240 |
files = [
|
241 |
{file = "ipython-8.23.0-py3-none-any.whl", hash = "sha256:07232af52a5ba146dc3372c7bf52a0f890a23edf38d77caef8d53f9cdc2584c1"},
|
242 |
{file = "ipython-8.23.0.tar.gz", hash = "sha256:7468edaf4f6de3e1b912e57f66c241e6fd3c7099f2ec2136e239e142e800274d"},
|
@@ -275,6 +329,7 @@ version = "0.19.1"
|
|
275 |
description = "An autocompletion tool for Python that can be used for text editors."
|
276 |
optional = false
|
277 |
python-versions = ">=3.6"
|
|
|
278 |
files = [
|
279 |
{file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"},
|
280 |
{file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"},
|
@@ -294,6 +349,7 @@ version = "0.1.6"
|
|
294 |
description = "Inline Matplotlib backend for Jupyter"
|
295 |
optional = false
|
296 |
python-versions = ">=3.5"
|
|
|
297 |
files = [
|
298 |
{file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"},
|
299 |
{file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"},
|
@@ -308,6 +364,7 @@ version = "1.7.1"
|
|
308 |
description = "Optional static typing for Python"
|
309 |
optional = false
|
310 |
python-versions = ">=3.8"
|
|
|
311 |
files = [
|
312 |
{file = "mypy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12cce78e329838d70a204293e7b29af9faa3ab14899aec397798a4b41be7f340"},
|
313 |
{file = "mypy-1.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1484b8fa2c10adf4474f016e09d7a159602f3239075c7bf9f1627f5acf40ad49"},
|
@@ -355,6 +412,7 @@ version = "1.0.0"
|
|
355 |
description = "Type system extensions for programs checked with the mypy type checker."
|
356 |
optional = false
|
357 |
python-versions = ">=3.5"
|
|
|
358 |
files = [
|
359 |
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
|
360 |
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
|
@@ -366,6 +424,7 @@ version = "0.8.4"
|
|
366 |
description = "A Python Parser"
|
367 |
optional = false
|
368 |
python-versions = ">=3.6"
|
|
|
369 |
files = [
|
370 |
{file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
|
371 |
{file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"},
|
@@ -381,6 +440,8 @@ version = "4.9.0"
|
|
381 |
description = "Pexpect allows easy control of interactive console applications."
|
382 |
optional = false
|
383 |
python-versions = "*"
|
|
|
|
|
384 |
files = [
|
385 |
{file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"},
|
386 |
{file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"},
|
@@ -395,6 +456,7 @@ version = "3.0.43"
|
|
395 |
description = "Library for building powerful interactive command lines in Python"
|
396 |
optional = false
|
397 |
python-versions = ">=3.7.0"
|
|
|
398 |
files = [
|
399 |
{file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"},
|
400 |
{file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"},
|
@@ -409,6 +471,7 @@ version = "2.9.9"
|
|
409 |
description = "psycopg2 - Python-PostgreSQL Database Adapter"
|
410 |
optional = false
|
411 |
python-versions = ">=3.7"
|
|
|
412 |
files = [
|
413 |
{file = "psycopg2-2.9.9-cp310-cp310-win32.whl", hash = "sha256:38a8dcc6856f569068b47de286b472b7c473ac7977243593a288ebce0dc89516"},
|
414 |
{file = "psycopg2-2.9.9-cp310-cp310-win_amd64.whl", hash = "sha256:426f9f29bde126913a20a96ff8ce7d73fd8a216cfb323b1f04da402d452853c3"},
|
@@ -431,6 +494,8 @@ version = "0.7.0"
|
|
431 |
description = "Run a subprocess in a pseudo terminal"
|
432 |
optional = false
|
433 |
python-versions = "*"
|
|
|
|
|
434 |
files = [
|
435 |
{file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
|
436 |
{file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
|
@@ -442,6 +507,7 @@ version = "0.2.2"
|
|
442 |
description = "Safely evaluate AST nodes without side effects"
|
443 |
optional = false
|
444 |
python-versions = "*"
|
|
|
445 |
files = [
|
446 |
{file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"},
|
447 |
{file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"},
|
@@ -456,6 +522,7 @@ version = "2.6.4"
|
|
456 |
description = "Data validation using Python type hints"
|
457 |
optional = false
|
458 |
python-versions = ">=3.8"
|
|
|
459 |
files = [
|
460 |
{file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"},
|
461 |
{file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"},
|
@@ -475,6 +542,7 @@ version = "2.16.3"
|
|
475 |
description = ""
|
476 |
optional = false
|
477 |
python-versions = ">=3.8"
|
|
|
478 |
files = [
|
479 |
{file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"},
|
480 |
{file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"},
|
@@ -566,21 +634,105 @@ version = "2.17.2"
|
|
566 |
description = "Pygments is a syntax highlighting package written in Python."
|
567 |
optional = false
|
568 |
python-versions = ">=3.7"
|
|
|
569 |
files = [
|
570 |
{file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"},
|
571 |
{file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"},
|
572 |
]
|
573 |
|
574 |
[package.extras]
|
575 |
-
plugins = ["importlib-metadata"]
|
576 |
windows-terminal = ["colorama (>=0.4.6)"]
|
577 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
[[package]]
|
579 |
name = "ruff"
|
580 |
version = "0.3.5"
|
581 |
description = "An extremely fast Python linter and code formatter, written in Rust."
|
582 |
optional = false
|
583 |
python-versions = ">=3.7"
|
|
|
584 |
files = [
|
585 |
{file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:aef5bd3b89e657007e1be6b16553c8813b221ff6d92c7526b7e0227450981eac"},
|
586 |
{file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:89b1e92b3bd9fca249153a97d23f29bed3992cff414b222fcd361d763fc53f12"},
|
@@ -607,6 +759,7 @@ version = "1.16.0"
|
|
607 |
description = "Python 2 and 3 compatibility utilities"
|
608 |
optional = false
|
609 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
|
|
610 |
files = [
|
611 |
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
612 |
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
@@ -618,6 +771,7 @@ version = "1.3.1"
|
|
618 |
description = "Sniff out which async library your code is running under"
|
619 |
optional = false
|
620 |
python-versions = ">=3.7"
|
|
|
621 |
files = [
|
622 |
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
|
623 |
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
|
@@ -629,6 +783,7 @@ version = "0.5.0"
|
|
629 |
description = "A non-validating SQL parser."
|
630 |
optional = false
|
631 |
python-versions = ">=3.8"
|
|
|
632 |
files = [
|
633 |
{file = "sqlparse-0.5.0-py3-none-any.whl", hash = "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663"},
|
634 |
{file = "sqlparse-0.5.0.tar.gz", hash = "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93"},
|
@@ -644,6 +799,7 @@ version = "0.6.3"
|
|
644 |
description = "Extract data from python stack frames and tracebacks for informative displays"
|
645 |
optional = false
|
646 |
python-versions = "*"
|
|
|
647 |
files = [
|
648 |
{file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"},
|
649 |
{file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"},
|
@@ -663,6 +819,7 @@ version = "0.37.2"
|
|
663 |
description = "The little ASGI library that shines."
|
664 |
optional = false
|
665 |
python-versions = ">=3.8"
|
|
|
666 |
files = [
|
667 |
{file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"},
|
668 |
{file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"},
|
@@ -680,6 +837,8 @@ version = "2.0.1"
|
|
680 |
description = "A lil' TOML parser"
|
681 |
optional = false
|
682 |
python-versions = ">=3.7"
|
|
|
|
|
683 |
files = [
|
684 |
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
685 |
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
@@ -691,6 +850,7 @@ version = "5.14.2"
|
|
691 |
description = "Traitlets Python configuration system"
|
692 |
optional = false
|
693 |
python-versions = ">=3.8"
|
|
|
694 |
files = [
|
695 |
{file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"},
|
696 |
{file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"},
|
@@ -706,6 +866,7 @@ version = "2024.1.0.20240203"
|
|
706 |
description = "Typing stubs for pytz"
|
707 |
optional = false
|
708 |
python-versions = ">=3.8"
|
|
|
709 |
files = [
|
710 |
{file = "types-pytz-2024.1.0.20240203.tar.gz", hash = "sha256:c93751ee20dfc6e054a0148f8f5227b9a00b79c90a4d3c9f464711a73179c89e"},
|
711 |
{file = "types_pytz-2024.1.0.20240203-py3-none-any.whl", hash = "sha256:9679eef0365db3af91ef7722c199dbb75ee5c1b67e3c4dd7bfbeb1b8a71c21a3"},
|
@@ -717,6 +878,7 @@ version = "6.0.12.20240311"
|
|
717 |
description = "Typing stubs for PyYAML"
|
718 |
optional = false
|
719 |
python-versions = ">=3.8"
|
|
|
720 |
files = [
|
721 |
{file = "types-PyYAML-6.0.12.20240311.tar.gz", hash = "sha256:a9e0f0f88dc835739b0c1ca51ee90d04ca2a897a71af79de9aec5f38cb0a5342"},
|
722 |
{file = "types_PyYAML-6.0.12.20240311-py3-none-any.whl", hash = "sha256:b845b06a1c7e54b8e5b4c683043de0d9caf205e7434b3edc678ff2411979b8f6"},
|
@@ -728,6 +890,7 @@ version = "4.11.0"
|
|
728 |
description = "Backported and Experimental Type Hints for Python 3.8+"
|
729 |
optional = false
|
730 |
python-versions = ">=3.8"
|
|
|
731 |
files = [
|
732 |
{file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"},
|
733 |
{file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"},
|
@@ -739,6 +902,8 @@ version = "2024.1"
|
|
739 |
description = "Provider of IANA time zone data"
|
740 |
optional = false
|
741 |
python-versions = ">=2"
|
|
|
|
|
742 |
files = [
|
743 |
{file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"},
|
744 |
{file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"},
|
@@ -750,6 +915,7 @@ version = "0.29.0"
|
|
750 |
description = "The lightning-fast ASGI server."
|
751 |
optional = false
|
752 |
python-versions = ">=3.8"
|
|
|
753 |
files = [
|
754 |
{file = "uvicorn-0.29.0-py3-none-any.whl", hash = "sha256:2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de"},
|
755 |
{file = "uvicorn-0.29.0.tar.gz", hash = "sha256:6a69214c0b6a087462412670b3ef21224fa48cae0e452b5883e8e8bdfdd11dd0"},
|
@@ -761,7 +927,7 @@ h11 = ">=0.8"
|
|
761 |
typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""}
|
762 |
|
763 |
[package.extras]
|
764 |
-
standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"]
|
765 |
|
766 |
[[package]]
|
767 |
name = "uvloop"
|
@@ -769,6 +935,8 @@ version = "0.19.0"
|
|
769 |
description = "Fast implementation of asyncio event loop on top of libuv"
|
770 |
optional = false
|
771 |
python-versions = ">=3.8.0"
|
|
|
|
|
772 |
files = [
|
773 |
{file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de4313d7f575474c8f5a12e163f6d89c0a878bc49219641d49e6f1444369a90e"},
|
774 |
{file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5588bd21cf1fcf06bded085f37e43ce0e00424197e7c10e77afd4bbefffef428"},
|
@@ -805,7 +973,7 @@ files = [
|
|
805 |
|
806 |
[package.extras]
|
807 |
docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"]
|
808 |
-
test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"]
|
809 |
|
810 |
[[package]]
|
811 |
name = "wcwidth"
|
@@ -813,6 +981,7 @@ version = "0.2.13"
|
|
813 |
description = "Measures the displayed width of unicode strings in a terminal"
|
814 |
optional = false
|
815 |
python-versions = "*"
|
|
|
816 |
files = [
|
817 |
{file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
|
818 |
{file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
|
@@ -824,6 +993,7 @@ version = "6.6.0"
|
|
824 |
description = "Radically simplified static file serving for WSGI applications"
|
825 |
optional = false
|
826 |
python-versions = ">=3.8"
|
|
|
827 |
files = [
|
828 |
{file = "whitenoise-6.6.0-py3-none-any.whl", hash = "sha256:b1f9db9bf67dc183484d760b99f4080185633136a273a03f6436034a41064146"},
|
829 |
{file = "whitenoise-6.6.0.tar.gz", hash = "sha256:8998f7370973447fac1e8ef6e8ded2c5209a7b1f67c1012866dbcd09681c3251"},
|
@@ -833,6 +1003,6 @@ files = [
|
|
833 |
brotli = ["Brotli"]
|
834 |
|
835 |
[metadata]
|
836 |
-
lock-version = "2.
|
837 |
python-versions = "^3.10"
|
838 |
-
content-hash = "
|
|
|
1 |
+
# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand.
|
2 |
|
3 |
[[package]]
|
4 |
name = "annotated-types"
|
|
|
6 |
description = "Reusable constraint types to use with typing.Annotated"
|
7 |
optional = false
|
8 |
python-versions = ">=3.8"
|
9 |
+
groups = ["main"]
|
10 |
files = [
|
11 |
{file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"},
|
12 |
{file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
|
|
|
18 |
description = "High level compatibility layer for multiple asynchronous event loop implementations"
|
19 |
optional = false
|
20 |
python-versions = ">=3.8"
|
21 |
+
groups = ["main"]
|
22 |
files = [
|
23 |
{file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"},
|
24 |
{file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"},
|
|
|
32 |
|
33 |
[package.extras]
|
34 |
doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
|
35 |
+
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\""]
|
36 |
trio = ["trio (>=0.23)"]
|
37 |
|
38 |
[[package]]
|
|
|
41 |
description = "ASGI specs, helper code, and adapters"
|
42 |
optional = false
|
43 |
python-versions = ">=3.8"
|
44 |
+
groups = ["main", "dev"]
|
45 |
files = [
|
46 |
{file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"},
|
47 |
{file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"},
|
|
|
59 |
description = "Annotate AST trees with source code positions"
|
60 |
optional = false
|
61 |
python-versions = "*"
|
62 |
+
groups = ["dev"]
|
63 |
files = [
|
64 |
{file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
|
65 |
{file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
|
|
|
69 |
six = ">=1.12.0"
|
70 |
|
71 |
[package.extras]
|
72 |
+
astroid = ["astroid (>=1,<2) ; python_version < \"3\"", "astroid (>=2,<4) ; python_version >= \"3\""]
|
73 |
+
test = ["astroid (>=1,<2) ; python_version < \"3\"", "astroid (>=2,<4) ; python_version >= \"3\"", "pytest"]
|
74 |
|
75 |
[[package]]
|
76 |
name = "click"
|
|
|
78 |
description = "Composable command line interface toolkit"
|
79 |
optional = false
|
80 |
python-versions = ">=3.7"
|
81 |
+
groups = ["main"]
|
82 |
files = [
|
83 |
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
|
84 |
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
|
|
|
93 |
description = "Cross-platform colored terminal text."
|
94 |
optional = false
|
95 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
96 |
+
groups = ["main", "dev"]
|
97 |
files = [
|
98 |
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
99 |
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
100 |
]
|
101 |
+
markers = {main = "platform_system == \"Windows\"", dev = "sys_platform == \"win32\""}
|
102 |
+
|
103 |
+
[[package]]
|
104 |
+
name = "debugpy"
|
105 |
+
version = "1.8.14"
|
106 |
+
description = "An implementation of the Debug Adapter Protocol for Python"
|
107 |
+
optional = false
|
108 |
+
python-versions = ">=3.8"
|
109 |
+
groups = ["main"]
|
110 |
+
files = [
|
111 |
+
{file = "debugpy-1.8.14-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:93fee753097e85623cab1c0e6a68c76308cd9f13ffdf44127e6fab4fbf024339"},
|
112 |
+
{file = "debugpy-1.8.14-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d937d93ae4fa51cdc94d3e865f535f185d5f9748efb41d0d49e33bf3365bd79"},
|
113 |
+
{file = "debugpy-1.8.14-cp310-cp310-win32.whl", hash = "sha256:c442f20577b38cc7a9aafecffe1094f78f07fb8423c3dddb384e6b8f49fd2987"},
|
114 |
+
{file = "debugpy-1.8.14-cp310-cp310-win_amd64.whl", hash = "sha256:f117dedda6d969c5c9483e23f573b38f4e39412845c7bc487b6f2648df30fe84"},
|
115 |
+
{file = "debugpy-1.8.14-cp311-cp311-macosx_14_0_universal2.whl", hash = "sha256:1b2ac8c13b2645e0b1eaf30e816404990fbdb168e193322be8f545e8c01644a9"},
|
116 |
+
{file = "debugpy-1.8.14-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf431c343a99384ac7eab2f763980724834f933a271e90496944195318c619e2"},
|
117 |
+
{file = "debugpy-1.8.14-cp311-cp311-win32.whl", hash = "sha256:c99295c76161ad8d507b413cd33422d7c542889fbb73035889420ac1fad354f2"},
|
118 |
+
{file = "debugpy-1.8.14-cp311-cp311-win_amd64.whl", hash = "sha256:7816acea4a46d7e4e50ad8d09d963a680ecc814ae31cdef3622eb05ccacf7b01"},
|
119 |
+
{file = "debugpy-1.8.14-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:8899c17920d089cfa23e6005ad9f22582fd86f144b23acb9feeda59e84405b84"},
|
120 |
+
{file = "debugpy-1.8.14-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6bb5c0dcf80ad5dbc7b7d6eac484e2af34bdacdf81df09b6a3e62792b722826"},
|
121 |
+
{file = "debugpy-1.8.14-cp312-cp312-win32.whl", hash = "sha256:281d44d248a0e1791ad0eafdbbd2912ff0de9eec48022a5bfbc332957487ed3f"},
|
122 |
+
{file = "debugpy-1.8.14-cp312-cp312-win_amd64.whl", hash = "sha256:5aa56ef8538893e4502a7d79047fe39b1dae08d9ae257074c6464a7b290b806f"},
|
123 |
+
{file = "debugpy-1.8.14-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:329a15d0660ee09fec6786acdb6e0443d595f64f5d096fc3e3ccf09a4259033f"},
|
124 |
+
{file = "debugpy-1.8.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f920c7f9af409d90f5fd26e313e119d908b0dd2952c2393cd3247a462331f15"},
|
125 |
+
{file = "debugpy-1.8.14-cp313-cp313-win32.whl", hash = "sha256:3784ec6e8600c66cbdd4ca2726c72d8ca781e94bce2f396cc606d458146f8f4e"},
|
126 |
+
{file = "debugpy-1.8.14-cp313-cp313-win_amd64.whl", hash = "sha256:684eaf43c95a3ec39a96f1f5195a7ff3d4144e4a18d69bb66beeb1a6de605d6e"},
|
127 |
+
{file = "debugpy-1.8.14-cp38-cp38-macosx_14_0_x86_64.whl", hash = "sha256:d5582bcbe42917bc6bbe5c12db1bffdf21f6bfc28d4554b738bf08d50dc0c8c3"},
|
128 |
+
{file = "debugpy-1.8.14-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5349b7c3735b766a281873fbe32ca9cca343d4cc11ba4a743f84cb854339ff35"},
|
129 |
+
{file = "debugpy-1.8.14-cp38-cp38-win32.whl", hash = "sha256:7118d462fe9724c887d355eef395fae68bc764fd862cdca94e70dcb9ade8a23d"},
|
130 |
+
{file = "debugpy-1.8.14-cp38-cp38-win_amd64.whl", hash = "sha256:d235e4fa78af2de4e5609073972700523e372cf5601742449970110d565ca28c"},
|
131 |
+
{file = "debugpy-1.8.14-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:413512d35ff52c2fb0fd2d65e69f373ffd24f0ecb1fac514c04a668599c5ce7f"},
|
132 |
+
{file = "debugpy-1.8.14-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c9156f7524a0d70b7a7e22b2e311d8ba76a15496fb00730e46dcdeedb9e1eea"},
|
133 |
+
{file = "debugpy-1.8.14-cp39-cp39-win32.whl", hash = "sha256:b44985f97cc3dd9d52c42eb59ee9d7ee0c4e7ecd62bca704891f997de4cef23d"},
|
134 |
+
{file = "debugpy-1.8.14-cp39-cp39-win_amd64.whl", hash = "sha256:b1528cfee6c1b1c698eb10b6b096c598738a8238822d218173d21c3086de8123"},
|
135 |
+
{file = "debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20"},
|
136 |
+
{file = "debugpy-1.8.14.tar.gz", hash = "sha256:7cd287184318416850aa8b60ac90105837bb1e59531898c07569d197d2ed5322"},
|
137 |
+
]
|
138 |
|
139 |
[[package]]
|
140 |
name = "decorator"
|
|
|
142 |
description = "Decorators for Humans"
|
143 |
optional = false
|
144 |
python-versions = ">=3.5"
|
145 |
+
groups = ["dev"]
|
146 |
files = [
|
147 |
{file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
|
148 |
{file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
|
|
|
154 |
description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
|
155 |
optional = false
|
156 |
python-versions = ">=3.10"
|
157 |
+
groups = ["main", "dev"]
|
158 |
files = [
|
159 |
{file = "Django-5.0.4-py3-none-any.whl", hash = "sha256:916423499d75d62da7aa038d19aef23d23498d8df229775eb0a6309ee1013775"},
|
160 |
{file = "Django-5.0.4.tar.gz", hash = "sha256:4bd01a8c830bb77a8a3b0e7d8b25b887e536ad17a81ba2dce5476135c73312bd"},
|
|
|
175 |
description = "Mypy stubs for Django"
|
176 |
optional = false
|
177 |
python-versions = ">=3.8"
|
178 |
+
groups = ["dev"]
|
179 |
files = [
|
180 |
{file = "django-stubs-4.2.7.tar.gz", hash = "sha256:8ccd2ff4ee5adf22b9e3b7b1a516d2e1c2191e9d94e672c35cc2bc3dd61e0f6b"},
|
181 |
{file = "django_stubs-4.2.7-py3-none-any.whl", hash = "sha256:4cf4de258fa71adc6f2799e983091b9d46cfc67c6eebc68fe111218c9a62b3b8"},
|
|
|
199 |
description = "Monkey-patching and extensions for django-stubs"
|
200 |
optional = false
|
201 |
python-versions = ">=3.8"
|
202 |
+
groups = ["dev"]
|
203 |
files = [
|
204 |
{file = "django-stubs-ext-4.2.7.tar.gz", hash = "sha256:519342ac0849cda1559746c9a563f03ff99f636b0ebe7c14b75e816a00dfddc3"},
|
205 |
{file = "django_stubs_ext-4.2.7-py3-none-any.whl", hash = "sha256:45a5d102417a412e3606e3c358adb4744988a92b7b58ccf3fd64bddd5d04d14c"},
|
|
|
215 |
description = "Backport of PEP 654 (exception groups)"
|
216 |
optional = false
|
217 |
python-versions = ">=3.7"
|
218 |
+
groups = ["main", "dev"]
|
219 |
+
markers = "python_version == \"3.10\""
|
220 |
files = [
|
221 |
{file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
|
222 |
{file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
|
|
|
231 |
description = "Get the currently executing AST node of a frame, and other information"
|
232 |
optional = false
|
233 |
python-versions = ">=3.5"
|
234 |
+
groups = ["dev"]
|
235 |
files = [
|
236 |
{file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"},
|
237 |
{file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"},
|
238 |
]
|
239 |
|
240 |
[package.extras]
|
241 |
+
tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich ; python_version >= \"3.11\""]
|
242 |
|
243 |
[[package]]
|
244 |
name = "fastapi"
|
|
|
246 |
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
|
247 |
optional = false
|
248 |
python-versions = ">=3.8"
|
249 |
+
groups = ["main"]
|
250 |
files = [
|
251 |
{file = "fastapi-0.110.1-py3-none-any.whl", hash = "sha256:5df913203c482f820d31f48e635e022f8cbfe7350e4830ef05a3163925b1addc"},
|
252 |
{file = "fastapi-0.110.1.tar.gz", hash = "sha256:6feac43ec359dfe4f45b2c18ec8c94edb8dc2dfc461d417d9e626590c071baad"},
|
|
|
266 |
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
|
267 |
optional = false
|
268 |
python-versions = ">=3.7"
|
269 |
+
groups = ["main"]
|
270 |
files = [
|
271 |
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
|
272 |
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
|
|
|
278 |
description = "Internationalized Domain Names in Applications (IDNA)"
|
279 |
optional = false
|
280 |
python-versions = ">=3.5"
|
281 |
+
groups = ["main"]
|
282 |
files = [
|
283 |
{file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"},
|
284 |
{file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"},
|
|
|
290 |
description = "IPython: Productive Interactive Computing"
|
291 |
optional = false
|
292 |
python-versions = ">=3.10"
|
293 |
+
groups = ["dev"]
|
294 |
files = [
|
295 |
{file = "ipython-8.23.0-py3-none-any.whl", hash = "sha256:07232af52a5ba146dc3372c7bf52a0f890a23edf38d77caef8d53f9cdc2584c1"},
|
296 |
{file = "ipython-8.23.0.tar.gz", hash = "sha256:7468edaf4f6de3e1b912e57f66c241e6fd3c7099f2ec2136e239e142e800274d"},
|
|
|
329 |
description = "An autocompletion tool for Python that can be used for text editors."
|
330 |
optional = false
|
331 |
python-versions = ">=3.6"
|
332 |
+
groups = ["dev"]
|
333 |
files = [
|
334 |
{file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"},
|
335 |
{file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"},
|
|
|
349 |
description = "Inline Matplotlib backend for Jupyter"
|
350 |
optional = false
|
351 |
python-versions = ">=3.5"
|
352 |
+
groups = ["dev"]
|
353 |
files = [
|
354 |
{file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"},
|
355 |
{file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"},
|
|
|
364 |
description = "Optional static typing for Python"
|
365 |
optional = false
|
366 |
python-versions = ">=3.8"
|
367 |
+
groups = ["dev"]
|
368 |
files = [
|
369 |
{file = "mypy-1.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12cce78e329838d70a204293e7b29af9faa3ab14899aec397798a4b41be7f340"},
|
370 |
{file = "mypy-1.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1484b8fa2c10adf4474f016e09d7a159602f3239075c7bf9f1627f5acf40ad49"},
|
|
|
412 |
description = "Type system extensions for programs checked with the mypy type checker."
|
413 |
optional = false
|
414 |
python-versions = ">=3.5"
|
415 |
+
groups = ["dev"]
|
416 |
files = [
|
417 |
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
|
418 |
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
|
|
|
424 |
description = "A Python Parser"
|
425 |
optional = false
|
426 |
python-versions = ">=3.6"
|
427 |
+
groups = ["dev"]
|
428 |
files = [
|
429 |
{file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
|
430 |
{file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"},
|
|
|
440 |
description = "Pexpect allows easy control of interactive console applications."
|
441 |
optional = false
|
442 |
python-versions = "*"
|
443 |
+
groups = ["dev"]
|
444 |
+
markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""
|
445 |
files = [
|
446 |
{file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"},
|
447 |
{file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"},
|
|
|
456 |
description = "Library for building powerful interactive command lines in Python"
|
457 |
optional = false
|
458 |
python-versions = ">=3.7.0"
|
459 |
+
groups = ["dev"]
|
460 |
files = [
|
461 |
{file = "prompt_toolkit-3.0.43-py3-none-any.whl", hash = "sha256:a11a29cb3bf0a28a387fe5122cdb649816a957cd9261dcedf8c9f1fef33eacf6"},
|
462 |
{file = "prompt_toolkit-3.0.43.tar.gz", hash = "sha256:3527b7af26106cbc65a040bcc84839a3566ec1b051bb0bfe953631e704b0ff7d"},
|
|
|
471 |
description = "psycopg2 - Python-PostgreSQL Database Adapter"
|
472 |
optional = false
|
473 |
python-versions = ">=3.7"
|
474 |
+
groups = ["main"]
|
475 |
files = [
|
476 |
{file = "psycopg2-2.9.9-cp310-cp310-win32.whl", hash = "sha256:38a8dcc6856f569068b47de286b472b7c473ac7977243593a288ebce0dc89516"},
|
477 |
{file = "psycopg2-2.9.9-cp310-cp310-win_amd64.whl", hash = "sha256:426f9f29bde126913a20a96ff8ce7d73fd8a216cfb323b1f04da402d452853c3"},
|
|
|
494 |
description = "Run a subprocess in a pseudo terminal"
|
495 |
optional = false
|
496 |
python-versions = "*"
|
497 |
+
groups = ["dev"]
|
498 |
+
markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""
|
499 |
files = [
|
500 |
{file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
|
501 |
{file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
|
|
|
507 |
description = "Safely evaluate AST nodes without side effects"
|
508 |
optional = false
|
509 |
python-versions = "*"
|
510 |
+
groups = ["dev"]
|
511 |
files = [
|
512 |
{file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"},
|
513 |
{file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"},
|
|
|
522 |
description = "Data validation using Python type hints"
|
523 |
optional = false
|
524 |
python-versions = ">=3.8"
|
525 |
+
groups = ["main"]
|
526 |
files = [
|
527 |
{file = "pydantic-2.6.4-py3-none-any.whl", hash = "sha256:cc46fce86607580867bdc3361ad462bab9c222ef042d3da86f2fb333e1d916c5"},
|
528 |
{file = "pydantic-2.6.4.tar.gz", hash = "sha256:b1704e0847db01817624a6b86766967f552dd9dbf3afba4004409f908dcc84e6"},
|
|
|
542 |
description = ""
|
543 |
optional = false
|
544 |
python-versions = ">=3.8"
|
545 |
+
groups = ["main"]
|
546 |
files = [
|
547 |
{file = "pydantic_core-2.16.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:75b81e678d1c1ede0785c7f46690621e4c6e63ccd9192af1f0bd9d504bbb6bf4"},
|
548 |
{file = "pydantic_core-2.16.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c865a7ee6f93783bd5d781af5a4c43dadc37053a5b42f7d18dc019f8c9d2bd1"},
|
|
|
634 |
description = "Pygments is a syntax highlighting package written in Python."
|
635 |
optional = false
|
636 |
python-versions = ">=3.7"
|
637 |
+
groups = ["dev"]
|
638 |
files = [
|
639 |
{file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"},
|
640 |
{file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"},
|
641 |
]
|
642 |
|
643 |
[package.extras]
|
644 |
+
plugins = ["importlib-metadata ; python_version < \"3.8\""]
|
645 |
windows-terminal = ["colorama (>=0.4.6)"]
|
646 |
|
647 |
+
[[package]]
|
648 |
+
name = "pyngrok"
|
649 |
+
version = "7.2.4"
|
650 |
+
description = "A Python wrapper for ngrok"
|
651 |
+
optional = false
|
652 |
+
python-versions = ">=3.8"
|
653 |
+
groups = ["main"]
|
654 |
+
files = [
|
655 |
+
{file = "pyngrok-7.2.4-py3-none-any.whl", hash = "sha256:aab9a49a76f51dd2c69dffc0fdf07d67369118442d12c3fec78eab30590e19b1"},
|
656 |
+
{file = "pyngrok-7.2.4.tar.gz", hash = "sha256:ebb2ec80155ce7e00ebf9247bfd9a367be714857b350ed7cd2267b3400ee5d2d"},
|
657 |
+
]
|
658 |
+
|
659 |
+
[package.dependencies]
|
660 |
+
PyYAML = ">=5.1"
|
661 |
+
|
662 |
+
[package.extras]
|
663 |
+
dev = ["coverage[toml]", "flake8", "flake8-pyproject", "pep8-naming", "psutil", "pytest"]
|
664 |
+
docs = ["Sphinx (<8.2)", "mypy", "sphinx-notfound-page", "sphinx-substitution-extensions", "sphinx_autodoc_typehints (==1.25.2)", "types-PyYAML"]
|
665 |
+
|
666 |
+
[[package]]
|
667 |
+
name = "pyyaml"
|
668 |
+
version = "6.0.2"
|
669 |
+
description = "YAML parser and emitter for Python"
|
670 |
+
optional = false
|
671 |
+
python-versions = ">=3.8"
|
672 |
+
groups = ["main"]
|
673 |
+
files = [
|
674 |
+
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
|
675 |
+
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
|
676 |
+
{file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
|
677 |
+
{file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
|
678 |
+
{file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
|
679 |
+
{file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
|
680 |
+
{file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
|
681 |
+
{file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
|
682 |
+
{file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
|
683 |
+
{file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
|
684 |
+
{file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
|
685 |
+
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
|
686 |
+
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
|
687 |
+
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
|
688 |
+
{file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
|
689 |
+
{file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
|
690 |
+
{file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
|
691 |
+
{file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
|
692 |
+
{file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
|
693 |
+
{file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
|
694 |
+
{file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
|
695 |
+
{file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
|
696 |
+
{file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
|
697 |
+
{file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
|
698 |
+
{file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
|
699 |
+
{file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
|
700 |
+
{file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
|
701 |
+
{file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
|
702 |
+
{file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
|
703 |
+
{file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
|
704 |
+
{file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
|
705 |
+
{file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
|
706 |
+
{file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
|
707 |
+
{file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
|
708 |
+
{file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
|
709 |
+
{file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
|
710 |
+
{file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
|
711 |
+
{file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
|
712 |
+
{file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
|
713 |
+
{file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
|
714 |
+
{file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
|
715 |
+
{file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
|
716 |
+
{file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
|
717 |
+
{file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
|
718 |
+
{file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
|
719 |
+
{file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
|
720 |
+
{file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
|
721 |
+
{file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
|
722 |
+
{file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
|
723 |
+
{file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
|
724 |
+
{file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
|
725 |
+
{file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
|
726 |
+
{file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
|
727 |
+
]
|
728 |
+
|
729 |
[[package]]
|
730 |
name = "ruff"
|
731 |
version = "0.3.5"
|
732 |
description = "An extremely fast Python linter and code formatter, written in Rust."
|
733 |
optional = false
|
734 |
python-versions = ">=3.7"
|
735 |
+
groups = ["dev"]
|
736 |
files = [
|
737 |
{file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:aef5bd3b89e657007e1be6b16553c8813b221ff6d92c7526b7e0227450981eac"},
|
738 |
{file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:89b1e92b3bd9fca249153a97d23f29bed3992cff414b222fcd361d763fc53f12"},
|
|
|
759 |
description = "Python 2 and 3 compatibility utilities"
|
760 |
optional = false
|
761 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
762 |
+
groups = ["dev"]
|
763 |
files = [
|
764 |
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
765 |
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
|
|
771 |
description = "Sniff out which async library your code is running under"
|
772 |
optional = false
|
773 |
python-versions = ">=3.7"
|
774 |
+
groups = ["main"]
|
775 |
files = [
|
776 |
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
|
777 |
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
|
|
|
783 |
description = "A non-validating SQL parser."
|
784 |
optional = false
|
785 |
python-versions = ">=3.8"
|
786 |
+
groups = ["main", "dev"]
|
787 |
files = [
|
788 |
{file = "sqlparse-0.5.0-py3-none-any.whl", hash = "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663"},
|
789 |
{file = "sqlparse-0.5.0.tar.gz", hash = "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93"},
|
|
|
799 |
description = "Extract data from python stack frames and tracebacks for informative displays"
|
800 |
optional = false
|
801 |
python-versions = "*"
|
802 |
+
groups = ["dev"]
|
803 |
files = [
|
804 |
{file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"},
|
805 |
{file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"},
|
|
|
819 |
description = "The little ASGI library that shines."
|
820 |
optional = false
|
821 |
python-versions = ">=3.8"
|
822 |
+
groups = ["main"]
|
823 |
files = [
|
824 |
{file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"},
|
825 |
{file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"},
|
|
|
837 |
description = "A lil' TOML parser"
|
838 |
optional = false
|
839 |
python-versions = ">=3.7"
|
840 |
+
groups = ["dev"]
|
841 |
+
markers = "python_version == \"3.10\""
|
842 |
files = [
|
843 |
{file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"},
|
844 |
{file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"},
|
|
|
850 |
description = "Traitlets Python configuration system"
|
851 |
optional = false
|
852 |
python-versions = ">=3.8"
|
853 |
+
groups = ["dev"]
|
854 |
files = [
|
855 |
{file = "traitlets-5.14.2-py3-none-any.whl", hash = "sha256:fcdf85684a772ddeba87db2f398ce00b40ff550d1528c03c14dbf6a02003cd80"},
|
856 |
{file = "traitlets-5.14.2.tar.gz", hash = "sha256:8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9"},
|
|
|
866 |
description = "Typing stubs for pytz"
|
867 |
optional = false
|
868 |
python-versions = ">=3.8"
|
869 |
+
groups = ["dev"]
|
870 |
files = [
|
871 |
{file = "types-pytz-2024.1.0.20240203.tar.gz", hash = "sha256:c93751ee20dfc6e054a0148f8f5227b9a00b79c90a4d3c9f464711a73179c89e"},
|
872 |
{file = "types_pytz-2024.1.0.20240203-py3-none-any.whl", hash = "sha256:9679eef0365db3af91ef7722c199dbb75ee5c1b67e3c4dd7bfbeb1b8a71c21a3"},
|
|
|
878 |
description = "Typing stubs for PyYAML"
|
879 |
optional = false
|
880 |
python-versions = ">=3.8"
|
881 |
+
groups = ["dev"]
|
882 |
files = [
|
883 |
{file = "types-PyYAML-6.0.12.20240311.tar.gz", hash = "sha256:a9e0f0f88dc835739b0c1ca51ee90d04ca2a897a71af79de9aec5f38cb0a5342"},
|
884 |
{file = "types_PyYAML-6.0.12.20240311-py3-none-any.whl", hash = "sha256:b845b06a1c7e54b8e5b4c683043de0d9caf205e7434b3edc678ff2411979b8f6"},
|
|
|
890 |
description = "Backported and Experimental Type Hints for Python 3.8+"
|
891 |
optional = false
|
892 |
python-versions = ">=3.8"
|
893 |
+
groups = ["main", "dev"]
|
894 |
files = [
|
895 |
{file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"},
|
896 |
{file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"},
|
|
|
902 |
description = "Provider of IANA time zone data"
|
903 |
optional = false
|
904 |
python-versions = ">=2"
|
905 |
+
groups = ["main", "dev"]
|
906 |
+
markers = "sys_platform == \"win32\""
|
907 |
files = [
|
908 |
{file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"},
|
909 |
{file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"},
|
|
|
915 |
description = "The lightning-fast ASGI server."
|
916 |
optional = false
|
917 |
python-versions = ">=3.8"
|
918 |
+
groups = ["main"]
|
919 |
files = [
|
920 |
{file = "uvicorn-0.29.0-py3-none-any.whl", hash = "sha256:2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de"},
|
921 |
{file = "uvicorn-0.29.0.tar.gz", hash = "sha256:6a69214c0b6a087462412670b3ef21224fa48cae0e452b5883e8e8bdfdd11dd0"},
|
|
|
927 |
typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""}
|
928 |
|
929 |
[package.extras]
|
930 |
+
standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"]
|
931 |
|
932 |
[[package]]
|
933 |
name = "uvloop"
|
|
|
935 |
description = "Fast implementation of asyncio event loop on top of libuv"
|
936 |
optional = false
|
937 |
python-versions = ">=3.8.0"
|
938 |
+
groups = ["main"]
|
939 |
+
markers = "sys_platform != \"win32\""
|
940 |
files = [
|
941 |
{file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de4313d7f575474c8f5a12e163f6d89c0a878bc49219641d49e6f1444369a90e"},
|
942 |
{file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5588bd21cf1fcf06bded085f37e43ce0e00424197e7c10e77afd4bbefffef428"},
|
|
|
973 |
|
974 |
[package.extras]
|
975 |
docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"]
|
976 |
+
test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0) ; python_version >= \"3.12\"", "aiohttp (>=3.8.1) ; python_version < \"3.12\"", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"]
|
977 |
|
978 |
[[package]]
|
979 |
name = "wcwidth"
|
|
|
981 |
description = "Measures the displayed width of unicode strings in a terminal"
|
982 |
optional = false
|
983 |
python-versions = "*"
|
984 |
+
groups = ["dev"]
|
985 |
files = [
|
986 |
{file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
|
987 |
{file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
|
|
|
993 |
description = "Radically simplified static file serving for WSGI applications"
|
994 |
optional = false
|
995 |
python-versions = ">=3.8"
|
996 |
+
groups = ["main"]
|
997 |
files = [
|
998 |
{file = "whitenoise-6.6.0-py3-none-any.whl", hash = "sha256:b1f9db9bf67dc183484d760b99f4080185633136a273a03f6436034a41064146"},
|
999 |
{file = "whitenoise-6.6.0.tar.gz", hash = "sha256:8998f7370973447fac1e8ef6e8ded2c5209a7b1f67c1012866dbcd09681c3251"},
|
|
|
1003 |
brotli = ["Brotli"]
|
1004 |
|
1005 |
[metadata]
|
1006 |
+
lock-version = "2.1"
|
1007 |
python-versions = "^3.10"
|
1008 |
+
content-hash = "996ea1f710728315785262d485e929345327d6342345df0df6f4f5291a16c6f6"
|
pyproject.toml
CHANGED
@@ -22,6 +22,8 @@ uvloop = {version = "^0.19.0", markers = 'sys_platform != "win32"'}
|
|
22 |
psycopg2 = "^2.9.5"
|
23 |
# you don't need whitenoise if you mount the django APP with FastAPI
|
24 |
whitenoise = "^6.2.0"
|
|
|
|
|
25 |
|
26 |
[tool.poetry.group.dev.dependencies]
|
27 |
django-stubs = {extras = ["compatible-mypy"], version = "^4.2.3"}
|
|
|
22 |
psycopg2 = "^2.9.5"
|
23 |
# you don't need whitenoise if you mount the django APP with FastAPI
|
24 |
whitenoise = "^6.2.0"
|
25 |
+
pyngrok = "^7.2.4"
|
26 |
+
debugpy = "^1.8.14"
|
27 |
|
28 |
[tool.poetry.group.dev.dependencies]
|
29 |
django-stubs = {extras = ["compatible-mypy"], version = "^4.2.3"}
|
test.php
DELETED
File without changes
|
test.py
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from fastapi import FastAPI
|
2 |
+
import uvicorn
|
3 |
+
import asyncio
|
4 |
+
from pyngrok import ngrok, conf
|
5 |
+
import threading
|
6 |
+
|
7 |
+
# 設定
|
8 |
+
FASTAPI_PORT = 7861
|
9 |
+
NGROK_AUTHTOKEN = "2fAuM2mXP4rwyzcb6T7EjY8zkL6_4mkaaSLXVpf1enNc8c3Ff"
|
10 |
+
|
11 |
+
# FastAPI アプリ
|
12 |
+
app = FastAPI()
|
13 |
+
|
14 |
+
@app.get("/")
|
15 |
+
def root():
|
16 |
+
print("📍 エンドポイント hit!")
|
17 |
+
return {"message": "Hello from FastAPI with ngrok!"}
|
18 |
+
|
19 |
+
# ngrok 起動スレッド
|
20 |
+
def start_ngrok():
|
21 |
+
conf.get_default().auth_token = NGROK_AUTHTOKEN
|
22 |
+
public_url = ngrok.connect(FASTAPI_PORT)
|
23 |
+
print(f"🚪 公開URL: {public_url}")
|
24 |
+
|
25 |
+
threading.Thread(target=start_ngrok, daemon=True).start()
|
26 |
+
|
27 |
+
# 非同期で uvicorn サーバーを起動(VSCodeでも例のエラーが出ない方法)
|
28 |
+
async def start_server():
|
29 |
+
config = uvicorn.Config(app=app, host="0.0.0.0", port=FASTAPI_PORT)
|
30 |
+
server = uvicorn.Server(config)
|
31 |
+
await server.serve()
|
32 |
+
|
33 |
+
# すでにイベントループが動いてるか確認して処理を分ける
|
34 |
+
try:
|
35 |
+
asyncio.get_running_loop().create_task(start_server())
|
36 |
+
except RuntimeError:
|
37 |
+
asyncio.run(start_server())
|