Spaces:
Sleeping
Sleeping
Hiroaki Ogasawara
commited on
Commit
·
22ef21f
1
Parent(s):
9ec8a57
chore: replace with requests
Browse files- .vscode/launch.json +13 -0
- app.py +2 -1
- pyproject.toml +1 -1
- requirements.txt +1 -2
- utils.py +30 -15
- uv.lock +2 -241
.vscode/launch.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": "0.2.0",
|
| 3 |
+
"configurations": [
|
| 4 |
+
{
|
| 5 |
+
"name": "Python Debugger: Current File",
|
| 6 |
+
"type": "debugpy",
|
| 7 |
+
"request": "launch",
|
| 8 |
+
"program": "${file}",
|
| 9 |
+
"console": "integratedTerminal",
|
| 10 |
+
"justMyCode": false
|
| 11 |
+
}
|
| 12 |
+
]
|
| 13 |
+
}
|
app.py
CHANGED
|
@@ -17,7 +17,7 @@ def process_jsonl_file(jsonl_file_path: str, api_key: str):
|
|
| 17 |
json_data = [json.loads(line) for line in content]
|
| 18 |
|
| 19 |
if api_key is not None and api_key != "":
|
| 20 |
-
json_data = evaluate(json_data)
|
| 21 |
|
| 22 |
html_content = report(tasks=json_data)
|
| 23 |
|
|
@@ -41,6 +41,7 @@ with gr.Blocks() as demo:
|
|
| 41 |
|
| 42 |
jsonl_input = gr.File(label="JSONLファイルをアップロード")
|
| 43 |
api_key_input = gr.Textbox(label="APIキーを入力", type="password")
|
|
|
|
| 44 |
process_button = gr.Button("実行")
|
| 45 |
|
| 46 |
output_file = gr.File(label="セルフ評価レポート")
|
|
|
|
| 17 |
json_data = [json.loads(line) for line in content]
|
| 18 |
|
| 19 |
if api_key is not None and api_key != "":
|
| 20 |
+
json_data = evaluate(json_data, api_key)
|
| 21 |
|
| 22 |
html_content = report(tasks=json_data)
|
| 23 |
|
|
|
|
| 41 |
|
| 42 |
jsonl_input = gr.File(label="JSONLファイルをアップロード")
|
| 43 |
api_key_input = gr.Textbox(label="APIキーを入力", type="password")
|
| 44 |
+
gr.Markdown("GeminiのAPIキーの発行は[こちら](https://aistudio.google.com/app/apikey)")
|
| 45 |
process_button = gr.Button("実行")
|
| 46 |
|
| 47 |
output_file = gr.File(label="セルフ評価レポート")
|
pyproject.toml
CHANGED
|
@@ -5,6 +5,6 @@ description = "Add your description here"
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.13"
|
| 7 |
dependencies = [
|
| 8 |
-
"google-generativeai>=0.8.3",
|
| 9 |
"gradio>=5.7.1",
|
|
|
|
| 10 |
]
|
|
|
|
| 5 |
readme = "README.md"
|
| 6 |
requires-python = ">=3.13"
|
| 7 |
dependencies = [
|
|
|
|
| 8 |
"gradio>=5.7.1",
|
| 9 |
+
"requests>=2.32.3",
|
| 10 |
]
|
requirements.txt
CHANGED
|
@@ -1,3 +1,2 @@
|
|
| 1 |
gradio>=5.7.1
|
| 2 |
-
|
| 3 |
-
huggingface_hub==0.25.2
|
|
|
|
| 1 |
gradio>=5.7.1
|
| 2 |
+
requests>=2.32.3
|
|
|
utils.py
CHANGED
|
@@ -1,7 +1,6 @@
|
|
| 1 |
import json
|
| 2 |
|
| 3 |
-
import
|
| 4 |
-
|
| 5 |
|
| 6 |
PREREQUISITE_PROMPT = """\
|
| 7 |
あなたは採点者です。
|
|
@@ -39,10 +38,10 @@ def evaluation_prompt(
|
|
| 39 |
"""
|
| 40 |
|
| 41 |
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
|
| 47 |
evaluations = []
|
| 48 |
for i in range(0, len(results), batch_size):
|
|
@@ -58,18 +57,34 @@ def evaluate(results: list[dict], api_key=str, batch_size: int = 10) -> list[dic
|
|
| 58 |
for result in batch_results
|
| 59 |
]
|
| 60 |
|
| 61 |
-
|
| 62 |
-
[
|
| 63 |
-
|
| 64 |
-
response_mime_type
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
|
| 69 |
for result, score in zip(batch_results, scores):
|
| 70 |
evaluations.append(
|
| 71 |
{
|
| 72 |
-
|
|
|
|
|
|
|
|
|
|
| 73 |
"score": score,
|
| 74 |
}
|
| 75 |
)
|
|
@@ -137,7 +152,7 @@ def report(tasks: list[dict]) -> str:
|
|
| 137 |
<div class="container" id="container"></div>
|
| 138 |
<script>
|
| 139 |
const messages = """
|
| 140 |
-
+
|
| 141 |
+ """;
|
| 142 |
|
| 143 |
// taskId: number
|
|
|
|
| 1 |
import json
|
| 2 |
|
| 3 |
+
import requests
|
|
|
|
| 4 |
|
| 5 |
PREREQUISITE_PROMPT = """\
|
| 6 |
あなたは採点者です。
|
|
|
|
| 38 |
"""
|
| 39 |
|
| 40 |
|
| 41 |
+
# GradioからのGemini SDKを用いた通信がいつまでも終わらないため、REST APIを利用する
|
| 42 |
+
def evaluate(results: list[dict], api_key: str, batch_size: int = 10) -> list[dict]:
|
| 43 |
+
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}"
|
| 44 |
+
headers = {"Content-Type": "application/json"}
|
| 45 |
|
| 46 |
evaluations = []
|
| 47 |
for i in range(0, len(results), batch_size):
|
|
|
|
| 57 |
for result in batch_results
|
| 58 |
]
|
| 59 |
|
| 60 |
+
data = {
|
| 61 |
+
"contents": [{"parts": [{"text": "\n".join(prompts)}]}],
|
| 62 |
+
"generationConfig": {
|
| 63 |
+
"response_mime_type": "application/json",
|
| 64 |
+
"response_schema": {"type": "ARRAY", "items": {"type": "NUMBER"}},
|
| 65 |
+
},
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
response = requests.post(url, headers=headers, data=json.dumps(data))
|
| 69 |
+
|
| 70 |
+
if response.status_code == 200:
|
| 71 |
+
response_data = response.json()
|
| 72 |
+
# Parse the response_data to extract the scores
|
| 73 |
+
scores = json.loads(
|
| 74 |
+
response_data["candidates"][0]["content"]["parts"][0]["text"]
|
| 75 |
+
)
|
| 76 |
+
else:
|
| 77 |
+
raise Exception(
|
| 78 |
+
f"API request failed with status code {response.status_code}: {response.text}"
|
| 79 |
+
)
|
| 80 |
|
| 81 |
for result, score in zip(batch_results, scores):
|
| 82 |
evaluations.append(
|
| 83 |
{
|
| 84 |
+
"input": result["input"],
|
| 85 |
+
"output": result["output"],
|
| 86 |
+
"eval_aspect": result.get("eval_aspect"),
|
| 87 |
+
"target": result.get("target"),
|
| 88 |
"score": score,
|
| 89 |
}
|
| 90 |
)
|
|
|
|
| 152 |
<div class="container" id="container"></div>
|
| 153 |
<script>
|
| 154 |
const messages = """
|
| 155 |
+
+ json.dumps(tasks)
|
| 156 |
+ """;
|
| 157 |
|
| 158 |
// taskId: number
|
uv.lock
CHANGED
|
@@ -72,15 +72,6 @@ wheels = [
|
|
| 72 |
{ url = "https://files.pythonhosted.org/packages/5d/35/be73b6015511aa0173ec595fc579133b797ad532996f2998fd6b8d1bbe6b/audioop_lts-0.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:78bfb3703388c780edf900be66e07de5a3d4105ca8e8720c5c4d67927e0b15d0", size = 23918 },
|
| 73 |
]
|
| 74 |
|
| 75 |
-
[[package]]
|
| 76 |
-
name = "cachetools"
|
| 77 |
-
version = "5.5.0"
|
| 78 |
-
source = { registry = "https://pypi.org/simple" }
|
| 79 |
-
sdist = { url = "https://files.pythonhosted.org/packages/c3/38/a0f315319737ecf45b4319a8cd1f3a908e29d9277b46942263292115eee7/cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a", size = 27661 }
|
| 80 |
-
wheels = [
|
| 81 |
-
{ url = "https://files.pythonhosted.org/packages/a4/07/14f8ad37f2d12a5ce41206c21820d8cb6561b728e51fad4530dff0552a67/cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292", size = 9524 },
|
| 82 |
-
]
|
| 83 |
-
|
| 84 |
[[package]]
|
| 85 |
name = "certifi"
|
| 86 |
version = "2024.8.30"
|
|
@@ -176,116 +167,6 @@ wheels = [
|
|
| 176 |
{ url = "https://files.pythonhosted.org/packages/c6/b2/454d6e7f0158951d8a78c2e1eb4f69ae81beb8dca5fee9809c6c99e9d0d0/fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871", size = 179641 },
|
| 177 |
]
|
| 178 |
|
| 179 |
-
[[package]]
|
| 180 |
-
name = "google-ai-generativelanguage"
|
| 181 |
-
version = "0.6.10"
|
| 182 |
-
source = { registry = "https://pypi.org/simple" }
|
| 183 |
-
dependencies = [
|
| 184 |
-
{ name = "google-api-core", extra = ["grpc"] },
|
| 185 |
-
{ name = "google-auth" },
|
| 186 |
-
{ name = "proto-plus" },
|
| 187 |
-
{ name = "protobuf" },
|
| 188 |
-
]
|
| 189 |
-
sdist = { url = "https://files.pythonhosted.org/packages/a5/71/46543c398629bb883b769041fc10278d4d63aaa2c34744dede1b84ec0207/google_ai_generativelanguage-0.6.10.tar.gz", hash = "sha256:6fa642c964d8728006fe7e8771026fc0b599ae0ebeaf83caf550941e8e693455", size = 795200 }
|
| 190 |
-
wheels = [
|
| 191 |
-
{ url = "https://files.pythonhosted.org/packages/af/6d/db99a295f9caf027bbdd90c41e6ea650a7468392a0e8713719e7abc5f647/google_ai_generativelanguage-0.6.10-py3-none-any.whl", hash = "sha256:854a2bf833d18be05ad5ef13c755567b66a4f4a870f099b62c61fe11bddabcf4", size = 760045 },
|
| 192 |
-
]
|
| 193 |
-
|
| 194 |
-
[[package]]
|
| 195 |
-
name = "google-api-core"
|
| 196 |
-
version = "2.23.0"
|
| 197 |
-
source = { registry = "https://pypi.org/simple" }
|
| 198 |
-
dependencies = [
|
| 199 |
-
{ name = "google-auth" },
|
| 200 |
-
{ name = "googleapis-common-protos" },
|
| 201 |
-
{ name = "proto-plus" },
|
| 202 |
-
{ name = "protobuf" },
|
| 203 |
-
{ name = "requests" },
|
| 204 |
-
]
|
| 205 |
-
sdist = { url = "https://files.pythonhosted.org/packages/fa/6b/b98553c2061c4e2186f5bbfb1aa1a6ef13fc0775c096d18595d3c99ba023/google_api_core-2.23.0.tar.gz", hash = "sha256:2ceb087315e6af43f256704b871d99326b1f12a9d6ce99beaedec99ba26a0ace", size = 160094 }
|
| 206 |
-
wheels = [
|
| 207 |
-
{ url = "https://files.pythonhosted.org/packages/17/a4/c26886d57d90032c5f74c2e80aefdc38ec58551fc46bd4ce79fb2c9389fa/google_api_core-2.23.0-py3-none-any.whl", hash = "sha256:c20100d4c4c41070cf365f1d8ddf5365915291b5eb11b83829fbd1c999b5122f", size = 156554 },
|
| 208 |
-
]
|
| 209 |
-
|
| 210 |
-
[package.optional-dependencies]
|
| 211 |
-
grpc = [
|
| 212 |
-
{ name = "grpcio" },
|
| 213 |
-
{ name = "grpcio-status" },
|
| 214 |
-
]
|
| 215 |
-
|
| 216 |
-
[[package]]
|
| 217 |
-
name = "google-api-python-client"
|
| 218 |
-
version = "2.154.0"
|
| 219 |
-
source = { registry = "https://pypi.org/simple" }
|
| 220 |
-
dependencies = [
|
| 221 |
-
{ name = "google-api-core" },
|
| 222 |
-
{ name = "google-auth" },
|
| 223 |
-
{ name = "google-auth-httplib2" },
|
| 224 |
-
{ name = "httplib2" },
|
| 225 |
-
{ name = "uritemplate" },
|
| 226 |
-
]
|
| 227 |
-
sdist = { url = "https://files.pythonhosted.org/packages/b8/fa/861931cf33f3d91d0d17001af3249cfc2af2b5a1b8472604420c025f3339/google_api_python_client-2.154.0.tar.gz", hash = "sha256:1b420062e03bfcaa1c79e2e00a612d29a6a934151ceb3d272fe150a656dc8f17", size = 12070143 }
|
| 228 |
-
wheels = [
|
| 229 |
-
{ url = "https://files.pythonhosted.org/packages/56/3f/adf5f6b963307765209fc27943516c7c605d250234b01899d524b8f01fe3/google_api_python_client-2.154.0-py2.py3-none-any.whl", hash = "sha256:a521bbbb2ec0ba9d6f307cdd64ed6e21eeac372d1bd7493a4ab5022941f784ad", size = 12573774 },
|
| 230 |
-
]
|
| 231 |
-
|
| 232 |
-
[[package]]
|
| 233 |
-
name = "google-auth"
|
| 234 |
-
version = "2.36.0"
|
| 235 |
-
source = { registry = "https://pypi.org/simple" }
|
| 236 |
-
dependencies = [
|
| 237 |
-
{ name = "cachetools" },
|
| 238 |
-
{ name = "pyasn1-modules" },
|
| 239 |
-
{ name = "rsa" },
|
| 240 |
-
]
|
| 241 |
-
sdist = { url = "https://files.pythonhosted.org/packages/6a/71/4c5387d8a3e46e3526a8190ae396659484377a73b33030614dd3b28e7ded/google_auth-2.36.0.tar.gz", hash = "sha256:545e9618f2df0bcbb7dcbc45a546485b1212624716975a1ea5ae8149ce769ab1", size = 268336 }
|
| 242 |
-
wheels = [
|
| 243 |
-
{ url = "https://files.pythonhosted.org/packages/2d/9a/3d5087d27865c2f0431b942b5c4500b7d1b744dd3262fdc973a4c39d099e/google_auth-2.36.0-py2.py3-none-any.whl", hash = "sha256:51a15d47028b66fd36e5c64a82d2d57480075bccc7da37cde257fc94177a61fb", size = 209519 },
|
| 244 |
-
]
|
| 245 |
-
|
| 246 |
-
[[package]]
|
| 247 |
-
name = "google-auth-httplib2"
|
| 248 |
-
version = "0.2.0"
|
| 249 |
-
source = { registry = "https://pypi.org/simple" }
|
| 250 |
-
dependencies = [
|
| 251 |
-
{ name = "google-auth" },
|
| 252 |
-
{ name = "httplib2" },
|
| 253 |
-
]
|
| 254 |
-
sdist = { url = "https://files.pythonhosted.org/packages/56/be/217a598a818567b28e859ff087f347475c807a5649296fb5a817c58dacef/google-auth-httplib2-0.2.0.tar.gz", hash = "sha256:38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05", size = 10842 }
|
| 255 |
-
wheels = [
|
| 256 |
-
{ url = "https://files.pythonhosted.org/packages/be/8a/fe34d2f3f9470a27b01c9e76226965863f153d5fbe276f83608562e49c04/google_auth_httplib2-0.2.0-py2.py3-none-any.whl", hash = "sha256:b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d", size = 9253 },
|
| 257 |
-
]
|
| 258 |
-
|
| 259 |
-
[[package]]
|
| 260 |
-
name = "google-generativeai"
|
| 261 |
-
version = "0.8.3"
|
| 262 |
-
source = { registry = "https://pypi.org/simple" }
|
| 263 |
-
dependencies = [
|
| 264 |
-
{ name = "google-ai-generativelanguage" },
|
| 265 |
-
{ name = "google-api-core" },
|
| 266 |
-
{ name = "google-api-python-client" },
|
| 267 |
-
{ name = "google-auth" },
|
| 268 |
-
{ name = "protobuf" },
|
| 269 |
-
{ name = "pydantic" },
|
| 270 |
-
{ name = "tqdm" },
|
| 271 |
-
{ name = "typing-extensions" },
|
| 272 |
-
]
|
| 273 |
-
wheels = [
|
| 274 |
-
{ url = "https://files.pythonhosted.org/packages/e9/2f/b5c1d62e94409ed98d5425e83b8e6d3dd475b611be272f561b1a545d273a/google_generativeai-0.8.3-py3-none-any.whl", hash = "sha256:1108ff89d5b8e59f51e63d1a8bf84701cd84656e17ca28d73aeed745e736d9b7", size = 160822 },
|
| 275 |
-
]
|
| 276 |
-
|
| 277 |
-
[[package]]
|
| 278 |
-
name = "googleapis-common-protos"
|
| 279 |
-
version = "1.66.0"
|
| 280 |
-
source = { registry = "https://pypi.org/simple" }
|
| 281 |
-
dependencies = [
|
| 282 |
-
{ name = "protobuf" },
|
| 283 |
-
]
|
| 284 |
-
sdist = { url = "https://files.pythonhosted.org/packages/ff/a7/8e9cccdb1c49870de6faea2a2764fa23f627dd290633103540209f03524c/googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c", size = 114376 }
|
| 285 |
-
wheels = [
|
| 286 |
-
{ url = "https://files.pythonhosted.org/packages/a0/0f/c0713fb2b3d28af4b2fded3291df1c4d4f79a00d15c2374a9e010870016c/googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed", size = 221682 },
|
| 287 |
-
]
|
| 288 |
-
|
| 289 |
[[package]]
|
| 290 |
name = "gradio"
|
| 291 |
version = "5.7.1"
|
|
@@ -341,37 +222,6 @@ wheels = [
|
|
| 341 |
{ url = "https://files.pythonhosted.org/packages/02/dd/d064b3069032eb17fc682085e1152996fc8dcde2acc0d92ef0c790573091/gradio_client-1.5.0-py3-none-any.whl", hash = "sha256:4412edd555461771425355a8791ec4c437913dee515cb415444cb9a87d00bd9c", size = 320150 },
|
| 342 |
]
|
| 343 |
|
| 344 |
-
[[package]]
|
| 345 |
-
name = "grpcio"
|
| 346 |
-
version = "1.68.0"
|
| 347 |
-
source = { registry = "https://pypi.org/simple" }
|
| 348 |
-
sdist = { url = "https://files.pythonhosted.org/packages/d5/da/132615afbfc722df4bba963844843a205aa298fd5f9a03fa2995e8dddf11/grpcio-1.68.0.tar.gz", hash = "sha256:7e7483d39b4a4fddb9906671e9ea21aaad4f031cdfc349fec76bdfa1e404543a", size = 12682655 }
|
| 349 |
-
wheels = [
|
| 350 |
-
{ url = "https://files.pythonhosted.org/packages/fb/2d/d9cbdb75dc99141705f08474e97b181034c2e53a345d94b58e3c55f4dd92/grpcio-1.68.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:fc05759ffbd7875e0ff2bd877be1438dfe97c9312bbc558c8284a9afa1d0f40e", size = 5149697 },
|
| 351 |
-
{ url = "https://files.pythonhosted.org/packages/6f/37/a848871a5adba8cd571fa89e8aabc40ca0c475bd78b2e645e1649b20e095/grpcio-1.68.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:15fa1fe25d365a13bc6d52fcac0e3ee1f9baebdde2c9b3b2425f8a4979fccea1", size = 11084394 },
|
| 352 |
-
{ url = "https://files.pythonhosted.org/packages/1f/52/b09374aab9c9c2f66627ce7de39eef41d73670aa0f75286d91dcc22a2dd8/grpcio-1.68.0-cp313-cp313-manylinux_2_17_aarch64.whl", hash = "sha256:32a9cb4686eb2e89d97022ecb9e1606d132f85c444354c17a7dbde4a455e4a3b", size = 5645417 },
|
| 353 |
-
{ url = "https://files.pythonhosted.org/packages/01/78/ec5ad7c44d7adaf0b932fd41ce8c59a95177a8c79c947c77204600b652db/grpcio-1.68.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dba037ff8d284c8e7ea9a510c8ae0f5b016004f13c3648f72411c464b67ff2fb", size = 6291062 },
|
| 354 |
-
{ url = "https://files.pythonhosted.org/packages/f7/7f/7f5a1a8dc63a42b78ca930d195eb0c97aa7a09e8553bb3a07b7cf37f6bc1/grpcio-1.68.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0efbbd849867e0e569af09e165363ade75cf84f5229b2698d53cf22c7a4f9e21", size = 5906505 },
|
| 355 |
-
{ url = "https://files.pythonhosted.org/packages/41/7b/0b048b8ad1a09fab5f4567fba2a569fb9106c4c1bb473c009c25659542cb/grpcio-1.68.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:4e300e6978df0b65cc2d100c54e097c10dfc7018b9bd890bbbf08022d47f766d", size = 6635069 },
|
| 356 |
-
{ url = "https://files.pythonhosted.org/packages/5e/c5/9f0ebc9cfba8309a15a9786c953ce99eaf4e1ca2df402b3c5ecf42493bd4/grpcio-1.68.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:6f9c7ad1a23e1047f827385f4713b5b8c6c7d325705be1dd3e31fb00dcb2f665", size = 6200683 },
|
| 357 |
-
{ url = "https://files.pythonhosted.org/packages/ce/e1/d3eba05299d5acdae6c11d056308b885f1d1be0b328baa8233d5d139ec1d/grpcio-1.68.0-cp313-cp313-win32.whl", hash = "sha256:3ac7f10850fd0487fcce169c3c55509101c3bde2a3b454869639df2176b60a03", size = 3637301 },
|
| 358 |
-
{ url = "https://files.pythonhosted.org/packages/3c/c1/decb2b368a54c00a6ee815c3f610903f36432e3cb591d43369319826b05e/grpcio-1.68.0-cp313-cp313-win_amd64.whl", hash = "sha256:afbf45a62ba85a720491bfe9b2642f8761ff348006f5ef67e4622621f116b04a", size = 4390939 },
|
| 359 |
-
]
|
| 360 |
-
|
| 361 |
-
[[package]]
|
| 362 |
-
name = "grpcio-status"
|
| 363 |
-
version = "1.68.0"
|
| 364 |
-
source = { registry = "https://pypi.org/simple" }
|
| 365 |
-
dependencies = [
|
| 366 |
-
{ name = "googleapis-common-protos" },
|
| 367 |
-
{ name = "grpcio" },
|
| 368 |
-
{ name = "protobuf" },
|
| 369 |
-
]
|
| 370 |
-
sdist = { url = "https://files.pythonhosted.org/packages/70/95/500b24fc02a98ea16097e978958dd7ab9e16db9316a3f0bdc88d5ff239df/grpcio_status-1.68.0.tar.gz", hash = "sha256:8369823de22ab6a2cddb3804669c149ae7a71819e127c2dca7c2322028d52bea", size = 13666 }
|
| 371 |
-
wheels = [
|
| 372 |
-
{ url = "https://files.pythonhosted.org/packages/40/ba/dc535631a9dffa421b327ebfc961911af54c396aa5324efd122a94f72464/grpcio_status-1.68.0-py3-none-any.whl", hash = "sha256:0a71b15d989f02df803b4ba85c5bf1f43aeaa58ac021e5f9974b8cadc41f784d", size = 14427 },
|
| 373 |
-
]
|
| 374 |
-
|
| 375 |
[[package]]
|
| 376 |
name = "h11"
|
| 377 |
version = "0.14.0"
|
|
@@ -394,18 +244,6 @@ wheels = [
|
|
| 394 |
{ url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
|
| 395 |
]
|
| 396 |
|
| 397 |
-
[[package]]
|
| 398 |
-
name = "httplib2"
|
| 399 |
-
version = "0.22.0"
|
| 400 |
-
source = { registry = "https://pypi.org/simple" }
|
| 401 |
-
dependencies = [
|
| 402 |
-
{ name = "pyparsing" },
|
| 403 |
-
]
|
| 404 |
-
sdist = { url = "https://files.pythonhosted.org/packages/3d/ad/2371116b22d616c194aa25ec410c9c6c37f23599dcd590502b74db197584/httplib2-0.22.0.tar.gz", hash = "sha256:d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81", size = 351116 }
|
| 405 |
-
wheels = [
|
| 406 |
-
{ url = "https://files.pythonhosted.org/packages/a8/6c/d2fbdaaa5959339d53ba38e94c123e4e84b8fbc4b84beb0e70d7c1608486/httplib2-0.22.0-py3-none-any.whl", hash = "sha256:14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc", size = 96854 },
|
| 407 |
-
]
|
| 408 |
-
|
| 409 |
[[package]]
|
| 410 |
name = "httpx"
|
| 411 |
version = "0.28.0"
|
|
@@ -465,14 +303,14 @@ name = "llm-exercise-report"
|
|
| 465 |
version = "0.1.0"
|
| 466 |
source = { virtual = "." }
|
| 467 |
dependencies = [
|
| 468 |
-
{ name = "google-generativeai" },
|
| 469 |
{ name = "gradio" },
|
|
|
|
| 470 |
]
|
| 471 |
|
| 472 |
[package.metadata]
|
| 473 |
requires-dist = [
|
| 474 |
-
{ name = "google-generativeai", specifier = ">=0.8.3" },
|
| 475 |
{ name = "gradio", specifier = ">=5.7.1" },
|
|
|
|
| 476 |
]
|
| 477 |
|
| 478 |
[[package]]
|
|
@@ -610,53 +448,6 @@ wheels = [
|
|
| 610 |
{ url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 },
|
| 611 |
]
|
| 612 |
|
| 613 |
-
[[package]]
|
| 614 |
-
name = "proto-plus"
|
| 615 |
-
version = "1.25.0"
|
| 616 |
-
source = { registry = "https://pypi.org/simple" }
|
| 617 |
-
dependencies = [
|
| 618 |
-
{ name = "protobuf" },
|
| 619 |
-
]
|
| 620 |
-
sdist = { url = "https://files.pythonhosted.org/packages/7e/05/74417b2061e1bf1b82776037cad97094228fa1c1b6e82d08a78d3fb6ddb6/proto_plus-1.25.0.tar.gz", hash = "sha256:fbb17f57f7bd05a68b7707e745e26528b0b3c34e378db91eef93912c54982d91", size = 56124 }
|
| 621 |
-
wheels = [
|
| 622 |
-
{ url = "https://files.pythonhosted.org/packages/dd/25/0b7cc838ae3d76d46539020ec39fc92bfc9acc29367e58fe912702c2a79e/proto_plus-1.25.0-py3-none-any.whl", hash = "sha256:c91fc4a65074ade8e458e95ef8bac34d4008daa7cce4a12d6707066fca648961", size = 50126 },
|
| 623 |
-
]
|
| 624 |
-
|
| 625 |
-
[[package]]
|
| 626 |
-
name = "protobuf"
|
| 627 |
-
version = "5.29.0"
|
| 628 |
-
source = { registry = "https://pypi.org/simple" }
|
| 629 |
-
sdist = { url = "https://files.pythonhosted.org/packages/6a/bb/8e59a30b83102a37d24f907f417febb58e5f544d4f124dd1edcd12e078bf/protobuf-5.29.0.tar.gz", hash = "sha256:445a0c02483869ed8513a585d80020d012c6dc60075f96fa0563a724987b1001", size = 424944 }
|
| 630 |
-
wheels = [
|
| 631 |
-
{ url = "https://files.pythonhosted.org/packages/31/cc/98140acbcc3e3a58c679d50dd4f04c3687bdd19690f388c65bb1ae4c1e5e/protobuf-5.29.0-cp310-abi3-win32.whl", hash = "sha256:ea7fb379b257911c8c020688d455e8f74efd2f734b72dc1ea4b4d7e9fd1326f2", size = 422709 },
|
| 632 |
-
{ url = "https://files.pythonhosted.org/packages/c9/91/38fb97b0cbe96109fa257536ad49dffdac3c8f86b46d9c85dc9e949b5291/protobuf-5.29.0-cp310-abi3-win_amd64.whl", hash = "sha256:34a90cf30c908f47f40ebea7811f743d360e202b6f10d40c02529ebd84afc069", size = 434510 },
|
| 633 |
-
{ url = "https://files.pythonhosted.org/packages/da/97/faeca508d61b231372cdc3006084fd97f21f3c8c726a2de5f2ebb8e4ab78/protobuf-5.29.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:c931c61d0cc143a2e756b1e7f8197a508de5365efd40f83c907a9febf36e6b43", size = 417827 },
|
| 634 |
-
{ url = "https://files.pythonhosted.org/packages/eb/d6/c6a45a285374ab14499a9ef5a69e4e7b4911e641465681c1d602518d6ab2/protobuf-5.29.0-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:85286a47caf63b34fa92fdc1fd98b649a8895db595cfa746c5286eeae890a0b1", size = 319576 },
|
| 635 |
-
{ url = "https://files.pythonhosted.org/packages/ee/2e/cc46181ddce0940647d21a8341bf2eddad247a5d030e8c30c7a342793978/protobuf-5.29.0-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:0d10091d6d03537c3f902279fcf11e95372bdd36a79556311da0487455791b20", size = 319672 },
|
| 636 |
-
{ url = "https://files.pythonhosted.org/packages/7c/6c/dd1f0e8372ec2a8006102871d8da1466b116f3328db96972e19bf24f09ca/protobuf-5.29.0-py3-none-any.whl", hash = "sha256:88c4af76a73183e21061881360240c0cdd3c39d263b4e8fb570aaf83348d608f", size = 172553 },
|
| 637 |
-
]
|
| 638 |
-
|
| 639 |
-
[[package]]
|
| 640 |
-
name = "pyasn1"
|
| 641 |
-
version = "0.6.1"
|
| 642 |
-
source = { registry = "https://pypi.org/simple" }
|
| 643 |
-
sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322 }
|
| 644 |
-
wheels = [
|
| 645 |
-
{ url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135 },
|
| 646 |
-
]
|
| 647 |
-
|
| 648 |
-
[[package]]
|
| 649 |
-
name = "pyasn1-modules"
|
| 650 |
-
version = "0.4.1"
|
| 651 |
-
source = { registry = "https://pypi.org/simple" }
|
| 652 |
-
dependencies = [
|
| 653 |
-
{ name = "pyasn1" },
|
| 654 |
-
]
|
| 655 |
-
sdist = { url = "https://files.pythonhosted.org/packages/1d/67/6afbf0d507f73c32d21084a79946bfcfca5fbc62a72057e9c23797a737c9/pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c", size = 310028 }
|
| 656 |
-
wheels = [
|
| 657 |
-
{ url = "https://files.pythonhosted.org/packages/77/89/bc88a6711935ba795a679ea6ebee07e128050d6382eaa35a0a47c8032bdc/pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd", size = 181537 },
|
| 658 |
-
]
|
| 659 |
-
|
| 660 |
[[package]]
|
| 661 |
name = "pydantic"
|
| 662 |
version = "2.10.2"
|
|
@@ -714,15 +505,6 @@ wheels = [
|
|
| 714 |
{ url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 },
|
| 715 |
]
|
| 716 |
|
| 717 |
-
[[package]]
|
| 718 |
-
name = "pyparsing"
|
| 719 |
-
version = "3.2.0"
|
| 720 |
-
source = { registry = "https://pypi.org/simple" }
|
| 721 |
-
sdist = { url = "https://files.pythonhosted.org/packages/8c/d5/e5aeee5387091148a19e1145f63606619cb5f20b83fccb63efae6474e7b2/pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c", size = 920984 }
|
| 722 |
-
wheels = [
|
| 723 |
-
{ url = "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", size = 106921 },
|
| 724 |
-
]
|
| 725 |
-
|
| 726 |
[[package]]
|
| 727 |
name = "python-dateutil"
|
| 728 |
version = "2.9.0.post0"
|
|
@@ -798,18 +580,6 @@ wheels = [
|
|
| 798 |
{ url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 },
|
| 799 |
]
|
| 800 |
|
| 801 |
-
[[package]]
|
| 802 |
-
name = "rsa"
|
| 803 |
-
version = "4.9"
|
| 804 |
-
source = { registry = "https://pypi.org/simple" }
|
| 805 |
-
dependencies = [
|
| 806 |
-
{ name = "pyasn1" },
|
| 807 |
-
]
|
| 808 |
-
sdist = { url = "https://files.pythonhosted.org/packages/aa/65/7d973b89c4d2351d7fb232c2e452547ddfa243e93131e7cfa766da627b52/rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21", size = 29711 }
|
| 809 |
-
wheels = [
|
| 810 |
-
{ url = "https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", size = 34315 },
|
| 811 |
-
]
|
| 812 |
-
|
| 813 |
[[package]]
|
| 814 |
name = "ruff"
|
| 815 |
version = "0.8.1"
|
|
@@ -949,15 +719,6 @@ wheels = [
|
|
| 949 |
{ url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 },
|
| 950 |
]
|
| 951 |
|
| 952 |
-
[[package]]
|
| 953 |
-
name = "uritemplate"
|
| 954 |
-
version = "4.1.1"
|
| 955 |
-
source = { registry = "https://pypi.org/simple" }
|
| 956 |
-
sdist = { url = "https://files.pythonhosted.org/packages/d2/5a/4742fdba39cd02a56226815abfa72fe0aa81c33bed16ed045647d6000eba/uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0", size = 273898 }
|
| 957 |
-
wheels = [
|
| 958 |
-
{ url = "https://files.pythonhosted.org/packages/81/c0/7461b49cd25aeece13766f02ee576d1db528f1c37ce69aee300e075b485b/uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e", size = 10356 },
|
| 959 |
-
]
|
| 960 |
-
|
| 961 |
[[package]]
|
| 962 |
name = "urllib3"
|
| 963 |
version = "2.2.3"
|
|
|
|
| 72 |
{ url = "https://files.pythonhosted.org/packages/5d/35/be73b6015511aa0173ec595fc579133b797ad532996f2998fd6b8d1bbe6b/audioop_lts-0.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:78bfb3703388c780edf900be66e07de5a3d4105ca8e8720c5c4d67927e0b15d0", size = 23918 },
|
| 73 |
]
|
| 74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
[[package]]
|
| 76 |
name = "certifi"
|
| 77 |
version = "2024.8.30"
|
|
|
|
| 167 |
{ url = "https://files.pythonhosted.org/packages/c6/b2/454d6e7f0158951d8a78c2e1eb4f69ae81beb8dca5fee9809c6c99e9d0d0/fsspec-2024.10.0-py3-none-any.whl", hash = "sha256:03b9a6785766a4de40368b88906366755e2819e758b83705c88cd7cb5fe81871", size = 179641 },
|
| 168 |
]
|
| 169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 170 |
[[package]]
|
| 171 |
name = "gradio"
|
| 172 |
version = "5.7.1"
|
|
|
|
| 222 |
{ url = "https://files.pythonhosted.org/packages/02/dd/d064b3069032eb17fc682085e1152996fc8dcde2acc0d92ef0c790573091/gradio_client-1.5.0-py3-none-any.whl", hash = "sha256:4412edd555461771425355a8791ec4c437913dee515cb415444cb9a87d00bd9c", size = 320150 },
|
| 223 |
]
|
| 224 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 225 |
[[package]]
|
| 226 |
name = "h11"
|
| 227 |
version = "0.14.0"
|
|
|
|
| 244 |
{ url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 },
|
| 245 |
]
|
| 246 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 247 |
[[package]]
|
| 248 |
name = "httpx"
|
| 249 |
version = "0.28.0"
|
|
|
|
| 303 |
version = "0.1.0"
|
| 304 |
source = { virtual = "." }
|
| 305 |
dependencies = [
|
|
|
|
| 306 |
{ name = "gradio" },
|
| 307 |
+
{ name = "requests" },
|
| 308 |
]
|
| 309 |
|
| 310 |
[package.metadata]
|
| 311 |
requires-dist = [
|
|
|
|
| 312 |
{ name = "gradio", specifier = ">=5.7.1" },
|
| 313 |
+
{ name = "requests", specifier = ">=2.32.3" },
|
| 314 |
]
|
| 315 |
|
| 316 |
[[package]]
|
|
|
|
| 448 |
{ url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 },
|
| 449 |
]
|
| 450 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 451 |
[[package]]
|
| 452 |
name = "pydantic"
|
| 453 |
version = "2.10.2"
|
|
|
|
| 505 |
{ url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 },
|
| 506 |
]
|
| 507 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 508 |
[[package]]
|
| 509 |
name = "python-dateutil"
|
| 510 |
version = "2.9.0.post0"
|
|
|
|
| 580 |
{ url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 },
|
| 581 |
]
|
| 582 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 583 |
[[package]]
|
| 584 |
name = "ruff"
|
| 585 |
version = "0.8.1"
|
|
|
|
| 719 |
{ url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 },
|
| 720 |
]
|
| 721 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 722 |
[[package]]
|
| 723 |
name = "urllib3"
|
| 724 |
version = "2.2.3"
|