Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Upload folder using huggingface_hub
Browse files- modules/firebase/messaging.py +67 -0
- pyproject.toml +1 -0
- requirements.txt +66 -6
- server.py +16 -2
- uv.lock +347 -1
modules/firebase/messaging.py
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import json
|
| 2 |
+
import os
|
| 3 |
+
from dotenv import load_dotenv
|
| 4 |
+
import firebase_admin
|
| 5 |
+
from firebase_admin import messaging, credentials
|
| 6 |
+
from google.oauth2.service_account import Credentials
|
| 7 |
+
from pydantic import BaseModel
|
| 8 |
+
from fastapi import HTTPException
|
| 9 |
+
|
| 10 |
+
load_dotenv()
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
class FcmRequest(BaseModel):
|
| 14 |
+
token: str
|
| 15 |
+
title: str
|
| 16 |
+
body: str
|
| 17 |
+
data: dict | None = None
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
class FcmService:
|
| 21 |
+
"""Singleton service for sending Firebase Cloud Messages."""
|
| 22 |
+
|
| 23 |
+
_instance = None
|
| 24 |
+
|
| 25 |
+
def __new__(cls):
|
| 26 |
+
if cls._instance is None:
|
| 27 |
+
cls._instance = super(FcmService, cls).__new__(cls)
|
| 28 |
+
cls._instance._initialize()
|
| 29 |
+
return cls._instance
|
| 30 |
+
|
| 31 |
+
def _initialize(self):
|
| 32 |
+
"""Initialize Firebase Admin SDK once."""
|
| 33 |
+
service_account_json = os.getenv("FIREBASE_SERVICE_ACCOUNT_JSON")
|
| 34 |
+
|
| 35 |
+
if not service_account_json:
|
| 36 |
+
raise RuntimeError("FIREBASE_SERVICE_ACCOUNT_JSON not found in environment variables")
|
| 37 |
+
|
| 38 |
+
# Load service account credentials from env JSON
|
| 39 |
+
cred_info = json.loads(service_account_json)
|
| 40 |
+
|
| 41 |
+
# Initialize Firebase only once
|
| 42 |
+
if not firebase_admin._apps:
|
| 43 |
+
cred = credentials.Certificate(cred_info)
|
| 44 |
+
firebase_admin.initialize_app(cred)
|
| 45 |
+
|
| 46 |
+
self.admin_key = os.getenv("FIREBASE_API_ADMIN_KEY", "super-secret-admin-key")
|
| 47 |
+
|
| 48 |
+
async def send_fcm(self, request: FcmRequest):
|
| 49 |
+
"""Send an FCM notification to a specific device."""
|
| 50 |
+
try:
|
| 51 |
+
message = messaging.Message(
|
| 52 |
+
notification=messaging.Notification(
|
| 53 |
+
title=request.title,
|
| 54 |
+
body=request.body,
|
| 55 |
+
),
|
| 56 |
+
data=request.data or {},
|
| 57 |
+
token=request.token,
|
| 58 |
+
)
|
| 59 |
+
|
| 60 |
+
response = messaging.send(message)
|
| 61 |
+
return {"status": "success", "message_id": response}
|
| 62 |
+
except Exception as e:
|
| 63 |
+
raise HTTPException(status_code=500, detail=str(e))
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
# ✅ Singleton instance
|
| 67 |
+
fcm_service = FcmService()
|
pyproject.toml
CHANGED
|
@@ -10,6 +10,7 @@ dependencies = [
|
|
| 10 |
"dotenv>=0.9.9",
|
| 11 |
"dropbox>=12.0.2",
|
| 12 |
"feedparser>=6.0.12",
|
|
|
|
| 13 |
"google-api-python-client>=2.177.0",
|
| 14 |
"google-auth-httplib2>=0.2.0",
|
| 15 |
"google-auth-oauthlib>=1.2.2",
|
|
|
|
| 10 |
"dotenv>=0.9.9",
|
| 11 |
"dropbox>=12.0.2",
|
| 12 |
"feedparser>=6.0.12",
|
| 13 |
+
"firebase-admin>=7.1.0",
|
| 14 |
"google-api-python-client>=2.177.0",
|
| 15 |
"google-auth-httplib2>=0.2.0",
|
| 16 |
"google-auth-oauthlib>=1.2.2",
|
requirements.txt
CHANGED
|
@@ -34,6 +34,8 @@ brotli==1.1.0
|
|
| 34 |
# via gradio
|
| 35 |
build==1.2.2.post1
|
| 36 |
# via chromadb
|
|
|
|
|
|
|
| 37 |
cachetools==5.5.2
|
| 38 |
# via google-auth
|
| 39 |
certifi==2025.7.14
|
|
@@ -42,6 +44,8 @@ certifi==2025.7.14
|
|
| 42 |
# httpx
|
| 43 |
# kubernetes
|
| 44 |
# requests
|
|
|
|
|
|
|
| 45 |
charset-normalizer==3.4.2
|
| 46 |
# via requests
|
| 47 |
chromadb==1.0.15
|
|
@@ -50,8 +54,16 @@ click==8.2.1
|
|
| 50 |
# via
|
| 51 |
# typer
|
| 52 |
# uvicorn
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
coloredlogs==15.0.1
|
| 54 |
# via onnxruntime
|
|
|
|
|
|
|
| 55 |
dataclasses-json==0.6.7
|
| 56 |
# via langchain-community
|
| 57 |
deprecated==1.2.18
|
|
@@ -79,6 +91,8 @@ filelock==3.18.0
|
|
| 79 |
# huggingface-hub
|
| 80 |
# torch
|
| 81 |
# transformers
|
|
|
|
|
|
|
| 82 |
flatbuffers==25.2.10
|
| 83 |
# via onnxruntime
|
| 84 |
fonttools==4.60.1
|
|
@@ -93,7 +107,12 @@ fsspec==2025.7.0
|
|
| 93 |
# huggingface-hub
|
| 94 |
# torch
|
| 95 |
google-api-core==2.25.1
|
| 96 |
-
# via
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
google-api-python-client==2.177.0
|
| 98 |
# via sanatan-ai (pyproject.toml)
|
| 99 |
google-auth==2.40.3
|
|
@@ -102,6 +121,9 @@ google-auth==2.40.3
|
|
| 102 |
# google-api-python-client
|
| 103 |
# google-auth-httplib2
|
| 104 |
# google-auth-oauthlib
|
|
|
|
|
|
|
|
|
|
| 105 |
# gspread
|
| 106 |
# kubernetes
|
| 107 |
google-auth-httplib2==0.2.0
|
|
@@ -112,9 +134,24 @@ google-auth-oauthlib==1.2.2
|
|
| 112 |
# via
|
| 113 |
# sanatan-ai (pyproject.toml)
|
| 114 |
# gspread
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
googleapis-common-protos==1.70.0
|
| 116 |
# via
|
| 117 |
# google-api-core
|
|
|
|
| 118 |
# opentelemetry-exporter-otlp-proto-grpc
|
| 119 |
gradio==5.46.1
|
| 120 |
# via
|
|
@@ -124,20 +161,28 @@ gradio-client==1.13.1
|
|
| 124 |
# via gradio
|
| 125 |
gradio-modal==0.0.4
|
| 126 |
# via sanatan-ai (pyproject.toml)
|
|
|
|
|
|
|
| 127 |
groovy==0.1.2
|
| 128 |
# via gradio
|
| 129 |
grpcio==1.74.0
|
| 130 |
# via
|
| 131 |
# chromadb
|
|
|
|
|
|
|
| 132 |
# opentelemetry-exporter-otlp-proto-grpc
|
|
|
|
|
|
|
| 133 |
gspread==6.2.1
|
| 134 |
# via sanatan-ai (pyproject.toml)
|
| 135 |
h11==0.16.0
|
| 136 |
# via
|
| 137 |
# httpcore
|
| 138 |
# uvicorn
|
| 139 |
-
|
| 140 |
-
# via
|
|
|
|
|
|
|
| 141 |
httpcore==1.0.9
|
| 142 |
# via httpx
|
| 143 |
httplib2==0.22.0
|
|
@@ -150,6 +195,7 @@ httptools==0.6.4
|
|
| 150 |
httpx==0.28.1
|
| 151 |
# via
|
| 152 |
# chromadb
|
|
|
|
| 153 |
# gradio
|
| 154 |
# gradio-client
|
| 155 |
# langgraph-sdk
|
|
@@ -167,6 +213,8 @@ huggingface-hub==0.34.3
|
|
| 167 |
# transformers
|
| 168 |
humanfriendly==10.0
|
| 169 |
# via coloredlogs
|
|
|
|
|
|
|
| 170 |
idna==3.10
|
| 171 |
# via
|
| 172 |
# anyio
|
|
@@ -257,6 +305,8 @@ mmh3==5.2.0
|
|
| 257 |
# via chromadb
|
| 258 |
mpmath==1.3.0
|
| 259 |
# via sympy
|
|
|
|
|
|
|
| 260 |
multidict==6.6.3
|
| 261 |
# via
|
| 262 |
# aiohttp
|
|
@@ -342,11 +392,15 @@ propcache==0.3.2
|
|
| 342 |
# aiohttp
|
| 343 |
# yarl
|
| 344 |
proto-plus==1.26.1
|
| 345 |
-
# via
|
|
|
|
|
|
|
| 346 |
protobuf==6.31.1
|
| 347 |
# via
|
| 348 |
# google-api-core
|
|
|
|
| 349 |
# googleapis-common-protos
|
|
|
|
| 350 |
# onnxruntime
|
| 351 |
# opentelemetry-proto
|
| 352 |
# proto-plus
|
|
@@ -363,6 +417,8 @@ pybase64==1.4.2
|
|
| 363 |
# via chromadb
|
| 364 |
pycountry==24.6.1
|
| 365 |
# via sanatan-ai (pyproject.toml)
|
|
|
|
|
|
|
| 366 |
pydantic==2.11.7
|
| 367 |
# via
|
| 368 |
# chromadb
|
|
@@ -382,6 +438,8 @@ pydub==0.25.1
|
|
| 382 |
# via gradio
|
| 383 |
pygments==2.19.2
|
| 384 |
# via rich
|
|
|
|
|
|
|
| 385 |
pykakasi==2.3.0
|
| 386 |
# via aksharamukha
|
| 387 |
pyparsing==3.2.3
|
|
@@ -390,6 +448,8 @@ pypika==0.48.9
|
|
| 390 |
# via chromadb
|
| 391 |
pyproject-hooks==1.2.0
|
| 392 |
# via build
|
|
|
|
|
|
|
| 393 |
python-dateutil==2.9.0.post0
|
| 394 |
# via
|
| 395 |
# kubernetes
|
|
@@ -428,8 +488,10 @@ regex==2025.7.34
|
|
| 428 |
requests==2.32.4
|
| 429 |
# via
|
| 430 |
# aksharamukha
|
|
|
|
| 431 |
# dropbox
|
| 432 |
# google-api-core
|
|
|
|
| 433 |
# huggingface-hub
|
| 434 |
# kubernetes
|
| 435 |
# langchain
|
|
@@ -578,8 +640,6 @@ uvicorn==0.35.0
|
|
| 578 |
# via
|
| 579 |
# chromadb
|
| 580 |
# gradio
|
| 581 |
-
uvloop==0.22.1
|
| 582 |
-
# via uvicorn
|
| 583 |
watchfiles==1.1.0
|
| 584 |
# via uvicorn
|
| 585 |
websocket-client==1.8.0
|
|
|
|
| 34 |
# via gradio
|
| 35 |
build==1.2.2.post1
|
| 36 |
# via chromadb
|
| 37 |
+
cachecontrol==0.14.3
|
| 38 |
+
# via firebase-admin
|
| 39 |
cachetools==5.5.2
|
| 40 |
# via google-auth
|
| 41 |
certifi==2025.7.14
|
|
|
|
| 44 |
# httpx
|
| 45 |
# kubernetes
|
| 46 |
# requests
|
| 47 |
+
cffi==2.0.0
|
| 48 |
+
# via cryptography
|
| 49 |
charset-normalizer==3.4.2
|
| 50 |
# via requests
|
| 51 |
chromadb==1.0.15
|
|
|
|
| 54 |
# via
|
| 55 |
# typer
|
| 56 |
# uvicorn
|
| 57 |
+
colorama==0.4.6
|
| 58 |
+
# via
|
| 59 |
+
# build
|
| 60 |
+
# click
|
| 61 |
+
# tqdm
|
| 62 |
+
# uvicorn
|
| 63 |
coloredlogs==15.0.1
|
| 64 |
# via onnxruntime
|
| 65 |
+
cryptography==46.0.3
|
| 66 |
+
# via pyjwt
|
| 67 |
dataclasses-json==0.6.7
|
| 68 |
# via langchain-community
|
| 69 |
deprecated==1.2.18
|
|
|
|
| 91 |
# huggingface-hub
|
| 92 |
# torch
|
| 93 |
# transformers
|
| 94 |
+
firebase-admin==7.1.0
|
| 95 |
+
# via sanatan-ai (pyproject.toml)
|
| 96 |
flatbuffers==25.2.10
|
| 97 |
# via onnxruntime
|
| 98 |
fonttools==4.60.1
|
|
|
|
| 107 |
# huggingface-hub
|
| 108 |
# torch
|
| 109 |
google-api-core==2.25.1
|
| 110 |
+
# via
|
| 111 |
+
# firebase-admin
|
| 112 |
+
# google-api-python-client
|
| 113 |
+
# google-cloud-core
|
| 114 |
+
# google-cloud-firestore
|
| 115 |
+
# google-cloud-storage
|
| 116 |
google-api-python-client==2.177.0
|
| 117 |
# via sanatan-ai (pyproject.toml)
|
| 118 |
google-auth==2.40.3
|
|
|
|
| 121 |
# google-api-python-client
|
| 122 |
# google-auth-httplib2
|
| 123 |
# google-auth-oauthlib
|
| 124 |
+
# google-cloud-core
|
| 125 |
+
# google-cloud-firestore
|
| 126 |
+
# google-cloud-storage
|
| 127 |
# gspread
|
| 128 |
# kubernetes
|
| 129 |
google-auth-httplib2==0.2.0
|
|
|
|
| 134 |
# via
|
| 135 |
# sanatan-ai (pyproject.toml)
|
| 136 |
# gspread
|
| 137 |
+
google-cloud-core==2.5.0
|
| 138 |
+
# via
|
| 139 |
+
# google-cloud-firestore
|
| 140 |
+
# google-cloud-storage
|
| 141 |
+
google-cloud-firestore==2.21.0
|
| 142 |
+
# via firebase-admin
|
| 143 |
+
google-cloud-storage==3.4.1
|
| 144 |
+
# via firebase-admin
|
| 145 |
+
google-crc32c==1.7.1
|
| 146 |
+
# via
|
| 147 |
+
# google-cloud-storage
|
| 148 |
+
# google-resumable-media
|
| 149 |
+
google-resumable-media==2.7.2
|
| 150 |
+
# via google-cloud-storage
|
| 151 |
googleapis-common-protos==1.70.0
|
| 152 |
# via
|
| 153 |
# google-api-core
|
| 154 |
+
# grpcio-status
|
| 155 |
# opentelemetry-exporter-otlp-proto-grpc
|
| 156 |
gradio==5.46.1
|
| 157 |
# via
|
|
|
|
| 161 |
# via gradio
|
| 162 |
gradio-modal==0.0.4
|
| 163 |
# via sanatan-ai (pyproject.toml)
|
| 164 |
+
greenlet==3.2.4
|
| 165 |
+
# via sqlalchemy
|
| 166 |
groovy==0.1.2
|
| 167 |
# via gradio
|
| 168 |
grpcio==1.74.0
|
| 169 |
# via
|
| 170 |
# chromadb
|
| 171 |
+
# google-api-core
|
| 172 |
+
# grpcio-status
|
| 173 |
# opentelemetry-exporter-otlp-proto-grpc
|
| 174 |
+
grpcio-status==1.74.0
|
| 175 |
+
# via google-api-core
|
| 176 |
gspread==6.2.1
|
| 177 |
# via sanatan-ai (pyproject.toml)
|
| 178 |
h11==0.16.0
|
| 179 |
# via
|
| 180 |
# httpcore
|
| 181 |
# uvicorn
|
| 182 |
+
h2==4.3.0
|
| 183 |
+
# via httpx
|
| 184 |
+
hpack==4.1.0
|
| 185 |
+
# via h2
|
| 186 |
httpcore==1.0.9
|
| 187 |
# via httpx
|
| 188 |
httplib2==0.22.0
|
|
|
|
| 195 |
httpx==0.28.1
|
| 196 |
# via
|
| 197 |
# chromadb
|
| 198 |
+
# firebase-admin
|
| 199 |
# gradio
|
| 200 |
# gradio-client
|
| 201 |
# langgraph-sdk
|
|
|
|
| 213 |
# transformers
|
| 214 |
humanfriendly==10.0
|
| 215 |
# via coloredlogs
|
| 216 |
+
hyperframe==6.1.0
|
| 217 |
+
# via h2
|
| 218 |
idna==3.10
|
| 219 |
# via
|
| 220 |
# anyio
|
|
|
|
| 305 |
# via chromadb
|
| 306 |
mpmath==1.3.0
|
| 307 |
# via sympy
|
| 308 |
+
msgpack==1.1.2
|
| 309 |
+
# via cachecontrol
|
| 310 |
multidict==6.6.3
|
| 311 |
# via
|
| 312 |
# aiohttp
|
|
|
|
| 392 |
# aiohttp
|
| 393 |
# yarl
|
| 394 |
proto-plus==1.26.1
|
| 395 |
+
# via
|
| 396 |
+
# google-api-core
|
| 397 |
+
# google-cloud-firestore
|
| 398 |
protobuf==6.31.1
|
| 399 |
# via
|
| 400 |
# google-api-core
|
| 401 |
+
# google-cloud-firestore
|
| 402 |
# googleapis-common-protos
|
| 403 |
+
# grpcio-status
|
| 404 |
# onnxruntime
|
| 405 |
# opentelemetry-proto
|
| 406 |
# proto-plus
|
|
|
|
| 417 |
# via chromadb
|
| 418 |
pycountry==24.6.1
|
| 419 |
# via sanatan-ai (pyproject.toml)
|
| 420 |
+
pycparser==2.23
|
| 421 |
+
# via cffi
|
| 422 |
pydantic==2.11.7
|
| 423 |
# via
|
| 424 |
# chromadb
|
|
|
|
| 438 |
# via gradio
|
| 439 |
pygments==2.19.2
|
| 440 |
# via rich
|
| 441 |
+
pyjwt==2.10.1
|
| 442 |
+
# via firebase-admin
|
| 443 |
pykakasi==2.3.0
|
| 444 |
# via aksharamukha
|
| 445 |
pyparsing==3.2.3
|
|
|
|
| 448 |
# via chromadb
|
| 449 |
pyproject-hooks==1.2.0
|
| 450 |
# via build
|
| 451 |
+
pyreadline3==3.5.4
|
| 452 |
+
# via humanfriendly
|
| 453 |
python-dateutil==2.9.0.post0
|
| 454 |
# via
|
| 455 |
# kubernetes
|
|
|
|
| 488 |
requests==2.32.4
|
| 489 |
# via
|
| 490 |
# aksharamukha
|
| 491 |
+
# cachecontrol
|
| 492 |
# dropbox
|
| 493 |
# google-api-core
|
| 494 |
+
# google-cloud-storage
|
| 495 |
# huggingface-hub
|
| 496 |
# kubernetes
|
| 497 |
# langchain
|
|
|
|
| 640 |
# via
|
| 641 |
# chromadb
|
| 642 |
# gradio
|
|
|
|
|
|
|
| 643 |
watchfiles==1.1.0
|
| 644 |
# via uvicorn
|
| 645 |
websocket-client==1.8.0
|
server.py
CHANGED
|
@@ -1,9 +1,10 @@
|
|
| 1 |
# server.py
|
|
|
|
| 2 |
import random
|
| 3 |
import traceback
|
| 4 |
from typing import Optional
|
| 5 |
import uuid
|
| 6 |
-
from fastapi import APIRouter, HTTPException, Request, Query
|
| 7 |
from fastapi.responses import JSONResponse
|
| 8 |
import pycountry
|
| 9 |
from pydantic import BaseModel, Field
|
|
@@ -15,6 +16,7 @@ from modules.audio.model import AudioRequest, AudioType
|
|
| 15 |
from modules.audio.service import svc_get_audio_urls, svc_get_indices_with_audio
|
| 16 |
from modules.config.categories import get_scripture_categories
|
| 17 |
from modules.dropbox.discources import get_discourse_by_id, get_discourse_summaries
|
|
|
|
| 18 |
from modules.languages.get_v2 import handle_fetch_languages_v2
|
| 19 |
from modules.quiz.answer_validator import validate_answer
|
| 20 |
from modules.quiz.models import Question
|
|
@@ -639,4 +641,16 @@ async def get_discourse_detail(topic_id: int):
|
|
| 639 |
@limiter.limit("5/minute")
|
| 640 |
async def translate_text(request: Request, body: TranslationRequest):
|
| 641 |
resp = await svc_translate_text(request, body)
|
| 642 |
-
return resp
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# server.py
|
| 2 |
+
import os
|
| 3 |
import random
|
| 4 |
import traceback
|
| 5 |
from typing import Optional
|
| 6 |
import uuid
|
| 7 |
+
from fastapi import APIRouter, HTTPException, Header, Request, Query
|
| 8 |
from fastapi.responses import JSONResponse
|
| 9 |
import pycountry
|
| 10 |
from pydantic import BaseModel, Field
|
|
|
|
| 16 |
from modules.audio.service import svc_get_audio_urls, svc_get_indices_with_audio
|
| 17 |
from modules.config.categories import get_scripture_categories
|
| 18 |
from modules.dropbox.discources import get_discourse_by_id, get_discourse_summaries
|
| 19 |
+
from modules.firebase.messaging import FcmRequest, fcm_service
|
| 20 |
from modules.languages.get_v2 import handle_fetch_languages_v2
|
| 21 |
from modules.quiz.answer_validator import validate_answer
|
| 22 |
from modules.quiz.models import Question
|
|
|
|
| 641 |
@limiter.limit("5/minute")
|
| 642 |
async def translate_text(request: Request, body: TranslationRequest):
|
| 643 |
resp = await svc_translate_text(request, body)
|
| 644 |
+
return resp
|
| 645 |
+
|
| 646 |
+
ADMIN_KEY = os.getenv("FIREBASE_API_ADMIN_KEY", "super-secret-admin-key")
|
| 647 |
+
|
| 648 |
+
@router.post("/send_fcm")
|
| 649 |
+
async def send_fcm_endpoint(
|
| 650 |
+
request: FcmRequest,
|
| 651 |
+
x_admin_key: str = Header(None)
|
| 652 |
+
):
|
| 653 |
+
if x_admin_key != ADMIN_KEY:
|
| 654 |
+
raise HTTPException(status_code=403, detail="Unauthorized")
|
| 655 |
+
|
| 656 |
+
return await fcm_service.send_fcm(request)
|
uv.lock
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
version = 1
|
| 2 |
-
revision =
|
| 3 |
requires-python = ">=3.12"
|
| 4 |
resolution-markers = [
|
| 5 |
"python_full_version >= '3.13'",
|
|
@@ -306,6 +306,19 @@ wheels = [
|
|
| 306 |
{ url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382, upload-time = "2025-08-01T21:27:07.844Z" },
|
| 307 |
]
|
| 308 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 309 |
[[package]]
|
| 310 |
name = "cachetools"
|
| 311 |
version = "5.5.2"
|
|
@@ -324,6 +337,63 @@ wheels = [
|
|
| 324 |
{ url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" },
|
| 325 |
]
|
| 326 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 327 |
[[package]]
|
| 328 |
name = "charset-normalizer"
|
| 329 |
version = "3.4.3"
|
|
@@ -441,6 +511,62 @@ wheels = [
|
|
| 441 |
{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018, upload-time = "2021-06-11T10:22:42.561Z" },
|
| 442 |
]
|
| 443 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 444 |
[[package]]
|
| 445 |
name = "dataclasses-json"
|
| 446 |
version = "0.6.7"
|
|
@@ -553,6 +679,23 @@ wheels = [
|
|
| 553 |
{ url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" },
|
| 554 |
]
|
| 555 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 556 |
[[package]]
|
| 557 |
name = "flatbuffers"
|
| 558 |
version = "25.2.10"
|
|
@@ -693,6 +836,12 @@ wheels = [
|
|
| 693 |
{ url = "https://files.pythonhosted.org/packages/14/4b/ead00905132820b623732b175d66354e9d3e69fcf2a5dcdab780664e7896/google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", size = 160807, upload-time = "2025-06-12T20:52:19.334Z" },
|
| 694 |
]
|
| 695 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 696 |
[[package]]
|
| 697 |
name = "google-api-python-client"
|
| 698 |
version = "2.182.0"
|
|
@@ -749,6 +898,84 @@ wheels = [
|
|
| 749 |
{ url = "https://files.pythonhosted.org/packages/ac/84/40ee070be95771acd2f4418981edb834979424565c3eec3cd88b6aa09d24/google_auth_oauthlib-1.2.2-py3-none-any.whl", hash = "sha256:fd619506f4b3908b5df17b65f39ca8d66ea56986e5472eb5978fd8f3786f00a2", size = 19072, upload-time = "2025-04-22T16:40:28.174Z" },
|
| 750 |
]
|
| 751 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 752 |
[[package]]
|
| 753 |
name = "googleapis-common-protos"
|
| 754 |
version = "1.70.0"
|
|
@@ -903,6 +1130,20 @@ wheels = [
|
|
| 903 |
{ url = "https://files.pythonhosted.org/packages/4b/92/c846b01b38fdf9e2646a682b12e30a70dc7c87dfe68bd5e009ee1501c14b/grpcio-1.75.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c91d5b16eff3cbbe76b7a1eaaf3d91e7a954501e9d4f915554f87c470475c3d", size = 4637558, upload-time = "2025-09-16T09:19:49.698Z" },
|
| 904 |
]
|
| 905 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 906 |
[[package]]
|
| 907 |
name = "gspread"
|
| 908 |
version = "6.2.1"
|
|
@@ -925,6 +1166,19 @@ wheels = [
|
|
| 925 |
{ url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" },
|
| 926 |
]
|
| 927 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 928 |
[[package]]
|
| 929 |
name = "hf-xet"
|
| 930 |
version = "1.1.10"
|
|
@@ -940,6 +1194,15 @@ wheels = [
|
|
| 940 |
{ url = "https://files.pythonhosted.org/packages/ee/0e/471f0a21db36e71a2f1752767ad77e92d8cde24e974e03d662931b1305ec/hf_xet-1.1.10-cp37-abi3-win_amd64.whl", hash = "sha256:5f54b19cc347c13235ae7ee98b330c26dd65ef1df47e5316ffb1e87713ca7045", size = 2804691, upload-time = "2025-09-12T20:10:28.433Z" },
|
| 941 |
]
|
| 942 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 943 |
[[package]]
|
| 944 |
name = "httpcore"
|
| 945 |
version = "1.0.9"
|
|
@@ -1002,6 +1265,11 @@ wheels = [
|
|
| 1002 |
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" },
|
| 1003 |
]
|
| 1004 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1005 |
[[package]]
|
| 1006 |
name = "httpx-sse"
|
| 1007 |
version = "0.4.1"
|
|
@@ -1042,6 +1310,15 @@ wheels = [
|
|
| 1042 |
{ url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794, upload-time = "2021-09-17T21:40:39.897Z" },
|
| 1043 |
]
|
| 1044 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1045 |
[[package]]
|
| 1046 |
name = "idna"
|
| 1047 |
version = "3.10"
|
|
@@ -1702,6 +1979,50 @@ wheels = [
|
|
| 1702 |
{ url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" },
|
| 1703 |
]
|
| 1704 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1705 |
[[package]]
|
| 1706 |
name = "multidict"
|
| 1707 |
version = "6.6.4"
|
|
@@ -2563,6 +2884,15 @@ wheels = [
|
|
| 2563 |
{ url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl", hash = "sha256:f1a4fb391cd7214f8eefd39556d740adcc233c778a27f8942c8dca351d6ce06f", size = 6335189, upload-time = "2024-06-01T04:11:49.711Z" },
|
| 2564 |
]
|
| 2565 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2566 |
[[package]]
|
| 2567 |
name = "pydantic"
|
| 2568 |
version = "2.11.9"
|
|
@@ -2652,6 +2982,20 @@ wheels = [
|
|
| 2652 |
{ url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" },
|
| 2653 |
]
|
| 2654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2655 |
[[package]]
|
| 2656 |
name = "pykakasi"
|
| 2657 |
version = "2.3.0"
|
|
@@ -3071,6 +3415,7 @@ dependencies = [
|
|
| 3071 |
{ name = "dotenv" },
|
| 3072 |
{ name = "dropbox" },
|
| 3073 |
{ name = "feedparser" },
|
|
|
|
| 3074 |
{ name = "google-api-python-client" },
|
| 3075 |
{ name = "google-auth-httplib2" },
|
| 3076 |
{ name = "google-auth-oauthlib" },
|
|
@@ -3094,6 +3439,7 @@ requires-dist = [
|
|
| 3094 |
{ name = "dotenv", specifier = ">=0.9.9" },
|
| 3095 |
{ name = "dropbox", specifier = ">=12.0.2" },
|
| 3096 |
{ name = "feedparser", specifier = ">=6.0.12" },
|
|
|
|
| 3097 |
{ name = "google-api-python-client", specifier = ">=2.177.0" },
|
| 3098 |
{ name = "google-auth-httplib2", specifier = ">=0.2.0" },
|
| 3099 |
{ name = "google-auth-oauthlib", specifier = ">=1.2.2" },
|
|
|
|
| 1 |
version = 1
|
| 2 |
+
revision = 2
|
| 3 |
requires-python = ">=3.12"
|
| 4 |
resolution-markers = [
|
| 5 |
"python_full_version >= '3.13'",
|
|
|
|
| 306 |
{ url = "https://files.pythonhosted.org/packages/cb/8c/2b30c12155ad8de0cf641d76a8b396a16d2c36bc6d50b621a62b7c4567c1/build-1.3.0-py3-none-any.whl", hash = "sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4", size = 23382, upload-time = "2025-08-01T21:27:07.844Z" },
|
| 307 |
]
|
| 308 |
|
| 309 |
+
[[package]]
|
| 310 |
+
name = "cachecontrol"
|
| 311 |
+
version = "0.14.3"
|
| 312 |
+
source = { registry = "https://pypi.org/simple" }
|
| 313 |
+
dependencies = [
|
| 314 |
+
{ name = "msgpack" },
|
| 315 |
+
{ name = "requests" },
|
| 316 |
+
]
|
| 317 |
+
sdist = { url = "https://files.pythonhosted.org/packages/58/3a/0cbeb04ea57d2493f3ec5a069a117ab467f85e4a10017c6d854ddcbff104/cachecontrol-0.14.3.tar.gz", hash = "sha256:73e7efec4b06b20d9267b441c1f733664f989fb8688391b670ca812d70795d11", size = 28985, upload-time = "2025-04-30T16:45:06.135Z" }
|
| 318 |
+
wheels = [
|
| 319 |
+
{ url = "https://files.pythonhosted.org/packages/81/4c/800b0607b00b3fd20f1087f80ab53d6b4d005515b0f773e4831e37cfa83f/cachecontrol-0.14.3-py3-none-any.whl", hash = "sha256:b35e44a3113f17d2a31c1e6b27b9de6d4405f84ae51baa8c1d3cc5b633010cae", size = 21802, upload-time = "2025-04-30T16:45:03.863Z" },
|
| 320 |
+
]
|
| 321 |
+
|
| 322 |
[[package]]
|
| 323 |
name = "cachetools"
|
| 324 |
version = "5.5.2"
|
|
|
|
| 337 |
{ url = "https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5", size = 161216, upload-time = "2025-08-03T03:07:45.777Z" },
|
| 338 |
]
|
| 339 |
|
| 340 |
+
[[package]]
|
| 341 |
+
name = "cffi"
|
| 342 |
+
version = "2.0.0"
|
| 343 |
+
source = { registry = "https://pypi.org/simple" }
|
| 344 |
+
dependencies = [
|
| 345 |
+
{ name = "pycparser", marker = "implementation_name != 'PyPy'" },
|
| 346 |
+
]
|
| 347 |
+
sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" }
|
| 348 |
+
wheels = [
|
| 349 |
+
{ url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" },
|
| 350 |
+
{ url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" },
|
| 351 |
+
{ url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" },
|
| 352 |
+
{ url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" },
|
| 353 |
+
{ url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" },
|
| 354 |
+
{ url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" },
|
| 355 |
+
{ url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" },
|
| 356 |
+
{ url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" },
|
| 357 |
+
{ url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" },
|
| 358 |
+
{ url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" },
|
| 359 |
+
{ url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" },
|
| 360 |
+
{ url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" },
|
| 361 |
+
{ url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" },
|
| 362 |
+
{ url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" },
|
| 363 |
+
{ url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" },
|
| 364 |
+
{ url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" },
|
| 365 |
+
{ url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" },
|
| 366 |
+
{ url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" },
|
| 367 |
+
{ url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" },
|
| 368 |
+
{ url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" },
|
| 369 |
+
{ url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" },
|
| 370 |
+
{ url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" },
|
| 371 |
+
{ url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" },
|
| 372 |
+
{ url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" },
|
| 373 |
+
{ url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" },
|
| 374 |
+
{ url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" },
|
| 375 |
+
{ url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" },
|
| 376 |
+
{ url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" },
|
| 377 |
+
{ url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" },
|
| 378 |
+
{ url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" },
|
| 379 |
+
{ url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" },
|
| 380 |
+
{ url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" },
|
| 381 |
+
{ url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" },
|
| 382 |
+
{ url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" },
|
| 383 |
+
{ url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" },
|
| 384 |
+
{ url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" },
|
| 385 |
+
{ url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" },
|
| 386 |
+
{ url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" },
|
| 387 |
+
{ url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" },
|
| 388 |
+
{ url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" },
|
| 389 |
+
{ url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" },
|
| 390 |
+
{ url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" },
|
| 391 |
+
{ url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" },
|
| 392 |
+
{ url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" },
|
| 393 |
+
{ url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" },
|
| 394 |
+
{ url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" },
|
| 395 |
+
]
|
| 396 |
+
|
| 397 |
[[package]]
|
| 398 |
name = "charset-normalizer"
|
| 399 |
version = "3.4.3"
|
|
|
|
| 511 |
{ url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018, upload-time = "2021-06-11T10:22:42.561Z" },
|
| 512 |
]
|
| 513 |
|
| 514 |
+
[[package]]
|
| 515 |
+
name = "cryptography"
|
| 516 |
+
version = "46.0.3"
|
| 517 |
+
source = { registry = "https://pypi.org/simple" }
|
| 518 |
+
dependencies = [
|
| 519 |
+
{ name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
|
| 520 |
+
]
|
| 521 |
+
sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" }
|
| 522 |
+
wheels = [
|
| 523 |
+
{ url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" },
|
| 524 |
+
{ url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" },
|
| 525 |
+
{ url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" },
|
| 526 |
+
{ url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" },
|
| 527 |
+
{ url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" },
|
| 528 |
+
{ url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" },
|
| 529 |
+
{ url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" },
|
| 530 |
+
{ url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" },
|
| 531 |
+
{ url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" },
|
| 532 |
+
{ url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" },
|
| 533 |
+
{ url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" },
|
| 534 |
+
{ url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" },
|
| 535 |
+
{ url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" },
|
| 536 |
+
{ url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" },
|
| 537 |
+
{ url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" },
|
| 538 |
+
{ url = "https://files.pythonhosted.org/packages/f5/e2/a510aa736755bffa9d2f75029c229111a1d02f8ecd5de03078f4c18d91a3/cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", size = 7158012, upload-time = "2025-10-15T23:17:19.982Z" },
|
| 539 |
+
{ url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728, upload-time = "2025-10-15T23:17:21.527Z" },
|
| 540 |
+
{ url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078, upload-time = "2025-10-15T23:17:23.042Z" },
|
| 541 |
+
{ url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460, upload-time = "2025-10-15T23:17:24.885Z" },
|
| 542 |
+
{ url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237, upload-time = "2025-10-15T23:17:26.449Z" },
|
| 543 |
+
{ url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344, upload-time = "2025-10-15T23:17:28.06Z" },
|
| 544 |
+
{ url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564, upload-time = "2025-10-15T23:17:29.665Z" },
|
| 545 |
+
{ url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415, upload-time = "2025-10-15T23:17:31.686Z" },
|
| 546 |
+
{ url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457, upload-time = "2025-10-15T23:17:33.478Z" },
|
| 547 |
+
{ url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074, upload-time = "2025-10-15T23:17:35.158Z" },
|
| 548 |
+
{ url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569, upload-time = "2025-10-15T23:17:37.188Z" },
|
| 549 |
+
{ url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941, upload-time = "2025-10-15T23:17:39.236Z" },
|
| 550 |
+
{ url = "https://files.pythonhosted.org/packages/fd/30/27654c1dbaf7e4a3531fa1fc77986d04aefa4d6d78259a62c9dc13d7ad36/cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", size = 3022339, upload-time = "2025-10-15T23:17:40.888Z" },
|
| 551 |
+
{ url = "https://files.pythonhosted.org/packages/f6/30/640f34ccd4d2a1bc88367b54b926b781b5a018d65f404d409aba76a84b1c/cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", size = 3494315, upload-time = "2025-10-15T23:17:42.769Z" },
|
| 552 |
+
{ url = "https://files.pythonhosted.org/packages/ba/8b/88cc7e3bd0a8e7b861f26981f7b820e1f46aa9d26cc482d0feba0ecb4919/cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", size = 2919331, upload-time = "2025-10-15T23:17:44.468Z" },
|
| 553 |
+
{ url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" },
|
| 554 |
+
{ url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" },
|
| 555 |
+
{ url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" },
|
| 556 |
+
{ url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" },
|
| 557 |
+
{ url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" },
|
| 558 |
+
{ url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" },
|
| 559 |
+
{ url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" },
|
| 560 |
+
{ url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" },
|
| 561 |
+
{ url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" },
|
| 562 |
+
{ url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" },
|
| 563 |
+
{ url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" },
|
| 564 |
+
{ url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" },
|
| 565 |
+
{ url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" },
|
| 566 |
+
{ url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" },
|
| 567 |
+
{ url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" },
|
| 568 |
+
]
|
| 569 |
+
|
| 570 |
[[package]]
|
| 571 |
name = "dataclasses-json"
|
| 572 |
version = "0.6.7"
|
|
|
|
| 679 |
{ url = "https://files.pythonhosted.org/packages/42/14/42b2651a2f46b022ccd948bca9f2d5af0fd8929c4eec235b8d6d844fbe67/filelock-3.19.1-py3-none-any.whl", hash = "sha256:d38e30481def20772f5baf097c122c3babc4fcdb7e14e57049eb9d88c6dc017d", size = 15988, upload-time = "2025-08-14T16:56:01.633Z" },
|
| 680 |
]
|
| 681 |
|
| 682 |
+
[[package]]
|
| 683 |
+
name = "firebase-admin"
|
| 684 |
+
version = "7.1.0"
|
| 685 |
+
source = { registry = "https://pypi.org/simple" }
|
| 686 |
+
dependencies = [
|
| 687 |
+
{ name = "cachecontrol" },
|
| 688 |
+
{ name = "google-api-core", extra = ["grpc"], marker = "platform_python_implementation != 'PyPy'" },
|
| 689 |
+
{ name = "google-cloud-firestore", marker = "platform_python_implementation != 'PyPy'" },
|
| 690 |
+
{ name = "google-cloud-storage" },
|
| 691 |
+
{ name = "httpx", extra = ["http2"] },
|
| 692 |
+
{ name = "pyjwt", extra = ["crypto"] },
|
| 693 |
+
]
|
| 694 |
+
sdist = { url = "https://files.pythonhosted.org/packages/aa/41/859f78701761bed7abdb8a7c050819c654dad17f96c658dcdf263d5a9641/firebase_admin-7.1.0.tar.gz", hash = "sha256:a163014a4368c43f7efa409948065f8856b51bd2ae5d82c24586e546d5fd4a26", size = 194786, upload-time = "2025-07-31T20:36:39.512Z" }
|
| 695 |
+
wheels = [
|
| 696 |
+
{ url = "https://files.pythonhosted.org/packages/c4/16/eb9bf44cdc7af0317a70ae770ad4170b9fcfbb660ac32806742506be1246/firebase_admin-7.1.0-py3-none-any.whl", hash = "sha256:1913e783b7ad56f891e1aca86e6fdde6a8ec49b7a920dd451da155e8647506c8", size = 137140, upload-time = "2025-07-31T20:36:38.266Z" },
|
| 697 |
+
]
|
| 698 |
+
|
| 699 |
[[package]]
|
| 700 |
name = "flatbuffers"
|
| 701 |
version = "25.2.10"
|
|
|
|
| 836 |
{ url = "https://files.pythonhosted.org/packages/14/4b/ead00905132820b623732b175d66354e9d3e69fcf2a5dcdab780664e7896/google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", size = 160807, upload-time = "2025-06-12T20:52:19.334Z" },
|
| 837 |
]
|
| 838 |
|
| 839 |
+
[package.optional-dependencies]
|
| 840 |
+
grpc = [
|
| 841 |
+
{ name = "grpcio" },
|
| 842 |
+
{ name = "grpcio-status" },
|
| 843 |
+
]
|
| 844 |
+
|
| 845 |
[[package]]
|
| 846 |
name = "google-api-python-client"
|
| 847 |
version = "2.182.0"
|
|
|
|
| 898 |
{ url = "https://files.pythonhosted.org/packages/ac/84/40ee070be95771acd2f4418981edb834979424565c3eec3cd88b6aa09d24/google_auth_oauthlib-1.2.2-py3-none-any.whl", hash = "sha256:fd619506f4b3908b5df17b65f39ca8d66ea56986e5472eb5978fd8f3786f00a2", size = 19072, upload-time = "2025-04-22T16:40:28.174Z" },
|
| 899 |
]
|
| 900 |
|
| 901 |
+
[[package]]
|
| 902 |
+
name = "google-cloud-core"
|
| 903 |
+
version = "2.5.0"
|
| 904 |
+
source = { registry = "https://pypi.org/simple" }
|
| 905 |
+
dependencies = [
|
| 906 |
+
{ name = "google-api-core" },
|
| 907 |
+
{ name = "google-auth" },
|
| 908 |
+
]
|
| 909 |
+
sdist = { url = "https://files.pythonhosted.org/packages/a6/03/ef0bc99d0e0faf4fdbe67ac445e18cdaa74824fd93cd069e7bb6548cb52d/google_cloud_core-2.5.0.tar.gz", hash = "sha256:7c1b7ef5c92311717bd05301aa1a91ffbc565673d3b0b4163a52d8413a186963", size = 36027, upload-time = "2025-10-29T23:17:39.513Z" }
|
| 910 |
+
wheels = [
|
| 911 |
+
{ url = "https://files.pythonhosted.org/packages/89/20/bfa472e327c8edee00f04beecc80baeddd2ab33ee0e86fd7654da49d45e9/google_cloud_core-2.5.0-py3-none-any.whl", hash = "sha256:67d977b41ae6c7211ee830c7912e41003ea8194bff15ae7d72fd6f51e57acabc", size = 29469, upload-time = "2025-10-29T23:17:38.548Z" },
|
| 912 |
+
]
|
| 913 |
+
|
| 914 |
+
[[package]]
|
| 915 |
+
name = "google-cloud-firestore"
|
| 916 |
+
version = "2.21.0"
|
| 917 |
+
source = { registry = "https://pypi.org/simple" }
|
| 918 |
+
dependencies = [
|
| 919 |
+
{ name = "google-api-core", extra = ["grpc"] },
|
| 920 |
+
{ name = "google-auth" },
|
| 921 |
+
{ name = "google-cloud-core" },
|
| 922 |
+
{ name = "proto-plus" },
|
| 923 |
+
{ name = "protobuf" },
|
| 924 |
+
]
|
| 925 |
+
sdist = { url = "https://files.pythonhosted.org/packages/80/9d/027b9bf61a44422bcdcb00a2acc59152065b1cffa1fc89da62277730973e/google_cloud_firestore-2.21.0.tar.gz", hash = "sha256:0c37faa8506297f827eefc38feb155247a6dcb9a541289631015d125f1b003f8", size = 528159, upload-time = "2025-06-03T19:28:27.195Z" }
|
| 926 |
+
wheels = [
|
| 927 |
+
{ url = "https://files.pythonhosted.org/packages/0a/03/94755c64a2fb85cba734ac05a4f80096b8c0acfab0508c9d52c57f571687/google_cloud_firestore-2.21.0-py3-none-any.whl", hash = "sha256:bf33ccc38a27afc60748d1f9bb7c46b078d0d39d288636bdfd967611d7b3f17f", size = 368813, upload-time = "2025-06-03T19:28:25.131Z" },
|
| 928 |
+
]
|
| 929 |
+
|
| 930 |
+
[[package]]
|
| 931 |
+
name = "google-cloud-storage"
|
| 932 |
+
version = "3.4.1"
|
| 933 |
+
source = { registry = "https://pypi.org/simple" }
|
| 934 |
+
dependencies = [
|
| 935 |
+
{ name = "google-api-core" },
|
| 936 |
+
{ name = "google-auth" },
|
| 937 |
+
{ name = "google-cloud-core" },
|
| 938 |
+
{ name = "google-crc32c" },
|
| 939 |
+
{ name = "google-resumable-media" },
|
| 940 |
+
{ name = "requests" },
|
| 941 |
+
]
|
| 942 |
+
sdist = { url = "https://files.pythonhosted.org/packages/bd/ef/7cefdca67a6c8b3af0ec38612f9e78e5a9f6179dd91352772ae1a9849246/google_cloud_storage-3.4.1.tar.gz", hash = "sha256:6f041a297e23a4b485fad8c305a7a6e6831855c208bcbe74d00332a909f82268", size = 17238203, upload-time = "2025-10-08T18:43:39.665Z" }
|
| 943 |
+
wheels = [
|
| 944 |
+
{ url = "https://files.pythonhosted.org/packages/83/6e/b47d83d3a35231c6232566341b0355cce78fd4e6988a7343725408547b2c/google_cloud_storage-3.4.1-py3-none-any.whl", hash = "sha256:972764cc0392aa097be8f49a5354e22eb47c3f62370067fb1571ffff4a1c1189", size = 290142, upload-time = "2025-10-08T18:43:37.524Z" },
|
| 945 |
+
]
|
| 946 |
+
|
| 947 |
+
[[package]]
|
| 948 |
+
name = "google-crc32c"
|
| 949 |
+
version = "1.7.1"
|
| 950 |
+
source = { registry = "https://pypi.org/simple" }
|
| 951 |
+
sdist = { url = "https://files.pythonhosted.org/packages/19/ae/87802e6d9f9d69adfaedfcfd599266bf386a54d0be058b532d04c794f76d/google_crc32c-1.7.1.tar.gz", hash = "sha256:2bff2305f98846f3e825dbeec9ee406f89da7962accdb29356e4eadc251bd472", size = 14495, upload-time = "2025-03-26T14:29:13.32Z" }
|
| 952 |
+
wheels = [
|
| 953 |
+
{ url = "https://files.pythonhosted.org/packages/dd/b7/787e2453cf8639c94b3d06c9d61f512234a82e1d12d13d18584bd3049904/google_crc32c-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2d73a68a653c57281401871dd4aeebbb6af3191dcac751a76ce430df4d403194", size = 30470, upload-time = "2025-03-26T14:34:31.655Z" },
|
| 954 |
+
{ url = "https://files.pythonhosted.org/packages/ed/b4/6042c2b0cbac3ec3a69bb4c49b28d2f517b7a0f4a0232603c42c58e22b44/google_crc32c-1.7.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:22beacf83baaf59f9d3ab2bbb4db0fb018da8e5aebdce07ef9f09fce8220285e", size = 30315, upload-time = "2025-03-26T15:01:54.634Z" },
|
| 955 |
+
{ url = "https://files.pythonhosted.org/packages/29/ad/01e7a61a5d059bc57b702d9ff6a18b2585ad97f720bd0a0dbe215df1ab0e/google_crc32c-1.7.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19eafa0e4af11b0a4eb3974483d55d2d77ad1911e6cf6f832e1574f6781fd337", size = 33180, upload-time = "2025-03-26T14:41:32.168Z" },
|
| 956 |
+
{ url = "https://files.pythonhosted.org/packages/3b/a5/7279055cf004561894ed3a7bfdf5bf90a53f28fadd01af7cd166e88ddf16/google_crc32c-1.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6d86616faaea68101195c6bdc40c494e4d76f41e07a37ffdef270879c15fb65", size = 32794, upload-time = "2025-03-26T14:41:33.264Z" },
|
| 957 |
+
{ url = "https://files.pythonhosted.org/packages/0f/d6/77060dbd140c624e42ae3ece3df53b9d811000729a5c821b9fd671ceaac6/google_crc32c-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:b7491bdc0c7564fcf48c0179d2048ab2f7c7ba36b84ccd3a3e1c3f7a72d3bba6", size = 33477, upload-time = "2025-03-26T14:29:10.94Z" },
|
| 958 |
+
{ url = "https://files.pythonhosted.org/packages/8b/72/b8d785e9184ba6297a8620c8a37cf6e39b81a8ca01bb0796d7cbb28b3386/google_crc32c-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:df8b38bdaf1629d62d51be8bdd04888f37c451564c2042d36e5812da9eff3c35", size = 30467, upload-time = "2025-03-26T14:36:06.909Z" },
|
| 959 |
+
{ url = "https://files.pythonhosted.org/packages/34/25/5f18076968212067c4e8ea95bf3b69669f9fc698476e5f5eb97d5b37999f/google_crc32c-1.7.1-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:e42e20a83a29aa2709a0cf271c7f8aefaa23b7ab52e53b322585297bb94d4638", size = 30309, upload-time = "2025-03-26T15:06:15.318Z" },
|
| 960 |
+
{ url = "https://files.pythonhosted.org/packages/92/83/9228fe65bf70e93e419f38bdf6c5ca5083fc6d32886ee79b450ceefd1dbd/google_crc32c-1.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:905a385140bf492ac300026717af339790921f411c0dfd9aa5a9e69a08ed32eb", size = 33133, upload-time = "2025-03-26T14:41:34.388Z" },
|
| 961 |
+
{ url = "https://files.pythonhosted.org/packages/c3/ca/1ea2fd13ff9f8955b85e7956872fdb7050c4ace8a2306a6d177edb9cf7fe/google_crc32c-1.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b211ddaf20f7ebeec5c333448582c224a7c90a9d98826fbab82c0ddc11348e6", size = 32773, upload-time = "2025-03-26T14:41:35.19Z" },
|
| 962 |
+
{ url = "https://files.pythonhosted.org/packages/89/32/a22a281806e3ef21b72db16f948cad22ec68e4bdd384139291e00ff82fe2/google_crc32c-1.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:0f99eaa09a9a7e642a61e06742856eec8b19fc0037832e03f941fe7cf0c8e4db", size = 33475, upload-time = "2025-03-26T14:29:11.771Z" },
|
| 963 |
+
{ url = "https://files.pythonhosted.org/packages/b8/c5/002975aff514e57fc084ba155697a049b3f9b52225ec3bc0f542871dd524/google_crc32c-1.7.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32d1da0d74ec5634a05f53ef7df18fc646666a25efaaca9fc7dcfd4caf1d98c3", size = 33243, upload-time = "2025-03-26T14:41:35.975Z" },
|
| 964 |
+
{ url = "https://files.pythonhosted.org/packages/61/cb/c585282a03a0cea70fcaa1bf55d5d702d0f2351094d663ec3be1c6c67c52/google_crc32c-1.7.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e10554d4abc5238823112c2ad7e4560f96c7bf3820b202660373d769d9e6e4c9", size = 32870, upload-time = "2025-03-26T14:41:37.08Z" },
|
| 965 |
+
]
|
| 966 |
+
|
| 967 |
+
[[package]]
|
| 968 |
+
name = "google-resumable-media"
|
| 969 |
+
version = "2.7.2"
|
| 970 |
+
source = { registry = "https://pypi.org/simple" }
|
| 971 |
+
dependencies = [
|
| 972 |
+
{ name = "google-crc32c" },
|
| 973 |
+
]
|
| 974 |
+
sdist = { url = "https://files.pythonhosted.org/packages/58/5a/0efdc02665dca14e0837b62c8a1a93132c264bd02054a15abb2218afe0ae/google_resumable_media-2.7.2.tar.gz", hash = "sha256:5280aed4629f2b60b847b0d42f9857fd4935c11af266744df33d8074cae92fe0", size = 2163099, upload-time = "2024-08-07T22:20:38.555Z" }
|
| 975 |
+
wheels = [
|
| 976 |
+
{ url = "https://files.pythonhosted.org/packages/82/35/b8d3baf8c46695858cb9d8835a53baa1eeb9906ddaf2f728a5f5b640fd1e/google_resumable_media-2.7.2-py2.py3-none-any.whl", hash = "sha256:3ce7551e9fe6d99e9a126101d2536612bb73486721951e9562fee0f90c6ababa", size = 81251, upload-time = "2024-08-07T22:20:36.409Z" },
|
| 977 |
+
]
|
| 978 |
+
|
| 979 |
[[package]]
|
| 980 |
name = "googleapis-common-protos"
|
| 981 |
version = "1.70.0"
|
|
|
|
| 1130 |
{ url = "https://files.pythonhosted.org/packages/4b/92/c846b01b38fdf9e2646a682b12e30a70dc7c87dfe68bd5e009ee1501c14b/grpcio-1.75.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c91d5b16eff3cbbe76b7a1eaaf3d91e7a954501e9d4f915554f87c470475c3d", size = 4637558, upload-time = "2025-09-16T09:19:49.698Z" },
|
| 1131 |
]
|
| 1132 |
|
| 1133 |
+
[[package]]
|
| 1134 |
+
name = "grpcio-status"
|
| 1135 |
+
version = "1.75.0"
|
| 1136 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1137 |
+
dependencies = [
|
| 1138 |
+
{ name = "googleapis-common-protos" },
|
| 1139 |
+
{ name = "grpcio" },
|
| 1140 |
+
{ name = "protobuf" },
|
| 1141 |
+
]
|
| 1142 |
+
sdist = { url = "https://files.pythonhosted.org/packages/ca/8a/2e45ec0512d4ce9afa136c6e4186d063721b5b4c192eec7536ce6b7ba615/grpcio_status-1.75.0.tar.gz", hash = "sha256:69d5b91be1b8b926f086c1c483519a968c14640773a0ccdd6c04282515dbedf7", size = 13646, upload-time = "2025-09-16T09:24:51.069Z" }
|
| 1143 |
+
wheels = [
|
| 1144 |
+
{ url = "https://files.pythonhosted.org/packages/2b/24/d536f0a0fda3a3eeb334893e5fb9d567c2777de6a5384413f71b35cfd0e5/grpcio_status-1.75.0-py3-none-any.whl", hash = "sha256:de62557ef97b7e19c3ce6da19793a12c5f6c1fbbb918d233d9671aba9d9e1d78", size = 14424, upload-time = "2025-09-16T09:23:33.843Z" },
|
| 1145 |
+
]
|
| 1146 |
+
|
| 1147 |
[[package]]
|
| 1148 |
name = "gspread"
|
| 1149 |
version = "6.2.1"
|
|
|
|
| 1166 |
{ url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" },
|
| 1167 |
]
|
| 1168 |
|
| 1169 |
+
[[package]]
|
| 1170 |
+
name = "h2"
|
| 1171 |
+
version = "4.3.0"
|
| 1172 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1173 |
+
dependencies = [
|
| 1174 |
+
{ name = "hpack" },
|
| 1175 |
+
{ name = "hyperframe" },
|
| 1176 |
+
]
|
| 1177 |
+
sdist = { url = "https://files.pythonhosted.org/packages/1d/17/afa56379f94ad0fe8defd37d6eb3f89a25404ffc71d4d848893d270325fc/h2-4.3.0.tar.gz", hash = "sha256:6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1", size = 2152026, upload-time = "2025-08-23T18:12:19.778Z" }
|
| 1178 |
+
wheels = [
|
| 1179 |
+
{ url = "https://files.pythonhosted.org/packages/69/b2/119f6e6dcbd96f9069ce9a2665e0146588dc9f88f29549711853645e736a/h2-4.3.0-py3-none-any.whl", hash = "sha256:c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd", size = 61779, upload-time = "2025-08-23T18:12:17.779Z" },
|
| 1180 |
+
]
|
| 1181 |
+
|
| 1182 |
[[package]]
|
| 1183 |
name = "hf-xet"
|
| 1184 |
version = "1.1.10"
|
|
|
|
| 1194 |
{ url = "https://files.pythonhosted.org/packages/ee/0e/471f0a21db36e71a2f1752767ad77e92d8cde24e974e03d662931b1305ec/hf_xet-1.1.10-cp37-abi3-win_amd64.whl", hash = "sha256:5f54b19cc347c13235ae7ee98b330c26dd65ef1df47e5316ffb1e87713ca7045", size = 2804691, upload-time = "2025-09-12T20:10:28.433Z" },
|
| 1195 |
]
|
| 1196 |
|
| 1197 |
+
[[package]]
|
| 1198 |
+
name = "hpack"
|
| 1199 |
+
version = "4.1.0"
|
| 1200 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1201 |
+
sdist = { url = "https://files.pythonhosted.org/packages/2c/48/71de9ed269fdae9c8057e5a4c0aa7402e8bb16f2c6e90b3aa53327b113f8/hpack-4.1.0.tar.gz", hash = "sha256:ec5eca154f7056aa06f196a557655c5b009b382873ac8d1e66e79e87535f1dca", size = 51276, upload-time = "2025-01-22T21:44:58.347Z" }
|
| 1202 |
+
wheels = [
|
| 1203 |
+
{ url = "https://files.pythonhosted.org/packages/07/c6/80c95b1b2b94682a72cbdbfb85b81ae2daffa4291fbfa1b1464502ede10d/hpack-4.1.0-py3-none-any.whl", hash = "sha256:157ac792668d995c657d93111f46b4535ed114f0c9c8d672271bbec7eae1b496", size = 34357, upload-time = "2025-01-22T21:44:56.92Z" },
|
| 1204 |
+
]
|
| 1205 |
+
|
| 1206 |
[[package]]
|
| 1207 |
name = "httpcore"
|
| 1208 |
version = "1.0.9"
|
|
|
|
| 1265 |
{ url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" },
|
| 1266 |
]
|
| 1267 |
|
| 1268 |
+
[package.optional-dependencies]
|
| 1269 |
+
http2 = [
|
| 1270 |
+
{ name = "h2" },
|
| 1271 |
+
]
|
| 1272 |
+
|
| 1273 |
[[package]]
|
| 1274 |
name = "httpx-sse"
|
| 1275 |
version = "0.4.1"
|
|
|
|
| 1310 |
{ url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794, upload-time = "2021-09-17T21:40:39.897Z" },
|
| 1311 |
]
|
| 1312 |
|
| 1313 |
+
[[package]]
|
| 1314 |
+
name = "hyperframe"
|
| 1315 |
+
version = "6.1.0"
|
| 1316 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1317 |
+
sdist = { url = "https://files.pythonhosted.org/packages/02/e7/94f8232d4a74cc99514c13a9f995811485a6903d48e5d952771ef6322e30/hyperframe-6.1.0.tar.gz", hash = "sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08", size = 26566, upload-time = "2025-01-22T21:41:49.302Z" }
|
| 1318 |
+
wheels = [
|
| 1319 |
+
{ url = "https://files.pythonhosted.org/packages/48/30/47d0bf6072f7252e6521f3447ccfa40b421b6824517f82854703d0f5a98b/hyperframe-6.1.0-py3-none-any.whl", hash = "sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5", size = 13007, upload-time = "2025-01-22T21:41:47.295Z" },
|
| 1320 |
+
]
|
| 1321 |
+
|
| 1322 |
[[package]]
|
| 1323 |
name = "idna"
|
| 1324 |
version = "3.10"
|
|
|
|
| 1979 |
{ url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" },
|
| 1980 |
]
|
| 1981 |
|
| 1982 |
+
[[package]]
|
| 1983 |
+
name = "msgpack"
|
| 1984 |
+
version = "1.1.2"
|
| 1985 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1986 |
+
sdist = { url = "https://files.pythonhosted.org/packages/4d/f2/bfb55a6236ed8725a96b0aa3acbd0ec17588e6a2c3b62a93eb513ed8783f/msgpack-1.1.2.tar.gz", hash = "sha256:3b60763c1373dd60f398488069bcdc703cd08a711477b5d480eecc9f9626f47e", size = 173581, upload-time = "2025-10-08T09:15:56.596Z" }
|
| 1987 |
+
wheels = [
|
| 1988 |
+
{ url = "https://files.pythonhosted.org/packages/ad/bd/8b0d01c756203fbab65d265859749860682ccd2a59594609aeec3a144efa/msgpack-1.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:70a0dff9d1f8da25179ffcf880e10cf1aad55fdb63cd59c9a49a1b82290062aa", size = 81939, upload-time = "2025-10-08T09:15:01.472Z" },
|
| 1989 |
+
{ url = "https://files.pythonhosted.org/packages/34/68/ba4f155f793a74c1483d4bdef136e1023f7bcba557f0db4ef3db3c665cf1/msgpack-1.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:446abdd8b94b55c800ac34b102dffd2f6aa0ce643c55dfc017ad89347db3dbdb", size = 85064, upload-time = "2025-10-08T09:15:03.764Z" },
|
| 1990 |
+
{ url = "https://files.pythonhosted.org/packages/f2/60/a064b0345fc36c4c3d2c743c82d9100c40388d77f0b48b2f04d6041dbec1/msgpack-1.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c63eea553c69ab05b6747901b97d620bb2a690633c77f23feb0c6a947a8a7b8f", size = 417131, upload-time = "2025-10-08T09:15:05.136Z" },
|
| 1991 |
+
{ url = "https://files.pythonhosted.org/packages/65/92/a5100f7185a800a5d29f8d14041f61475b9de465ffcc0f3b9fba606e4505/msgpack-1.1.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:372839311ccf6bdaf39b00b61288e0557916c3729529b301c52c2d88842add42", size = 427556, upload-time = "2025-10-08T09:15:06.837Z" },
|
| 1992 |
+
{ url = "https://files.pythonhosted.org/packages/f5/87/ffe21d1bf7d9991354ad93949286f643b2bb6ddbeab66373922b44c3b8cc/msgpack-1.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2929af52106ca73fcb28576218476ffbb531a036c2adbcf54a3664de124303e9", size = 404920, upload-time = "2025-10-08T09:15:08.179Z" },
|
| 1993 |
+
{ url = "https://files.pythonhosted.org/packages/ff/41/8543ed2b8604f7c0d89ce066f42007faac1eaa7d79a81555f206a5cdb889/msgpack-1.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be52a8fc79e45b0364210eef5234a7cf8d330836d0a64dfbb878efa903d84620", size = 415013, upload-time = "2025-10-08T09:15:09.83Z" },
|
| 1994 |
+
{ url = "https://files.pythonhosted.org/packages/41/0d/2ddfaa8b7e1cee6c490d46cb0a39742b19e2481600a7a0e96537e9c22f43/msgpack-1.1.2-cp312-cp312-win32.whl", hash = "sha256:1fff3d825d7859ac888b0fbda39a42d59193543920eda9d9bea44d958a878029", size = 65096, upload-time = "2025-10-08T09:15:11.11Z" },
|
| 1995 |
+
{ url = "https://files.pythonhosted.org/packages/8c/ec/d431eb7941fb55a31dd6ca3404d41fbb52d99172df2e7707754488390910/msgpack-1.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:1de460f0403172cff81169a30b9a92b260cb809c4cb7e2fc79ae8d0510c78b6b", size = 72708, upload-time = "2025-10-08T09:15:12.554Z" },
|
| 1996 |
+
{ url = "https://files.pythonhosted.org/packages/c5/31/5b1a1f70eb0e87d1678e9624908f86317787b536060641d6798e3cf70ace/msgpack-1.1.2-cp312-cp312-win_arm64.whl", hash = "sha256:be5980f3ee0e6bd44f3a9e9dea01054f175b50c3e6cdb692bc9424c0bbb8bf69", size = 64119, upload-time = "2025-10-08T09:15:13.589Z" },
|
| 1997 |
+
{ url = "https://files.pythonhosted.org/packages/6b/31/b46518ecc604d7edf3a4f94cb3bf021fc62aa301f0cb849936968164ef23/msgpack-1.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4efd7b5979ccb539c221a4c4e16aac1a533efc97f3b759bb5a5ac9f6d10383bf", size = 81212, upload-time = "2025-10-08T09:15:14.552Z" },
|
| 1998 |
+
{ url = "https://files.pythonhosted.org/packages/92/dc/c385f38f2c2433333345a82926c6bfa5ecfff3ef787201614317b58dd8be/msgpack-1.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42eefe2c3e2af97ed470eec850facbe1b5ad1d6eacdbadc42ec98e7dcf68b4b7", size = 84315, upload-time = "2025-10-08T09:15:15.543Z" },
|
| 1999 |
+
{ url = "https://files.pythonhosted.org/packages/d3/68/93180dce57f684a61a88a45ed13047558ded2be46f03acb8dec6d7c513af/msgpack-1.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1fdf7d83102bf09e7ce3357de96c59b627395352a4024f6e2458501f158bf999", size = 412721, upload-time = "2025-10-08T09:15:16.567Z" },
|
| 2000 |
+
{ url = "https://files.pythonhosted.org/packages/5d/ba/459f18c16f2b3fc1a1ca871f72f07d70c07bf768ad0a507a698b8052ac58/msgpack-1.1.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fac4be746328f90caa3cd4bc67e6fe36ca2bf61d5c6eb6d895b6527e3f05071e", size = 424657, upload-time = "2025-10-08T09:15:17.825Z" },
|
| 2001 |
+
{ url = "https://files.pythonhosted.org/packages/38/f8/4398c46863b093252fe67368b44edc6c13b17f4e6b0e4929dbf0bdb13f23/msgpack-1.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fffee09044073e69f2bad787071aeec727183e7580443dfeb8556cbf1978d162", size = 402668, upload-time = "2025-10-08T09:15:19.003Z" },
|
| 2002 |
+
{ url = "https://files.pythonhosted.org/packages/28/ce/698c1eff75626e4124b4d78e21cca0b4cc90043afb80a507626ea354ab52/msgpack-1.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5928604de9b032bc17f5099496417f113c45bc6bc21b5c6920caf34b3c428794", size = 419040, upload-time = "2025-10-08T09:15:20.183Z" },
|
| 2003 |
+
{ url = "https://files.pythonhosted.org/packages/67/32/f3cd1667028424fa7001d82e10ee35386eea1408b93d399b09fb0aa7875f/msgpack-1.1.2-cp313-cp313-win32.whl", hash = "sha256:a7787d353595c7c7e145e2331abf8b7ff1e6673a6b974ded96e6d4ec09f00c8c", size = 65037, upload-time = "2025-10-08T09:15:21.416Z" },
|
| 2004 |
+
{ url = "https://files.pythonhosted.org/packages/74/07/1ed8277f8653c40ebc65985180b007879f6a836c525b3885dcc6448ae6cb/msgpack-1.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:a465f0dceb8e13a487e54c07d04ae3ba131c7c5b95e2612596eafde1dccf64a9", size = 72631, upload-time = "2025-10-08T09:15:22.431Z" },
|
| 2005 |
+
{ url = "https://files.pythonhosted.org/packages/e5/db/0314e4e2db56ebcf450f277904ffd84a7988b9e5da8d0d61ab2d057df2b6/msgpack-1.1.2-cp313-cp313-win_arm64.whl", hash = "sha256:e69b39f8c0aa5ec24b57737ebee40be647035158f14ed4b40e6f150077e21a84", size = 64118, upload-time = "2025-10-08T09:15:23.402Z" },
|
| 2006 |
+
{ url = "https://files.pythonhosted.org/packages/22/71/201105712d0a2ff07b7873ed3c220292fb2ea5120603c00c4b634bcdafb3/msgpack-1.1.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e23ce8d5f7aa6ea6d2a2b326b4ba46c985dbb204523759984430db7114f8aa00", size = 81127, upload-time = "2025-10-08T09:15:24.408Z" },
|
| 2007 |
+
{ url = "https://files.pythonhosted.org/packages/1b/9f/38ff9e57a2eade7bf9dfee5eae17f39fc0e998658050279cbb14d97d36d9/msgpack-1.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6c15b7d74c939ebe620dd8e559384be806204d73b4f9356320632d783d1f7939", size = 84981, upload-time = "2025-10-08T09:15:25.812Z" },
|
| 2008 |
+
{ url = "https://files.pythonhosted.org/packages/8e/a9/3536e385167b88c2cc8f4424c49e28d49a6fc35206d4a8060f136e71f94c/msgpack-1.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:99e2cb7b9031568a2a5c73aa077180f93dd2e95b4f8d3b8e14a73ae94a9e667e", size = 411885, upload-time = "2025-10-08T09:15:27.22Z" },
|
| 2009 |
+
{ url = "https://files.pythonhosted.org/packages/2f/40/dc34d1a8d5f1e51fc64640b62b191684da52ca469da9cd74e84936ffa4a6/msgpack-1.1.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:180759d89a057eab503cf62eeec0aa61c4ea1200dee709f3a8e9397dbb3b6931", size = 419658, upload-time = "2025-10-08T09:15:28.4Z" },
|
| 2010 |
+
{ url = "https://files.pythonhosted.org/packages/3b/ef/2b92e286366500a09a67e03496ee8b8ba00562797a52f3c117aa2b29514b/msgpack-1.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:04fb995247a6e83830b62f0b07bf36540c213f6eac8e851166d8d86d83cbd014", size = 403290, upload-time = "2025-10-08T09:15:29.764Z" },
|
| 2011 |
+
{ url = "https://files.pythonhosted.org/packages/78/90/e0ea7990abea5764e4655b8177aa7c63cdfa89945b6e7641055800f6c16b/msgpack-1.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:8e22ab046fa7ede9e36eeb4cfad44d46450f37bb05d5ec482b02868f451c95e2", size = 415234, upload-time = "2025-10-08T09:15:31.022Z" },
|
| 2012 |
+
{ url = "https://files.pythonhosted.org/packages/72/4e/9390aed5db983a2310818cd7d3ec0aecad45e1f7007e0cda79c79507bb0d/msgpack-1.1.2-cp314-cp314-win32.whl", hash = "sha256:80a0ff7d4abf5fecb995fcf235d4064b9a9a8a40a3ab80999e6ac1e30b702717", size = 66391, upload-time = "2025-10-08T09:15:32.265Z" },
|
| 2013 |
+
{ url = "https://files.pythonhosted.org/packages/6e/f1/abd09c2ae91228c5f3998dbd7f41353def9eac64253de3c8105efa2082f7/msgpack-1.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:9ade919fac6a3e7260b7f64cea89df6bec59104987cbea34d34a2fa15d74310b", size = 73787, upload-time = "2025-10-08T09:15:33.219Z" },
|
| 2014 |
+
{ url = "https://files.pythonhosted.org/packages/6a/b0/9d9f667ab48b16ad4115c1935d94023b82b3198064cb84a123e97f7466c1/msgpack-1.1.2-cp314-cp314-win_arm64.whl", hash = "sha256:59415c6076b1e30e563eb732e23b994a61c159cec44deaf584e5cc1dd662f2af", size = 66453, upload-time = "2025-10-08T09:15:34.225Z" },
|
| 2015 |
+
{ url = "https://files.pythonhosted.org/packages/16/67/93f80545eb1792b61a217fa7f06d5e5cb9e0055bed867f43e2b8e012e137/msgpack-1.1.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:897c478140877e5307760b0ea66e0932738879e7aa68144d9b78ea4c8302a84a", size = 85264, upload-time = "2025-10-08T09:15:35.61Z" },
|
| 2016 |
+
{ url = "https://files.pythonhosted.org/packages/87/1c/33c8a24959cf193966ef11a6f6a2995a65eb066bd681fd085afd519a57ce/msgpack-1.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a668204fa43e6d02f89dbe79a30b0d67238d9ec4c5bd8a940fc3a004a47b721b", size = 89076, upload-time = "2025-10-08T09:15:36.619Z" },
|
| 2017 |
+
{ url = "https://files.pythonhosted.org/packages/fc/6b/62e85ff7193663fbea5c0254ef32f0c77134b4059f8da89b958beb7696f3/msgpack-1.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5559d03930d3aa0f3aacb4c42c776af1a2ace2611871c84a75afe436695e6245", size = 435242, upload-time = "2025-10-08T09:15:37.647Z" },
|
| 2018 |
+
{ url = "https://files.pythonhosted.org/packages/c1/47/5c74ecb4cc277cf09f64e913947871682ffa82b3b93c8dad68083112f412/msgpack-1.1.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:70c5a7a9fea7f036b716191c29047374c10721c389c21e9ffafad04df8c52c90", size = 432509, upload-time = "2025-10-08T09:15:38.794Z" },
|
| 2019 |
+
{ url = "https://files.pythonhosted.org/packages/24/a4/e98ccdb56dc4e98c929a3f150de1799831c0a800583cde9fa022fa90602d/msgpack-1.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f2cb069d8b981abc72b41aea1c580ce92d57c673ec61af4c500153a626cb9e20", size = 415957, upload-time = "2025-10-08T09:15:40.238Z" },
|
| 2020 |
+
{ url = "https://files.pythonhosted.org/packages/da/28/6951f7fb67bc0a4e184a6b38ab71a92d9ba58080b27a77d3e2fb0be5998f/msgpack-1.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d62ce1f483f355f61adb5433ebfd8868c5f078d1a52d042b0a998682b4fa8c27", size = 422910, upload-time = "2025-10-08T09:15:41.505Z" },
|
| 2021 |
+
{ url = "https://files.pythonhosted.org/packages/f0/03/42106dcded51f0a0b5284d3ce30a671e7bd3f7318d122b2ead66ad289fed/msgpack-1.1.2-cp314-cp314t-win32.whl", hash = "sha256:1d1418482b1ee984625d88aa9585db570180c286d942da463533b238b98b812b", size = 75197, upload-time = "2025-10-08T09:15:42.954Z" },
|
| 2022 |
+
{ url = "https://files.pythonhosted.org/packages/15/86/d0071e94987f8db59d4eeb386ddc64d0bb9b10820a8d82bcd3e53eeb2da6/msgpack-1.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:5a46bf7e831d09470ad92dff02b8b1ac92175ca36b087f904a0519857c6be3ff", size = 85772, upload-time = "2025-10-08T09:15:43.954Z" },
|
| 2023 |
+
{ url = "https://files.pythonhosted.org/packages/81/f2/08ace4142eb281c12701fc3b93a10795e4d4dc7f753911d836675050f886/msgpack-1.1.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d99ef64f349d5ec3293688e91486c5fdb925ed03807f64d98d205d2713c60b46", size = 70868, upload-time = "2025-10-08T09:15:44.959Z" },
|
| 2024 |
+
]
|
| 2025 |
+
|
| 2026 |
[[package]]
|
| 2027 |
name = "multidict"
|
| 2028 |
version = "6.6.4"
|
|
|
|
| 2884 |
{ url = "https://files.pythonhosted.org/packages/b1/ec/1fb891d8a2660716aadb2143235481d15ed1cbfe3ad669194690b0604492/pycountry-24.6.1-py3-none-any.whl", hash = "sha256:f1a4fb391cd7214f8eefd39556d740adcc233c778a27f8942c8dca351d6ce06f", size = 6335189, upload-time = "2024-06-01T04:11:49.711Z" },
|
| 2885 |
]
|
| 2886 |
|
| 2887 |
+
[[package]]
|
| 2888 |
+
name = "pycparser"
|
| 2889 |
+
version = "2.23"
|
| 2890 |
+
source = { registry = "https://pypi.org/simple" }
|
| 2891 |
+
sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" }
|
| 2892 |
+
wheels = [
|
| 2893 |
+
{ url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" },
|
| 2894 |
+
]
|
| 2895 |
+
|
| 2896 |
[[package]]
|
| 2897 |
name = "pydantic"
|
| 2898 |
version = "2.11.9"
|
|
|
|
| 2982 |
{ url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" },
|
| 2983 |
]
|
| 2984 |
|
| 2985 |
+
[[package]]
|
| 2986 |
+
name = "pyjwt"
|
| 2987 |
+
version = "2.10.1"
|
| 2988 |
+
source = { registry = "https://pypi.org/simple" }
|
| 2989 |
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" }
|
| 2990 |
+
wheels = [
|
| 2991 |
+
{ url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" },
|
| 2992 |
+
]
|
| 2993 |
+
|
| 2994 |
+
[package.optional-dependencies]
|
| 2995 |
+
crypto = [
|
| 2996 |
+
{ name = "cryptography" },
|
| 2997 |
+
]
|
| 2998 |
+
|
| 2999 |
[[package]]
|
| 3000 |
name = "pykakasi"
|
| 3001 |
version = "2.3.0"
|
|
|
|
| 3415 |
{ name = "dotenv" },
|
| 3416 |
{ name = "dropbox" },
|
| 3417 |
{ name = "feedparser" },
|
| 3418 |
+
{ name = "firebase-admin" },
|
| 3419 |
{ name = "google-api-python-client" },
|
| 3420 |
{ name = "google-auth-httplib2" },
|
| 3421 |
{ name = "google-auth-oauthlib" },
|
|
|
|
| 3439 |
{ name = "dotenv", specifier = ">=0.9.9" },
|
| 3440 |
{ name = "dropbox", specifier = ">=12.0.2" },
|
| 3441 |
{ name = "feedparser", specifier = ">=6.0.12" },
|
| 3442 |
+
{ name = "firebase-admin", specifier = ">=7.1.0" },
|
| 3443 |
{ name = "google-api-python-client", specifier = ">=2.177.0" },
|
| 3444 |
{ name = "google-auth-httplib2", specifier = ">=0.2.0" },
|
| 3445 |
{ name = "google-auth-oauthlib", specifier = ">=1.2.2" },
|