Add scheduler for fetching papers and storing in db.
Browse files- paperflux/src/__init__.py +0 -0
- paperflux/src/__pycache__/scheduler.cpython-311.pyc +0 -0
- paperflux/src/__pycache__/tasks.cpython-311.pyc +0 -0
- paperflux/src/app.py +18 -0
- paperflux/src/scheduler.py +24 -0
- paperflux/src/tasks.py +56 -0
- poetry.lock +379 -96
- pyproject.toml +10 -1
- tests/api_test.py +32 -25
- tests/pdf_workflow_test.py +15 -13
paperflux/src/__init__.py
ADDED
|
File without changes
|
paperflux/src/__pycache__/scheduler.cpython-311.pyc
ADDED
|
Binary file (1.61 kB). View file
|
|
|
paperflux/src/__pycache__/tasks.cpython-311.pyc
ADDED
|
Binary file (5.11 kB). View file
|
|
|
paperflux/src/app.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from threading import Thread
|
| 2 |
+
from scheduler import start_scheduler
|
| 3 |
+
from flask import Flask
|
| 4 |
+
|
| 5 |
+
app = Flask(__name__)
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
@app.route("/")
|
| 9 |
+
def home():
|
| 10 |
+
return "Welcome!"
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
if __name__ == "__main__":
|
| 14 |
+
# Run scheduler to fetch papers in a separate thread
|
| 15 |
+
scheduler_thread = Thread(target=start_scheduler, daemon=True)
|
| 16 |
+
scheduler_thread.start()
|
| 17 |
+
|
| 18 |
+
app.run(debug=True, use_reloader=False)
|
paperflux/src/scheduler.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import time
|
| 2 |
+
import asyncio
|
| 3 |
+
from apscheduler.schedulers.background import BackgroundScheduler
|
| 4 |
+
from tasks import run_paper_fetch_job
|
| 5 |
+
from datetime import datetime
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def job():
|
| 9 |
+
print("Fetching papers 📝")
|
| 10 |
+
asyncio.run(run_paper_fetch_job())
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
def start_scheduler():
|
| 14 |
+
scheduler = BackgroundScheduler()
|
| 15 |
+
scheduler.add_job(job, "interval", hours=24, next_run_time=datetime.now())
|
| 16 |
+
scheduler.start()
|
| 17 |
+
print("Scheduler started. Running in background.")
|
| 18 |
+
|
| 19 |
+
try:
|
| 20 |
+
while True:
|
| 21 |
+
time.sleep(60)
|
| 22 |
+
except (KeyboardInterrupt, SystemExit):
|
| 23 |
+
scheduler.shutdown()
|
| 24 |
+
print("Scheduler stopped.")
|
paperflux/src/tasks.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import asyncio
|
| 2 |
+
import aiohttp
|
| 3 |
+
from pymongo import MongoClient
|
| 4 |
+
from datetime import datetime, timezone
|
| 5 |
+
import os
|
| 6 |
+
|
| 7 |
+
API_URL = "https://huggingface.co/api/daily_papers"
|
| 8 |
+
PDF_BASE_URL = "https://arxiv.org/pdf/{id}.pdf"
|
| 9 |
+
|
| 10 |
+
client = MongoClient("mongodb://localhost:27017/")
|
| 11 |
+
db = client["papers_summary_database"]
|
| 12 |
+
collection = db["papers"]
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
async def fetch_papers(session):
|
| 16 |
+
async with session.get(API_URL) as response:
|
| 17 |
+
if response.status == 200:
|
| 18 |
+
return await response.json()
|
| 19 |
+
raise Exception(f"API request failed: {response.status}")
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
async def download_pdf(session, paper_entry):
|
| 23 |
+
try:
|
| 24 |
+
paper_id = paper_entry["paper"]["id"]
|
| 25 |
+
pdf_url = PDF_BASE_URL.format(id=paper_id)
|
| 26 |
+
|
| 27 |
+
async with session.get(pdf_url) as response:
|
| 28 |
+
if response.status == 200:
|
| 29 |
+
content = await response.read()
|
| 30 |
+
os.makedirs("pdfs", exist_ok=True)
|
| 31 |
+
with open(f"pdfs/{paper_id}", "wb") as f:
|
| 32 |
+
f.write(content)
|
| 33 |
+
|
| 34 |
+
return (paper_id, True)
|
| 35 |
+
|
| 36 |
+
return (paper_id, False)
|
| 37 |
+
except Exception as e:
|
| 38 |
+
print(f"Error downloading {paper_id}: {str(e)}")
|
| 39 |
+
return (paper_id, False)
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
async def run_paper_fetch_job():
|
| 43 |
+
async with aiohttp.ClientSession() as session:
|
| 44 |
+
papers = await fetch_papers(session)
|
| 45 |
+
tasks = []
|
| 46 |
+
|
| 47 |
+
for paper in papers:
|
| 48 |
+
paper_data = paper["paper"]
|
| 49 |
+
paper_data["fetchedAt"] = datetime.now(timezone.utc).isoformat()
|
| 50 |
+
collection.insert_one(paper_data)
|
| 51 |
+
|
| 52 |
+
tasks = [download_pdf(session, paper) for paper in papers]
|
| 53 |
+
results = await asyncio.gather(*tasks)
|
| 54 |
+
|
| 55 |
+
successful = sum(1 for _, status in results if status)
|
| 56 |
+
print(f"Downloaded {successful}/{len(papers)} papers successfully")
|
poetry.lock
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# This file is automatically @generated by Poetry 2.
|
| 2 |
|
| 3 |
[[package]]
|
| 4 |
name = "aiofiles"
|
|
@@ -7,7 +7,6 @@ description = "File support for asyncio."
|
|
| 7 |
optional = false
|
| 8 |
python-versions = ">=3.7"
|
| 9 |
groups = ["main"]
|
| 10 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 11 |
files = [
|
| 12 |
{file = "aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107"},
|
| 13 |
{file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"},
|
|
@@ -20,7 +19,6 @@ description = "Reusable constraint types to use with typing.Annotated"
|
|
| 20 |
optional = false
|
| 21 |
python-versions = ">=3.8"
|
| 22 |
groups = ["main"]
|
| 23 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 24 |
files = [
|
| 25 |
{file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
|
| 26 |
{file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
|
|
@@ -33,7 +31,6 @@ description = "High level compatibility layer for multiple asynchronous event lo
|
|
| 33 |
optional = false
|
| 34 |
python-versions = ">=3.9"
|
| 35 |
groups = ["main"]
|
| 36 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 37 |
files = [
|
| 38 |
{file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
|
| 39 |
{file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
|
|
@@ -47,7 +44,7 @@ typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
|
|
| 47 |
|
| 48 |
[package.extras]
|
| 49 |
doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
|
| 50 |
-
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"]
|
| 51 |
trio = ["trio (>=0.26.1)"]
|
| 52 |
|
| 53 |
[[package]]
|
|
@@ -57,7 +54,6 @@ description = "In-process task scheduler with Cron-like capabilities"
|
|
| 57 |
optional = false
|
| 58 |
python-versions = ">=3.8"
|
| 59 |
groups = ["main"]
|
| 60 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 61 |
files = [
|
| 62 |
{file = "APScheduler-3.11.0-py3-none-any.whl", hash = "sha256:fc134ca32e50f5eadcc4938e3a4545ab19131435e851abb40b34d63d5141c6da"},
|
| 63 |
{file = "apscheduler-3.11.0.tar.gz", hash = "sha256:4c622d250b0955a65d5d0eb91c33e6d43fd879834bf541e0a18661ae60460133"},
|
|
@@ -74,7 +70,7 @@ mongodb = ["pymongo (>=3.0)"]
|
|
| 74 |
redis = ["redis (>=3.0)"]
|
| 75 |
rethinkdb = ["rethinkdb (>=2.4.0)"]
|
| 76 |
sqlalchemy = ["sqlalchemy (>=1.4)"]
|
| 77 |
-
test = ["APScheduler[etcd,mongodb,redis,rethinkdb,sqlalchemy,tornado,zookeeper]", "PySide6", "anyio (>=4.5.2)", "gevent", "pytest", "pytz", "twisted"]
|
| 78 |
tornado = ["tornado (>=4.3)"]
|
| 79 |
twisted = ["twisted"]
|
| 80 |
zookeeper = ["kazoo"]
|
|
@@ -136,6 +132,65 @@ files = [
|
|
| 136 |
{file = "audioop_lts-0.2.1.tar.gz", hash = "sha256:e81268da0baa880431b68b1308ab7257eb33f356e57a5f9b1f915dfb13dd1387"},
|
| 137 |
]
|
| 138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 139 |
[[package]]
|
| 140 |
name = "cachetools"
|
| 141 |
version = "5.5.1"
|
|
@@ -143,7 +198,6 @@ description = "Extensible memoizing collections and decorators"
|
|
| 143 |
optional = false
|
| 144 |
python-versions = ">=3.7"
|
| 145 |
groups = ["main"]
|
| 146 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 147 |
files = [
|
| 148 |
{file = "cachetools-5.5.1-py3-none-any.whl", hash = "sha256:b76651fdc3b24ead3c648bbdeeb940c1b04d365b38b4af66788f9ec4a81d42bb"},
|
| 149 |
{file = "cachetools-5.5.1.tar.gz", hash = "sha256:70f238fbba50383ef62e55c6aff6d9673175fe59f7c6782c7a0b9e38f4a9df95"},
|
|
@@ -156,7 +210,6 @@ description = "Python package for providing Mozilla's CA Bundle."
|
|
| 156 |
optional = false
|
| 157 |
python-versions = ">=3.6"
|
| 158 |
groups = ["main"]
|
| 159 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 160 |
files = [
|
| 161 |
{file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"},
|
| 162 |
{file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"},
|
|
@@ -169,7 +222,6 @@ description = "The Real First Universal Charset Detector. Open, modern and activ
|
|
| 169 |
optional = false
|
| 170 |
python-versions = ">=3.7"
|
| 171 |
groups = ["main"]
|
| 172 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 173 |
files = [
|
| 174 |
{file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
|
| 175 |
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
|
|
@@ -271,8 +323,7 @@ version = "8.1.8"
|
|
| 271 |
description = "Composable command line interface toolkit"
|
| 272 |
optional = false
|
| 273 |
python-versions = ">=3.7"
|
| 274 |
-
groups = ["main"]
|
| 275 |
-
markers = "(python_version >= \"3.12\" or python_version <= \"3.11\") and sys_platform != \"emscripten\""
|
| 276 |
files = [
|
| 277 |
{file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
|
| 278 |
{file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
|
|
@@ -287,13 +338,34 @@ version = "0.4.6"
|
|
| 287 |
description = "Cross-platform colored terminal text."
|
| 288 |
optional = false
|
| 289 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
| 290 |
-
groups = ["main"]
|
| 291 |
-
markers = "
|
| 292 |
files = [
|
| 293 |
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
| 294 |
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
| 295 |
]
|
| 296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
[[package]]
|
| 298 |
name = "exceptiongroup"
|
| 299 |
version = "1.2.2"
|
|
@@ -317,7 +389,6 @@ description = "FastAPI framework, high performance, easy to learn, fast to code,
|
|
| 317 |
optional = false
|
| 318 |
python-versions = ">=3.8"
|
| 319 |
groups = ["main"]
|
| 320 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 321 |
files = [
|
| 322 |
{file = "fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf"},
|
| 323 |
{file = "fastapi-0.115.8.tar.gz", hash = "sha256:0ce9111231720190473e222cdf0f07f7206ad7e53ea02beb1d2dc36e2f0741e9"},
|
|
@@ -339,7 +410,6 @@ description = "A simple Python wrapper for ffmpeg"
|
|
| 339 |
optional = false
|
| 340 |
python-versions = "*"
|
| 341 |
groups = ["main"]
|
| 342 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 343 |
files = [
|
| 344 |
{file = "ffmpy-0.3.2.tar.gz", hash = "sha256:475ebfff1044661b8d969349dbcd2db9bf56d3ee78c0627e324769b49a27a78f"},
|
| 345 |
]
|
|
@@ -351,7 +421,6 @@ description = "A platform independent file lock."
|
|
| 351 |
optional = false
|
| 352 |
python-versions = ">=3.9"
|
| 353 |
groups = ["main"]
|
| 354 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 355 |
files = [
|
| 356 |
{file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"},
|
| 357 |
{file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"},
|
|
@@ -360,7 +429,47 @@ files = [
|
|
| 360 |
[package.extras]
|
| 361 |
docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"]
|
| 362 |
testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"]
|
| 363 |
-
typing = ["typing-extensions (>=4.12.2)"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 364 |
|
| 365 |
[[package]]
|
| 366 |
name = "fsspec"
|
|
@@ -369,7 +478,6 @@ description = "File-system specification"
|
|
| 369 |
optional = false
|
| 370 |
python-versions = ">=3.8"
|
| 371 |
groups = ["main"]
|
| 372 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 373 |
files = [
|
| 374 |
{file = "fsspec-2025.2.0-py3-none-any.whl", hash = "sha256:9de2ad9ce1f85e1931858535bc882543171d197001a0a5eb2ddc04f1781ab95b"},
|
| 375 |
{file = "fsspec-2025.2.0.tar.gz", hash = "sha256:1c24b16eaa0a1798afa0337aa0db9b256718ab2a89c425371f5628d22c3b6afd"},
|
|
@@ -410,7 +518,6 @@ description = "Google Ai Generativelanguage API client library"
|
|
| 410 |
optional = false
|
| 411 |
python-versions = ">=3.7"
|
| 412 |
groups = ["main"]
|
| 413 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 414 |
files = [
|
| 415 |
{file = "google_ai_generativelanguage-0.6.15-py3-none-any.whl", hash = "sha256:5a03ef86377aa184ffef3662ca28f19eeee158733e45d7947982eb953c6ebb6c"},
|
| 416 |
{file = "google_ai_generativelanguage-0.6.15.tar.gz", hash = "sha256:8f6d9dc4c12b065fe2d0289026171acea5183ebf2d0b11cefe12f3821e159ec3"},
|
|
@@ -421,7 +528,7 @@ google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0dev", extr
|
|
| 421 |
google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0dev"
|
| 422 |
proto-plus = [
|
| 423 |
{version = ">=1.25.0,<2.0.0dev", markers = "python_version >= \"3.13\""},
|
| 424 |
-
{version = ">=1.22.3,<2.0.0dev"
|
| 425 |
]
|
| 426 |
protobuf = ">=3.20.2,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0dev"
|
| 427 |
|
|
@@ -432,7 +539,6 @@ description = "Google API client core library"
|
|
| 432 |
optional = false
|
| 433 |
python-versions = ">=3.7"
|
| 434 |
groups = ["main"]
|
| 435 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 436 |
files = [
|
| 437 |
{file = "google_api_core-2.24.1-py3-none-any.whl", hash = "sha256:bc78d608f5a5bf853b80bd70a795f703294de656c096c0968320830a4bc280f1"},
|
| 438 |
{file = "google_api_core-2.24.1.tar.gz", hash = "sha256:f8b36f5456ab0dd99a1b693a40a31d1e7757beea380ad1b38faaf8941eae9d8a"},
|
|
@@ -443,11 +549,11 @@ google-auth = ">=2.14.1,<3.0.dev0"
|
|
| 443 |
googleapis-common-protos = ">=1.56.2,<2.0.dev0"
|
| 444 |
grpcio = [
|
| 445 |
{version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""},
|
| 446 |
-
{version = ">=1.33.2,<2.0dev", optional = true, markers = "
|
| 447 |
]
|
| 448 |
grpcio-status = [
|
| 449 |
{version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""},
|
| 450 |
-
{version = ">=1.33.2,<2.0.dev0", optional = true, markers = "
|
| 451 |
]
|
| 452 |
proto-plus = [
|
| 453 |
{version = ">=1.25.0,<2.0.0dev", markers = "python_version >= \"3.13\""},
|
|
@@ -458,7 +564,7 @@ requests = ">=2.18.0,<3.0.0.dev0"
|
|
| 458 |
|
| 459 |
[package.extras]
|
| 460 |
async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.dev0)"]
|
| 461 |
-
grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0)"]
|
| 462 |
grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"]
|
| 463 |
grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"]
|
| 464 |
|
|
@@ -469,7 +575,6 @@ description = "Google API Client Library for Python"
|
|
| 469 |
optional = false
|
| 470 |
python-versions = ">=3.7"
|
| 471 |
groups = ["main"]
|
| 472 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 473 |
files = [
|
| 474 |
{file = "google_api_python_client-2.161.0-py2.py3-none-any.whl", hash = "sha256:9476a5a4f200bae368140453df40f9cda36be53fa7d0e9a9aac4cdb859a26448"},
|
| 475 |
{file = "google_api_python_client-2.161.0.tar.gz", hash = "sha256:324c0cce73e9ea0a0d2afd5937e01b7c2d6a4d7e2579cdb6c384f9699d6c9f37"},
|
|
@@ -489,7 +594,6 @@ description = "Google Authentication Library"
|
|
| 489 |
optional = false
|
| 490 |
python-versions = ">=3.7"
|
| 491 |
groups = ["main"]
|
| 492 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 493 |
files = [
|
| 494 |
{file = "google_auth-2.38.0-py2.py3-none-any.whl", hash = "sha256:e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a"},
|
| 495 |
{file = "google_auth-2.38.0.tar.gz", hash = "sha256:8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4"},
|
|
@@ -515,7 +619,6 @@ description = "Google Authentication Library: httplib2 transport"
|
|
| 515 |
optional = false
|
| 516 |
python-versions = "*"
|
| 517 |
groups = ["main"]
|
| 518 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 519 |
files = [
|
| 520 |
{file = "google-auth-httplib2-0.2.0.tar.gz", hash = "sha256:38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05"},
|
| 521 |
{file = "google_auth_httplib2-0.2.0-py2.py3-none-any.whl", hash = "sha256:b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d"},
|
|
@@ -532,7 +635,6 @@ description = "Google Generative AI High level API client library and tools."
|
|
| 532 |
optional = false
|
| 533 |
python-versions = ">=3.9"
|
| 534 |
groups = ["main"]
|
| 535 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 536 |
files = [
|
| 537 |
{file = "google_generativeai-0.8.4-py3-none-any.whl", hash = "sha256:e987b33ea6decde1e69191ddcaec6ef974458864d243de7191db50c21a7c5b82"},
|
| 538 |
]
|
|
@@ -557,7 +659,6 @@ description = "Common protobufs used in Google APIs"
|
|
| 557 |
optional = false
|
| 558 |
python-versions = ">=3.7"
|
| 559 |
groups = ["main"]
|
| 560 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 561 |
files = [
|
| 562 |
{file = "googleapis_common_protos-1.67.0-py2.py3-none-any.whl", hash = "sha256:579de760800d13616f51cf8be00c876f00a9f146d3e6510e19d1f4111758b741"},
|
| 563 |
{file = "googleapis_common_protos-1.67.0.tar.gz", hash = "sha256:21398025365f138be356d5923e9168737d94d46a72aefee4a6110a1f23463c86"},
|
|
@@ -576,7 +677,6 @@ description = "Python library for easily interacting with trained machine learni
|
|
| 576 |
optional = false
|
| 577 |
python-versions = ">=3.10"
|
| 578 |
groups = ["main"]
|
| 579 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 580 |
files = [
|
| 581 |
{file = "gradio-5.16.0-py3-none-any.whl", hash = "sha256:0cae0fb5a261981d6ba2d1b24732d86bb0daa9596f9aa9a98123aaf45f98dfa6"},
|
| 582 |
]
|
|
@@ -621,7 +721,6 @@ description = "Python library for easily interacting with trained machine learni
|
|
| 621 |
optional = false
|
| 622 |
python-versions = ">=3.10"
|
| 623 |
groups = ["main"]
|
| 624 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 625 |
files = [
|
| 626 |
{file = "gradio_client-1.7.0-py3-none-any.whl", hash = "sha256:b403570c67f121ebbbc19ac1f0afa2ab1bab085ce60d96eb190832fe871aa946"},
|
| 627 |
{file = "gradio_client-1.7.0.tar.gz", hash = "sha256:87f6ade197951f38bac0431b2a436a8ebb2f33b2ceba2ef8e1e5bef8d8b238e4"},
|
|
@@ -642,7 +741,6 @@ description = "HTTP/2-based RPC framework"
|
|
| 642 |
optional = false
|
| 643 |
python-versions = ">=3.8"
|
| 644 |
groups = ["main"]
|
| 645 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 646 |
files = [
|
| 647 |
{file = "grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851"},
|
| 648 |
{file = "grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf"},
|
|
@@ -711,7 +809,6 @@ description = "Status proto mapping for gRPC"
|
|
| 711 |
optional = false
|
| 712 |
python-versions = ">=3.8"
|
| 713 |
groups = ["main"]
|
| 714 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 715 |
files = [
|
| 716 |
{file = "grpcio_status-1.70.0-py3-none-any.whl", hash = "sha256:fc5a2ae2b9b1c1969cc49f3262676e6854aa2398ec69cb5bd6c47cd501904a85"},
|
| 717 |
{file = "grpcio_status-1.70.0.tar.gz", hash = "sha256:0e7b42816512433b18b9d764285ff029bde059e9d41f8fe10a60631bd8348101"},
|
|
@@ -729,7 +826,6 @@ description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
|
|
| 729 |
optional = false
|
| 730 |
python-versions = ">=3.7"
|
| 731 |
groups = ["main"]
|
| 732 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 733 |
files = [
|
| 734 |
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
|
| 735 |
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
|
|
@@ -742,7 +838,6 @@ description = "A minimal low-level HTTP client."
|
|
| 742 |
optional = false
|
| 743 |
python-versions = ">=3.8"
|
| 744 |
groups = ["main"]
|
| 745 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 746 |
files = [
|
| 747 |
{file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
|
| 748 |
{file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
|
|
@@ -765,7 +860,6 @@ description = "A comprehensive HTTP client library."
|
|
| 765 |
optional = false
|
| 766 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
| 767 |
groups = ["main"]
|
| 768 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 769 |
files = [
|
| 770 |
{file = "httplib2-0.22.0-py3-none-any.whl", hash = "sha256:14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc"},
|
| 771 |
{file = "httplib2-0.22.0.tar.gz", hash = "sha256:d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"},
|
|
@@ -781,7 +875,6 @@ description = "The next generation HTTP client."
|
|
| 781 |
optional = false
|
| 782 |
python-versions = ">=3.8"
|
| 783 |
groups = ["main"]
|
| 784 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 785 |
files = [
|
| 786 |
{file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
|
| 787 |
{file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
|
|
@@ -794,7 +887,7 @@ httpcore = "==1.*"
|
|
| 794 |
idna = "*"
|
| 795 |
|
| 796 |
[package.extras]
|
| 797 |
-
brotli = ["brotli", "brotlicffi"]
|
| 798 |
cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
|
| 799 |
http2 = ["h2 (>=3,<5)"]
|
| 800 |
socks = ["socksio (==1.*)"]
|
|
@@ -807,7 +900,6 @@ description = "Client library to download and publish models, datasets and other
|
|
| 807 |
optional = false
|
| 808 |
python-versions = ">=3.8.0"
|
| 809 |
groups = ["main"]
|
| 810 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 811 |
files = [
|
| 812 |
{file = "huggingface_hub-0.28.1-py3-none-any.whl", hash = "sha256:aa6b9a3ffdae939b72c464dbb0d7f99f56e649b55c3d52406f49e0a5a620c0a7"},
|
| 813 |
{file = "huggingface_hub-0.28.1.tar.gz", hash = "sha256:893471090c98e3b6efbdfdacafe4052b20b84d59866fb6f54c33d9af18c303ae"},
|
|
@@ -843,7 +935,6 @@ description = "Internationalized Domain Names in Applications (IDNA)"
|
|
| 843 |
optional = false
|
| 844 |
python-versions = ">=3.6"
|
| 845 |
groups = ["main"]
|
| 846 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 847 |
files = [
|
| 848 |
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
|
| 849 |
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
|
|
@@ -852,6 +943,18 @@ files = [
|
|
| 852 |
[package.extras]
|
| 853 |
all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
|
| 854 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 855 |
[[package]]
|
| 856 |
name = "jinja2"
|
| 857 |
version = "3.1.5"
|
|
@@ -859,7 +962,6 @@ description = "A very fast and expressive template engine."
|
|
| 859 |
optional = false
|
| 860 |
python-versions = ">=3.7"
|
| 861 |
groups = ["main"]
|
| 862 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 863 |
files = [
|
| 864 |
{file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
|
| 865 |
{file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
|
|
@@ -878,7 +980,6 @@ description = "Python implementation of John Gruber's Markdown."
|
|
| 878 |
optional = false
|
| 879 |
python-versions = ">=3.8"
|
| 880 |
groups = ["main"]
|
| 881 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 882 |
files = [
|
| 883 |
{file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"},
|
| 884 |
{file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"},
|
|
@@ -895,7 +996,7 @@ description = "Python port of markdown-it. Markdown parsing, done right!"
|
|
| 895 |
optional = false
|
| 896 |
python-versions = ">=3.8"
|
| 897 |
groups = ["main"]
|
| 898 |
-
markers = "
|
| 899 |
files = [
|
| 900 |
{file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
|
| 901 |
{file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
|
|
@@ -921,7 +1022,6 @@ description = "Safely add untrusted strings to HTML/XML markup."
|
|
| 921 |
optional = false
|
| 922 |
python-versions = ">=3.7"
|
| 923 |
groups = ["main"]
|
| 924 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 925 |
files = [
|
| 926 |
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
|
| 927 |
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
|
|
@@ -985,6 +1085,18 @@ files = [
|
|
| 985 |
{file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
|
| 986 |
]
|
| 987 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 988 |
[[package]]
|
| 989 |
name = "mdurl"
|
| 990 |
version = "0.1.2"
|
|
@@ -992,12 +1104,24 @@ description = "Markdown URL utilities"
|
|
| 992 |
optional = false
|
| 993 |
python-versions = ">=3.7"
|
| 994 |
groups = ["main"]
|
| 995 |
-
markers = "
|
| 996 |
files = [
|
| 997 |
{file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
|
| 998 |
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
|
| 999 |
]
|
| 1000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1001 |
[[package]]
|
| 1002 |
name = "numpy"
|
| 1003 |
version = "2.2.3"
|
|
@@ -1005,7 +1129,6 @@ description = "Fundamental package for array computing in Python"
|
|
| 1005 |
optional = false
|
| 1006 |
python-versions = ">=3.10"
|
| 1007 |
groups = ["main"]
|
| 1008 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1009 |
files = [
|
| 1010 |
{file = "numpy-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cbc6472e01952d3d1b2772b720428f8b90e2deea8344e854df22b0618e9cce71"},
|
| 1011 |
{file = "numpy-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdfe0c22692a30cd830c0755746473ae66c4a8f2e7bd508b35fb3b6a0813d787"},
|
|
@@ -1071,7 +1194,6 @@ description = "Fast, correct Python JSON library supporting dataclasses, datetim
|
|
| 1071 |
optional = false
|
| 1072 |
python-versions = ">=3.8"
|
| 1073 |
groups = ["main"]
|
| 1074 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1075 |
files = [
|
| 1076 |
{file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"},
|
| 1077 |
{file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"},
|
|
@@ -1160,8 +1282,7 @@ version = "24.2"
|
|
| 1160 |
description = "Core utilities for Python packages"
|
| 1161 |
optional = false
|
| 1162 |
python-versions = ">=3.8"
|
| 1163 |
-
groups = ["main"]
|
| 1164 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1165 |
files = [
|
| 1166 |
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
|
| 1167 |
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
|
@@ -1174,7 +1295,6 @@ description = "Powerful data structures for data analysis, time series, and stat
|
|
| 1174 |
optional = false
|
| 1175 |
python-versions = ">=3.9"
|
| 1176 |
groups = ["main"]
|
| 1177 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1178 |
files = [
|
| 1179 |
{file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"},
|
| 1180 |
{file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"},
|
|
@@ -1255,6 +1375,18 @@ sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-d
|
|
| 1255 |
test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"]
|
| 1256 |
xml = ["lxml (>=4.9.2)"]
|
| 1257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1258 |
[[package]]
|
| 1259 |
name = "pillow"
|
| 1260 |
version = "11.1.0"
|
|
@@ -1262,7 +1394,6 @@ description = "Python Imaging Library (Fork)"
|
|
| 1262 |
optional = false
|
| 1263 |
python-versions = ">=3.9"
|
| 1264 |
groups = ["main"]
|
| 1265 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1266 |
files = [
|
| 1267 |
{file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"},
|
| 1268 |
{file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"},
|
|
@@ -1342,9 +1473,26 @@ docs = ["furo", "olefile", "sphinx (>=8.1)", "sphinx-copybutton", "sphinx-inline
|
|
| 1342 |
fpx = ["olefile"]
|
| 1343 |
mic = ["olefile"]
|
| 1344 |
tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"]
|
| 1345 |
-
typing = ["typing-extensions"]
|
| 1346 |
xmp = ["defusedxml"]
|
| 1347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1348 |
[[package]]
|
| 1349 |
name = "proto-plus"
|
| 1350 |
version = "1.26.0"
|
|
@@ -1352,7 +1500,6 @@ description = "Beautiful, Pythonic protocol buffers"
|
|
| 1352 |
optional = false
|
| 1353 |
python-versions = ">=3.7"
|
| 1354 |
groups = ["main"]
|
| 1355 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1356 |
files = [
|
| 1357 |
{file = "proto_plus-1.26.0-py3-none-any.whl", hash = "sha256:bf2dfaa3da281fc3187d12d224c707cb57214fb2c22ba854eb0c105a3fb2d4d7"},
|
| 1358 |
{file = "proto_plus-1.26.0.tar.gz", hash = "sha256:6e93d5f5ca267b54300880fff156b6a3386b3fa3f43b1da62e680fc0c586ef22"},
|
|
@@ -1371,7 +1518,6 @@ description = ""
|
|
| 1371 |
optional = false
|
| 1372 |
python-versions = ">=3.8"
|
| 1373 |
groups = ["main"]
|
| 1374 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1375 |
files = [
|
| 1376 |
{file = "protobuf-5.29.3-cp310-abi3-win32.whl", hash = "sha256:3ea51771449e1035f26069c4c7fd51fba990d07bc55ba80701c78f886bf9c888"},
|
| 1377 |
{file = "protobuf-5.29.3-cp310-abi3-win_amd64.whl", hash = "sha256:a4fa6f80816a9a0678429e84973f2f98cbc218cca434abe8db2ad0bffc98503a"},
|
|
@@ -1393,7 +1539,6 @@ description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs
|
|
| 1393 |
optional = false
|
| 1394 |
python-versions = ">=3.8"
|
| 1395 |
groups = ["main"]
|
| 1396 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1397 |
files = [
|
| 1398 |
{file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"},
|
| 1399 |
{file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"},
|
|
@@ -1406,7 +1551,6 @@ description = "A collection of ASN.1-based protocols modules"
|
|
| 1406 |
optional = false
|
| 1407 |
python-versions = ">=3.8"
|
| 1408 |
groups = ["main"]
|
| 1409 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1410 |
files = [
|
| 1411 |
{file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"},
|
| 1412 |
{file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"},
|
|
@@ -1415,6 +1559,18 @@ files = [
|
|
| 1415 |
[package.dependencies]
|
| 1416 |
pyasn1 = ">=0.4.6,<0.7.0"
|
| 1417 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1418 |
[[package]]
|
| 1419 |
name = "pydantic"
|
| 1420 |
version = "2.10.6"
|
|
@@ -1422,7 +1578,6 @@ description = "Data validation using Python type hints"
|
|
| 1422 |
optional = false
|
| 1423 |
python-versions = ">=3.8"
|
| 1424 |
groups = ["main"]
|
| 1425 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1426 |
files = [
|
| 1427 |
{file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"},
|
| 1428 |
{file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"},
|
|
@@ -1435,7 +1590,7 @@ typing-extensions = ">=4.12.2"
|
|
| 1435 |
|
| 1436 |
[package.extras]
|
| 1437 |
email = ["email-validator (>=2.0.0)"]
|
| 1438 |
-
timezone = ["tzdata"]
|
| 1439 |
|
| 1440 |
[[package]]
|
| 1441 |
name = "pydantic-core"
|
|
@@ -1444,7 +1599,6 @@ description = "Core functionality for Pydantic validation and serialization"
|
|
| 1444 |
optional = false
|
| 1445 |
python-versions = ">=3.8"
|
| 1446 |
groups = ["main"]
|
| 1447 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1448 |
files = [
|
| 1449 |
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
|
| 1450 |
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
|
|
@@ -1558,12 +1712,23 @@ description = "Manipulate audio with an simple and easy high level interface"
|
|
| 1558 |
optional = false
|
| 1559 |
python-versions = "*"
|
| 1560 |
groups = ["main"]
|
| 1561 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1562 |
files = [
|
| 1563 |
{file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"},
|
| 1564 |
{file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"},
|
| 1565 |
]
|
| 1566 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1567 |
[[package]]
|
| 1568 |
name = "pygments"
|
| 1569 |
version = "2.19.1"
|
|
@@ -1571,7 +1736,7 @@ description = "Pygments is a syntax highlighting package written in Python."
|
|
| 1571 |
optional = false
|
| 1572 |
python-versions = ">=3.8"
|
| 1573 |
groups = ["main"]
|
| 1574 |
-
markers = "
|
| 1575 |
files = [
|
| 1576 |
{file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"},
|
| 1577 |
{file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"},
|
|
@@ -1580,6 +1745,86 @@ files = [
|
|
| 1580 |
[package.extras]
|
| 1581 |
windows-terminal = ["colorama (>=0.4.6)"]
|
| 1582 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1583 |
[[package]]
|
| 1584 |
name = "pyparsing"
|
| 1585 |
version = "3.2.1"
|
|
@@ -1587,7 +1832,6 @@ description = "pyparsing module - Classes and methods to define and execute pars
|
|
| 1587 |
optional = false
|
| 1588 |
python-versions = ">=3.9"
|
| 1589 |
groups = ["main"]
|
| 1590 |
-
markers = "python_version <= \"3.11\" or python_version >= \"3.12\""
|
| 1591 |
files = [
|
| 1592 |
{file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"},
|
| 1593 |
{file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"},
|
|
@@ -1603,7 +1847,6 @@ description = "A pure-python PDF library capable of splitting, merging, cropping
|
|
| 1603 |
optional = false
|
| 1604 |
python-versions = ">=3.6"
|
| 1605 |
groups = ["main"]
|
| 1606 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1607 |
files = [
|
| 1608 |
{file = "PyPDF2-3.0.1.tar.gz", hash = "sha256:a74408f69ba6271f71b9352ef4ed03dc53a31aa404d29b5d31f53bfecfee1440"},
|
| 1609 |
{file = "pypdf2-3.0.1-py3-none-any.whl", hash = "sha256:d16e4205cfee272fbdc0568b68d82be796540b1537508cef59388f839c191928"},
|
|
@@ -1623,7 +1866,6 @@ description = "Extensions to the standard Python datetime module"
|
|
| 1623 |
optional = false
|
| 1624 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
| 1625 |
groups = ["main"]
|
| 1626 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1627 |
files = [
|
| 1628 |
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
|
| 1629 |
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
|
|
@@ -1639,7 +1881,6 @@ description = "Read key-value pairs from a .env file and set them as environment
|
|
| 1639 |
optional = false
|
| 1640 |
python-versions = ">=3.8"
|
| 1641 |
groups = ["main"]
|
| 1642 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1643 |
files = [
|
| 1644 |
{file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
|
| 1645 |
{file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
|
|
@@ -1655,7 +1896,6 @@ description = "A streaming multipart parser for Python"
|
|
| 1655 |
optional = false
|
| 1656 |
python-versions = ">=3.8"
|
| 1657 |
groups = ["main"]
|
| 1658 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1659 |
files = [
|
| 1660 |
{file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"},
|
| 1661 |
{file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"},
|
|
@@ -1668,7 +1908,6 @@ description = "World timezone definitions, modern and historical"
|
|
| 1668 |
optional = false
|
| 1669 |
python-versions = "*"
|
| 1670 |
groups = ["main"]
|
| 1671 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1672 |
files = [
|
| 1673 |
{file = "pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57"},
|
| 1674 |
{file = "pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e"},
|
|
@@ -1681,7 +1920,6 @@ description = "YAML parser and emitter for Python"
|
|
| 1681 |
optional = false
|
| 1682 |
python-versions = ">=3.8"
|
| 1683 |
groups = ["main"]
|
| 1684 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1685 |
files = [
|
| 1686 |
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
|
| 1687 |
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
|
|
@@ -1745,7 +1983,6 @@ description = "Python client for Redis database and key-value store"
|
|
| 1745 |
optional = false
|
| 1746 |
python-versions = ">=3.8"
|
| 1747 |
groups = ["main"]
|
| 1748 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1749 |
files = [
|
| 1750 |
{file = "redis-5.2.1-py3-none-any.whl", hash = "sha256:ee7e1056b9aea0f04c6c2ed59452947f34c4940ee025f5dd83e6a6418b6989e4"},
|
| 1751 |
{file = "redis-5.2.1.tar.gz", hash = "sha256:16f2e22dff21d5125e8481515e386711a34cbec50f0e44413dd7d9c060a54e0f"},
|
|
@@ -1765,7 +2002,6 @@ description = "Python HTTP for Humans."
|
|
| 1765 |
optional = false
|
| 1766 |
python-versions = ">=3.8"
|
| 1767 |
groups = ["main"]
|
| 1768 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1769 |
files = [
|
| 1770 |
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
|
| 1771 |
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
|
|
@@ -1788,7 +2024,7 @@ description = "Render rich text, tables, progress bars, syntax highlighting, mar
|
|
| 1788 |
optional = false
|
| 1789 |
python-versions = ">=3.8.0"
|
| 1790 |
groups = ["main"]
|
| 1791 |
-
markers = "
|
| 1792 |
files = [
|
| 1793 |
{file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"},
|
| 1794 |
{file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"},
|
|
@@ -1809,7 +2045,6 @@ description = "Pure-Python RSA implementation"
|
|
| 1809 |
optional = false
|
| 1810 |
python-versions = "*"
|
| 1811 |
groups = ["main"]
|
| 1812 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1813 |
files = [
|
| 1814 |
{file = "rsa-4.2.tar.gz", hash = "sha256:aaefa4b84752e3e99bd8333a2e1e3e7a7da64614042bd66f775573424370108a"},
|
| 1815 |
]
|
|
@@ -1823,8 +2058,7 @@ version = "0.9.6"
|
|
| 1823 |
description = "An extremely fast Python linter and code formatter, written in Rust."
|
| 1824 |
optional = false
|
| 1825 |
python-versions = ">=3.7"
|
| 1826 |
-
groups = ["main"]
|
| 1827 |
-
markers = "(python_version >= \"3.12\" or python_version <= \"3.11\") and sys_platform != \"emscripten\""
|
| 1828 |
files = [
|
| 1829 |
{file = "ruff-0.9.6-py3-none-linux_armv6l.whl", hash = "sha256:2f218f356dd2d995839f1941322ff021c72a492c470f0b26a34f844c29cdf5ba"},
|
| 1830 |
{file = "ruff-0.9.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b908ff4df65dad7b251c9968a2e4560836d8f5487c2f0cc238321ed951ea0504"},
|
|
@@ -1853,7 +2087,6 @@ description = "A small Python library created to help developers protect their a
|
|
| 1853 |
optional = false
|
| 1854 |
python-versions = ">3.9"
|
| 1855 |
groups = ["main"]
|
| 1856 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1857 |
files = [
|
| 1858 |
{file = "safehttpx-0.1.6-py3-none-any.whl", hash = "sha256:407cff0b410b071623087c63dd2080c3b44dc076888d8c5823c00d1e58cb381c"},
|
| 1859 |
{file = "safehttpx-0.1.6.tar.gz", hash = "sha256:b356bfc82cee3a24c395b94a2dbeabbed60aff1aa5fa3b5fe97c4f2456ebce42"},
|
|
@@ -1872,14 +2105,13 @@ description = "A library implementing the 'SemVer' scheme."
|
|
| 1872 |
optional = false
|
| 1873 |
python-versions = ">=2.7"
|
| 1874 |
groups = ["main"]
|
| 1875 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1876 |
files = [
|
| 1877 |
{file = "semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177"},
|
| 1878 |
{file = "semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c"},
|
| 1879 |
]
|
| 1880 |
|
| 1881 |
[package.extras]
|
| 1882 |
-
dev = ["Django (>=1.11)", "check-manifest", "colorama (<=0.4.1)", "coverage", "flake8", "nose2", "readme-renderer (<25.0)", "tox", "wheel", "zest.releaser[recommended]"]
|
| 1883 |
doc = ["Sphinx", "sphinx-rtd-theme"]
|
| 1884 |
|
| 1885 |
[[package]]
|
|
@@ -1889,7 +2121,7 @@ description = "Tool to Detect Surrounding Shell"
|
|
| 1889 |
optional = false
|
| 1890 |
python-versions = ">=3.7"
|
| 1891 |
groups = ["main"]
|
| 1892 |
-
markers = "
|
| 1893 |
files = [
|
| 1894 |
{file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"},
|
| 1895 |
{file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"},
|
|
@@ -1902,7 +2134,6 @@ description = "Python 2 and 3 compatibility utilities"
|
|
| 1902 |
optional = false
|
| 1903 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
| 1904 |
groups = ["main"]
|
| 1905 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1906 |
files = [
|
| 1907 |
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
|
| 1908 |
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
|
|
@@ -1915,7 +2146,6 @@ description = "Sniff out which async library your code is running under"
|
|
| 1915 |
optional = false
|
| 1916 |
python-versions = ">=3.7"
|
| 1917 |
groups = ["main"]
|
| 1918 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1919 |
files = [
|
| 1920 |
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
|
| 1921 |
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
|
|
@@ -1928,7 +2158,6 @@ description = "The little ASGI library that shines."
|
|
| 1928 |
optional = false
|
| 1929 |
python-versions = ">=3.9"
|
| 1930 |
groups = ["main"]
|
| 1931 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1932 |
files = [
|
| 1933 |
{file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"},
|
| 1934 |
{file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"},
|
|
@@ -1940,6 +2169,49 @@ anyio = ">=3.6.2,<5"
|
|
| 1940 |
[package.extras]
|
| 1941 |
full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"]
|
| 1942 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1943 |
[[package]]
|
| 1944 |
name = "tomlkit"
|
| 1945 |
version = "0.13.2"
|
|
@@ -1947,7 +2219,6 @@ description = "Style preserving TOML library"
|
|
| 1947 |
optional = false
|
| 1948 |
python-versions = ">=3.8"
|
| 1949 |
groups = ["main"]
|
| 1950 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1951 |
files = [
|
| 1952 |
{file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"},
|
| 1953 |
{file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"},
|
|
@@ -1960,7 +2231,6 @@ description = "Fast, Extensible Progress Meter"
|
|
| 1960 |
optional = false
|
| 1961 |
python-versions = ">=3.7"
|
| 1962 |
groups = ["main"]
|
| 1963 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 1964 |
files = [
|
| 1965 |
{file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"},
|
| 1966 |
{file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"},
|
|
@@ -1983,7 +2253,7 @@ description = "Typer, build great CLIs. Easy to code. Based on Python type hints
|
|
| 1983 |
optional = false
|
| 1984 |
python-versions = ">=3.7"
|
| 1985 |
groups = ["main"]
|
| 1986 |
-
markers = "
|
| 1987 |
files = [
|
| 1988 |
{file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"},
|
| 1989 |
{file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"},
|
|
@@ -2001,12 +2271,12 @@ version = "4.12.2"
|
|
| 2001 |
description = "Backported and Experimental Type Hints for Python 3.8+"
|
| 2002 |
optional = false
|
| 2003 |
python-versions = ">=3.8"
|
| 2004 |
-
groups = ["main"]
|
| 2005 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 2006 |
files = [
|
| 2007 |
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
|
| 2008 |
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
|
| 2009 |
]
|
|
|
|
| 2010 |
|
| 2011 |
[[package]]
|
| 2012 |
name = "tzdata"
|
|
@@ -2015,7 +2285,6 @@ description = "Provider of IANA time zone data"
|
|
| 2015 |
optional = false
|
| 2016 |
python-versions = ">=2"
|
| 2017 |
groups = ["main"]
|
| 2018 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 2019 |
files = [
|
| 2020 |
{file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"},
|
| 2021 |
{file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"},
|
|
@@ -2028,7 +2297,6 @@ description = "tzinfo object for the local timezone"
|
|
| 2028 |
optional = false
|
| 2029 |
python-versions = ">=3.9"
|
| 2030 |
groups = ["main"]
|
| 2031 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 2032 |
files = [
|
| 2033 |
{file = "tzlocal-5.3-py3-none-any.whl", hash = "sha256:3814135a1bb29763c6e4f08fd6e41dbb435c7a60bfbb03270211bcc537187d8c"},
|
| 2034 |
{file = "tzlocal-5.3.tar.gz", hash = "sha256:2fafbfc07e9d8b49ade18f898d6bcd37ae88ce3ad6486842a2e4f03af68323d2"},
|
|
@@ -2047,7 +2315,6 @@ description = "Implementation of RFC 6570 URI Templates"
|
|
| 2047 |
optional = false
|
| 2048 |
python-versions = ">=3.6"
|
| 2049 |
groups = ["main"]
|
| 2050 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 2051 |
files = [
|
| 2052 |
{file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"},
|
| 2053 |
{file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"},
|
|
@@ -2060,14 +2327,13 @@ description = "HTTP library with thread-safe connection pooling, file post, and
|
|
| 2060 |
optional = false
|
| 2061 |
python-versions = ">=3.9"
|
| 2062 |
groups = ["main"]
|
| 2063 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 2064 |
files = [
|
| 2065 |
{file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
|
| 2066 |
{file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
|
| 2067 |
]
|
| 2068 |
|
| 2069 |
[package.extras]
|
| 2070 |
-
brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
|
| 2071 |
h2 = ["h2 (>=4,<5)"]
|
| 2072 |
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
|
| 2073 |
zstd = ["zstandard (>=0.18.0)"]
|
|
@@ -2079,7 +2345,7 @@ description = "The lightning-fast ASGI server."
|
|
| 2079 |
optional = false
|
| 2080 |
python-versions = ">=3.9"
|
| 2081 |
groups = ["main"]
|
| 2082 |
-
markers = "
|
| 2083 |
files = [
|
| 2084 |
{file = "uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4"},
|
| 2085 |
{file = "uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9"},
|
|
@@ -2091,7 +2357,7 @@ h11 = ">=0.8"
|
|
| 2091 |
typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""}
|
| 2092 |
|
| 2093 |
[package.extras]
|
| 2094 |
-
standard = ["colorama (>=0.4)", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"]
|
| 2095 |
|
| 2096 |
[[package]]
|
| 2097 |
name = "websockets"
|
|
@@ -2100,7 +2366,6 @@ description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
|
|
| 2100 |
optional = false
|
| 2101 |
python-versions = ">=3.9"
|
| 2102 |
groups = ["main"]
|
| 2103 |
-
markers = "python_version >= \"3.12\" or python_version <= \"3.11\""
|
| 2104 |
files = [
|
| 2105 |
{file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"},
|
| 2106 |
{file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"},
|
|
@@ -2173,7 +2438,25 @@ files = [
|
|
| 2173 |
{file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"},
|
| 2174 |
]
|
| 2175 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2176 |
[metadata]
|
| 2177 |
lock-version = "2.1"
|
| 2178 |
python-versions = ">=3.10"
|
| 2179 |
-
content-hash = "
|
|
|
|
| 1 |
+
# This file is automatically @generated by Poetry 2.1.0 and should not be changed by hand.
|
| 2 |
|
| 3 |
[[package]]
|
| 4 |
name = "aiofiles"
|
|
|
|
| 7 |
optional = false
|
| 8 |
python-versions = ">=3.7"
|
| 9 |
groups = ["main"]
|
|
|
|
| 10 |
files = [
|
| 11 |
{file = "aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107"},
|
| 12 |
{file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"},
|
|
|
|
| 19 |
optional = false
|
| 20 |
python-versions = ">=3.8"
|
| 21 |
groups = ["main"]
|
|
|
|
| 22 |
files = [
|
| 23 |
{file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
|
| 24 |
{file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
|
|
|
|
| 31 |
optional = false
|
| 32 |
python-versions = ">=3.9"
|
| 33 |
groups = ["main"]
|
|
|
|
| 34 |
files = [
|
| 35 |
{file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
|
| 36 |
{file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
|
|
|
|
| 44 |
|
| 45 |
[package.extras]
|
| 46 |
doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
|
| 47 |
+
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""]
|
| 48 |
trio = ["trio (>=0.26.1)"]
|
| 49 |
|
| 50 |
[[package]]
|
|
|
|
| 54 |
optional = false
|
| 55 |
python-versions = ">=3.8"
|
| 56 |
groups = ["main"]
|
|
|
|
| 57 |
files = [
|
| 58 |
{file = "APScheduler-3.11.0-py3-none-any.whl", hash = "sha256:fc134ca32e50f5eadcc4938e3a4545ab19131435e851abb40b34d63d5141c6da"},
|
| 59 |
{file = "apscheduler-3.11.0.tar.gz", hash = "sha256:4c622d250b0955a65d5d0eb91c33e6d43fd879834bf541e0a18661ae60460133"},
|
|
|
|
| 70 |
redis = ["redis (>=3.0)"]
|
| 71 |
rethinkdb = ["rethinkdb (>=2.4.0)"]
|
| 72 |
sqlalchemy = ["sqlalchemy (>=1.4)"]
|
| 73 |
+
test = ["APScheduler[etcd,mongodb,redis,rethinkdb,sqlalchemy,tornado,zookeeper]", "PySide6 ; platform_python_implementation == \"CPython\" and python_version < \"3.14\"", "anyio (>=4.5.2)", "gevent ; python_version < \"3.14\"", "pytest", "pytz", "twisted ; python_version < \"3.14\""]
|
| 74 |
tornado = ["tornado (>=4.3)"]
|
| 75 |
twisted = ["twisted"]
|
| 76 |
zookeeper = ["kazoo"]
|
|
|
|
| 132 |
{file = "audioop_lts-0.2.1.tar.gz", hash = "sha256:e81268da0baa880431b68b1308ab7257eb33f356e57a5f9b1f915dfb13dd1387"},
|
| 133 |
]
|
| 134 |
|
| 135 |
+
[[package]]
|
| 136 |
+
name = "black"
|
| 137 |
+
version = "25.1.0"
|
| 138 |
+
description = "The uncompromising code formatter."
|
| 139 |
+
optional = false
|
| 140 |
+
python-versions = ">=3.9"
|
| 141 |
+
groups = ["dev"]
|
| 142 |
+
files = [
|
| 143 |
+
{file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"},
|
| 144 |
+
{file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"},
|
| 145 |
+
{file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"},
|
| 146 |
+
{file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"},
|
| 147 |
+
{file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"},
|
| 148 |
+
{file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"},
|
| 149 |
+
{file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"},
|
| 150 |
+
{file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"},
|
| 151 |
+
{file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"},
|
| 152 |
+
{file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"},
|
| 153 |
+
{file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"},
|
| 154 |
+
{file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"},
|
| 155 |
+
{file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"},
|
| 156 |
+
{file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"},
|
| 157 |
+
{file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"},
|
| 158 |
+
{file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"},
|
| 159 |
+
{file = "black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0"},
|
| 160 |
+
{file = "black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f"},
|
| 161 |
+
{file = "black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e"},
|
| 162 |
+
{file = "black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355"},
|
| 163 |
+
{file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"},
|
| 164 |
+
{file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"},
|
| 165 |
+
]
|
| 166 |
+
|
| 167 |
+
[package.dependencies]
|
| 168 |
+
click = ">=8.0.0"
|
| 169 |
+
mypy-extensions = ">=0.4.3"
|
| 170 |
+
packaging = ">=22.0"
|
| 171 |
+
pathspec = ">=0.9.0"
|
| 172 |
+
platformdirs = ">=2"
|
| 173 |
+
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
|
| 174 |
+
typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""}
|
| 175 |
+
|
| 176 |
+
[package.extras]
|
| 177 |
+
colorama = ["colorama (>=0.4.3)"]
|
| 178 |
+
d = ["aiohttp (>=3.10)"]
|
| 179 |
+
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
|
| 180 |
+
uvloop = ["uvloop (>=0.15.2)"]
|
| 181 |
+
|
| 182 |
+
[[package]]
|
| 183 |
+
name = "blinker"
|
| 184 |
+
version = "1.9.0"
|
| 185 |
+
description = "Fast, simple object-to-object and broadcast signaling"
|
| 186 |
+
optional = false
|
| 187 |
+
python-versions = ">=3.9"
|
| 188 |
+
groups = ["main"]
|
| 189 |
+
files = [
|
| 190 |
+
{file = "blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc"},
|
| 191 |
+
{file = "blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf"},
|
| 192 |
+
]
|
| 193 |
+
|
| 194 |
[[package]]
|
| 195 |
name = "cachetools"
|
| 196 |
version = "5.5.1"
|
|
|
|
| 198 |
optional = false
|
| 199 |
python-versions = ">=3.7"
|
| 200 |
groups = ["main"]
|
|
|
|
| 201 |
files = [
|
| 202 |
{file = "cachetools-5.5.1-py3-none-any.whl", hash = "sha256:b76651fdc3b24ead3c648bbdeeb940c1b04d365b38b4af66788f9ec4a81d42bb"},
|
| 203 |
{file = "cachetools-5.5.1.tar.gz", hash = "sha256:70f238fbba50383ef62e55c6aff6d9673175fe59f7c6782c7a0b9e38f4a9df95"},
|
|
|
|
| 210 |
optional = false
|
| 211 |
python-versions = ">=3.6"
|
| 212 |
groups = ["main"]
|
|
|
|
| 213 |
files = [
|
| 214 |
{file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"},
|
| 215 |
{file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"},
|
|
|
|
| 222 |
optional = false
|
| 223 |
python-versions = ">=3.7"
|
| 224 |
groups = ["main"]
|
|
|
|
| 225 |
files = [
|
| 226 |
{file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
|
| 227 |
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
|
|
|
|
| 323 |
description = "Composable command line interface toolkit"
|
| 324 |
optional = false
|
| 325 |
python-versions = ">=3.7"
|
| 326 |
+
groups = ["main", "dev"]
|
|
|
|
| 327 |
files = [
|
| 328 |
{file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
|
| 329 |
{file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
|
|
|
|
| 338 |
description = "Cross-platform colored terminal text."
|
| 339 |
optional = false
|
| 340 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
| 341 |
+
groups = ["main", "dev"]
|
| 342 |
+
markers = "platform_system == \"Windows\""
|
| 343 |
files = [
|
| 344 |
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
| 345 |
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
| 346 |
]
|
| 347 |
|
| 348 |
+
[[package]]
|
| 349 |
+
name = "dnspython"
|
| 350 |
+
version = "2.7.0"
|
| 351 |
+
description = "DNS toolkit"
|
| 352 |
+
optional = false
|
| 353 |
+
python-versions = ">=3.9"
|
| 354 |
+
groups = ["main"]
|
| 355 |
+
files = [
|
| 356 |
+
{file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"},
|
| 357 |
+
{file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"},
|
| 358 |
+
]
|
| 359 |
+
|
| 360 |
+
[package.extras]
|
| 361 |
+
dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "hypercorn (>=0.16.0)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "quart-trio (>=0.11.0)", "sphinx (>=7.2.0)", "sphinx-rtd-theme (>=2.0.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"]
|
| 362 |
+
dnssec = ["cryptography (>=43)"]
|
| 363 |
+
doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"]
|
| 364 |
+
doq = ["aioquic (>=1.0.0)"]
|
| 365 |
+
idna = ["idna (>=3.7)"]
|
| 366 |
+
trio = ["trio (>=0.23)"]
|
| 367 |
+
wmi = ["wmi (>=1.5.1)"]
|
| 368 |
+
|
| 369 |
[[package]]
|
| 370 |
name = "exceptiongroup"
|
| 371 |
version = "1.2.2"
|
|
|
|
| 389 |
optional = false
|
| 390 |
python-versions = ">=3.8"
|
| 391 |
groups = ["main"]
|
|
|
|
| 392 |
files = [
|
| 393 |
{file = "fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf"},
|
| 394 |
{file = "fastapi-0.115.8.tar.gz", hash = "sha256:0ce9111231720190473e222cdf0f07f7206ad7e53ea02beb1d2dc36e2f0741e9"},
|
|
|
|
| 410 |
optional = false
|
| 411 |
python-versions = "*"
|
| 412 |
groups = ["main"]
|
|
|
|
| 413 |
files = [
|
| 414 |
{file = "ffmpy-0.3.2.tar.gz", hash = "sha256:475ebfff1044661b8d969349dbcd2db9bf56d3ee78c0627e324769b49a27a78f"},
|
| 415 |
]
|
|
|
|
| 421 |
optional = false
|
| 422 |
python-versions = ">=3.9"
|
| 423 |
groups = ["main"]
|
|
|
|
| 424 |
files = [
|
| 425 |
{file = "filelock-3.17.0-py3-none-any.whl", hash = "sha256:533dc2f7ba78dc2f0f531fc6c4940addf7b70a481e269a5a3b93be94ffbe8338"},
|
| 426 |
{file = "filelock-3.17.0.tar.gz", hash = "sha256:ee4e77401ef576ebb38cd7f13b9b28893194acc20a8e68e18730ba9c0e54660e"},
|
|
|
|
| 429 |
[package.extras]
|
| 430 |
docs = ["furo (>=2024.8.6)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"]
|
| 431 |
testing = ["covdefaults (>=2.3)", "coverage (>=7.6.10)", "diff-cover (>=9.2.1)", "pytest (>=8.3.4)", "pytest-asyncio (>=0.25.2)", "pytest-cov (>=6)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.28.1)"]
|
| 432 |
+
typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""]
|
| 433 |
+
|
| 434 |
+
[[package]]
|
| 435 |
+
name = "flake8"
|
| 436 |
+
version = "7.1.1"
|
| 437 |
+
description = "the modular source code checker: pep8 pyflakes and co"
|
| 438 |
+
optional = false
|
| 439 |
+
python-versions = ">=3.8.1"
|
| 440 |
+
groups = ["dev"]
|
| 441 |
+
files = [
|
| 442 |
+
{file = "flake8-7.1.1-py2.py3-none-any.whl", hash = "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"},
|
| 443 |
+
{file = "flake8-7.1.1.tar.gz", hash = "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38"},
|
| 444 |
+
]
|
| 445 |
+
|
| 446 |
+
[package.dependencies]
|
| 447 |
+
mccabe = ">=0.7.0,<0.8.0"
|
| 448 |
+
pycodestyle = ">=2.12.0,<2.13.0"
|
| 449 |
+
pyflakes = ">=3.2.0,<3.3.0"
|
| 450 |
+
|
| 451 |
+
[[package]]
|
| 452 |
+
name = "flask"
|
| 453 |
+
version = "3.1.0"
|
| 454 |
+
description = "A simple framework for building complex web applications."
|
| 455 |
+
optional = false
|
| 456 |
+
python-versions = ">=3.9"
|
| 457 |
+
groups = ["main"]
|
| 458 |
+
files = [
|
| 459 |
+
{file = "flask-3.1.0-py3-none-any.whl", hash = "sha256:d667207822eb83f1c4b50949b1623c8fc8d51f2341d65f72e1a1815397551136"},
|
| 460 |
+
{file = "flask-3.1.0.tar.gz", hash = "sha256:5f873c5184c897c8d9d1b05df1e3d01b14910ce69607a117bd3277098a5836ac"},
|
| 461 |
+
]
|
| 462 |
+
|
| 463 |
+
[package.dependencies]
|
| 464 |
+
blinker = ">=1.9"
|
| 465 |
+
click = ">=8.1.3"
|
| 466 |
+
itsdangerous = ">=2.2"
|
| 467 |
+
Jinja2 = ">=3.1.2"
|
| 468 |
+
Werkzeug = ">=3.1"
|
| 469 |
+
|
| 470 |
+
[package.extras]
|
| 471 |
+
async = ["asgiref (>=3.2)"]
|
| 472 |
+
dotenv = ["python-dotenv"]
|
| 473 |
|
| 474 |
[[package]]
|
| 475 |
name = "fsspec"
|
|
|
|
| 478 |
optional = false
|
| 479 |
python-versions = ">=3.8"
|
| 480 |
groups = ["main"]
|
|
|
|
| 481 |
files = [
|
| 482 |
{file = "fsspec-2025.2.0-py3-none-any.whl", hash = "sha256:9de2ad9ce1f85e1931858535bc882543171d197001a0a5eb2ddc04f1781ab95b"},
|
| 483 |
{file = "fsspec-2025.2.0.tar.gz", hash = "sha256:1c24b16eaa0a1798afa0337aa0db9b256718ab2a89c425371f5628d22c3b6afd"},
|
|
|
|
| 518 |
optional = false
|
| 519 |
python-versions = ">=3.7"
|
| 520 |
groups = ["main"]
|
|
|
|
| 521 |
files = [
|
| 522 |
{file = "google_ai_generativelanguage-0.6.15-py3-none-any.whl", hash = "sha256:5a03ef86377aa184ffef3662ca28f19eeee158733e45d7947982eb953c6ebb6c"},
|
| 523 |
{file = "google_ai_generativelanguage-0.6.15.tar.gz", hash = "sha256:8f6d9dc4c12b065fe2d0289026171acea5183ebf2d0b11cefe12f3821e159ec3"},
|
|
|
|
| 528 |
google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0dev"
|
| 529 |
proto-plus = [
|
| 530 |
{version = ">=1.25.0,<2.0.0dev", markers = "python_version >= \"3.13\""},
|
| 531 |
+
{version = ">=1.22.3,<2.0.0dev"},
|
| 532 |
]
|
| 533 |
protobuf = ">=3.20.2,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0dev"
|
| 534 |
|
|
|
|
| 539 |
optional = false
|
| 540 |
python-versions = ">=3.7"
|
| 541 |
groups = ["main"]
|
|
|
|
| 542 |
files = [
|
| 543 |
{file = "google_api_core-2.24.1-py3-none-any.whl", hash = "sha256:bc78d608f5a5bf853b80bd70a795f703294de656c096c0968320830a4bc280f1"},
|
| 544 |
{file = "google_api_core-2.24.1.tar.gz", hash = "sha256:f8b36f5456ab0dd99a1b693a40a31d1e7757beea380ad1b38faaf8941eae9d8a"},
|
|
|
|
| 549 |
googleapis-common-protos = ">=1.56.2,<2.0.dev0"
|
| 550 |
grpcio = [
|
| 551 |
{version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""},
|
| 552 |
+
{version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""},
|
| 553 |
]
|
| 554 |
grpcio-status = [
|
| 555 |
{version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""},
|
| 556 |
+
{version = ">=1.33.2,<2.0.dev0", optional = true, markers = "extra == \"grpc\""},
|
| 557 |
]
|
| 558 |
proto-plus = [
|
| 559 |
{version = ">=1.25.0,<2.0.0dev", markers = "python_version >= \"3.13\""},
|
|
|
|
| 564 |
|
| 565 |
[package.extras]
|
| 566 |
async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.dev0)"]
|
| 567 |
+
grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio (>=1.49.1,<2.0dev) ; python_version >= \"3.11\"", "grpcio-status (>=1.33.2,<2.0.dev0)", "grpcio-status (>=1.49.1,<2.0.dev0) ; python_version >= \"3.11\""]
|
| 568 |
grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"]
|
| 569 |
grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.dev0)"]
|
| 570 |
|
|
|
|
| 575 |
optional = false
|
| 576 |
python-versions = ">=3.7"
|
| 577 |
groups = ["main"]
|
|
|
|
| 578 |
files = [
|
| 579 |
{file = "google_api_python_client-2.161.0-py2.py3-none-any.whl", hash = "sha256:9476a5a4f200bae368140453df40f9cda36be53fa7d0e9a9aac4cdb859a26448"},
|
| 580 |
{file = "google_api_python_client-2.161.0.tar.gz", hash = "sha256:324c0cce73e9ea0a0d2afd5937e01b7c2d6a4d7e2579cdb6c384f9699d6c9f37"},
|
|
|
|
| 594 |
optional = false
|
| 595 |
python-versions = ">=3.7"
|
| 596 |
groups = ["main"]
|
|
|
|
| 597 |
files = [
|
| 598 |
{file = "google_auth-2.38.0-py2.py3-none-any.whl", hash = "sha256:e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a"},
|
| 599 |
{file = "google_auth-2.38.0.tar.gz", hash = "sha256:8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4"},
|
|
|
|
| 619 |
optional = false
|
| 620 |
python-versions = "*"
|
| 621 |
groups = ["main"]
|
|
|
|
| 622 |
files = [
|
| 623 |
{file = "google-auth-httplib2-0.2.0.tar.gz", hash = "sha256:38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05"},
|
| 624 |
{file = "google_auth_httplib2-0.2.0-py2.py3-none-any.whl", hash = "sha256:b65a0a2123300dd71281a7bf6e64d65a0759287df52729bdd1ae2e47dc311a3d"},
|
|
|
|
| 635 |
optional = false
|
| 636 |
python-versions = ">=3.9"
|
| 637 |
groups = ["main"]
|
|
|
|
| 638 |
files = [
|
| 639 |
{file = "google_generativeai-0.8.4-py3-none-any.whl", hash = "sha256:e987b33ea6decde1e69191ddcaec6ef974458864d243de7191db50c21a7c5b82"},
|
| 640 |
]
|
|
|
|
| 659 |
optional = false
|
| 660 |
python-versions = ">=3.7"
|
| 661 |
groups = ["main"]
|
|
|
|
| 662 |
files = [
|
| 663 |
{file = "googleapis_common_protos-1.67.0-py2.py3-none-any.whl", hash = "sha256:579de760800d13616f51cf8be00c876f00a9f146d3e6510e19d1f4111758b741"},
|
| 664 |
{file = "googleapis_common_protos-1.67.0.tar.gz", hash = "sha256:21398025365f138be356d5923e9168737d94d46a72aefee4a6110a1f23463c86"},
|
|
|
|
| 677 |
optional = false
|
| 678 |
python-versions = ">=3.10"
|
| 679 |
groups = ["main"]
|
|
|
|
| 680 |
files = [
|
| 681 |
{file = "gradio-5.16.0-py3-none-any.whl", hash = "sha256:0cae0fb5a261981d6ba2d1b24732d86bb0daa9596f9aa9a98123aaf45f98dfa6"},
|
| 682 |
]
|
|
|
|
| 721 |
optional = false
|
| 722 |
python-versions = ">=3.10"
|
| 723 |
groups = ["main"]
|
|
|
|
| 724 |
files = [
|
| 725 |
{file = "gradio_client-1.7.0-py3-none-any.whl", hash = "sha256:b403570c67f121ebbbc19ac1f0afa2ab1bab085ce60d96eb190832fe871aa946"},
|
| 726 |
{file = "gradio_client-1.7.0.tar.gz", hash = "sha256:87f6ade197951f38bac0431b2a436a8ebb2f33b2ceba2ef8e1e5bef8d8b238e4"},
|
|
|
|
| 741 |
optional = false
|
| 742 |
python-versions = ">=3.8"
|
| 743 |
groups = ["main"]
|
|
|
|
| 744 |
files = [
|
| 745 |
{file = "grpcio-1.70.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:95469d1977429f45fe7df441f586521361e235982a0b39e33841549143ae2851"},
|
| 746 |
{file = "grpcio-1.70.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:ed9718f17fbdb472e33b869c77a16d0b55e166b100ec57b016dc7de9c8d236bf"},
|
|
|
|
| 809 |
optional = false
|
| 810 |
python-versions = ">=3.8"
|
| 811 |
groups = ["main"]
|
|
|
|
| 812 |
files = [
|
| 813 |
{file = "grpcio_status-1.70.0-py3-none-any.whl", hash = "sha256:fc5a2ae2b9b1c1969cc49f3262676e6854aa2398ec69cb5bd6c47cd501904a85"},
|
| 814 |
{file = "grpcio_status-1.70.0.tar.gz", hash = "sha256:0e7b42816512433b18b9d764285ff029bde059e9d41f8fe10a60631bd8348101"},
|
|
|
|
| 826 |
optional = false
|
| 827 |
python-versions = ">=3.7"
|
| 828 |
groups = ["main"]
|
|
|
|
| 829 |
files = [
|
| 830 |
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
|
| 831 |
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
|
|
|
|
| 838 |
optional = false
|
| 839 |
python-versions = ">=3.8"
|
| 840 |
groups = ["main"]
|
|
|
|
| 841 |
files = [
|
| 842 |
{file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
|
| 843 |
{file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
|
|
|
|
| 860 |
optional = false
|
| 861 |
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
| 862 |
groups = ["main"]
|
|
|
|
| 863 |
files = [
|
| 864 |
{file = "httplib2-0.22.0-py3-none-any.whl", hash = "sha256:14ae0a53c1ba8f3d37e9e27cf37eabb0fb9980f435ba405d546948b009dd64dc"},
|
| 865 |
{file = "httplib2-0.22.0.tar.gz", hash = "sha256:d7a10bc5ef5ab08322488bde8c726eeee5c8618723fdb399597ec58f3d82df81"},
|
|
|
|
| 875 |
optional = false
|
| 876 |
python-versions = ">=3.8"
|
| 877 |
groups = ["main"]
|
|
|
|
| 878 |
files = [
|
| 879 |
{file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
|
| 880 |
{file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
|
|
|
|
| 887 |
idna = "*"
|
| 888 |
|
| 889 |
[package.extras]
|
| 890 |
+
brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
|
| 891 |
cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
|
| 892 |
http2 = ["h2 (>=3,<5)"]
|
| 893 |
socks = ["socksio (==1.*)"]
|
|
|
|
| 900 |
optional = false
|
| 901 |
python-versions = ">=3.8.0"
|
| 902 |
groups = ["main"]
|
|
|
|
| 903 |
files = [
|
| 904 |
{file = "huggingface_hub-0.28.1-py3-none-any.whl", hash = "sha256:aa6b9a3ffdae939b72c464dbb0d7f99f56e649b55c3d52406f49e0a5a620c0a7"},
|
| 905 |
{file = "huggingface_hub-0.28.1.tar.gz", hash = "sha256:893471090c98e3b6efbdfdacafe4052b20b84d59866fb6f54c33d9af18c303ae"},
|
|
|
|
| 935 |
optional = false
|
| 936 |
python-versions = ">=3.6"
|
| 937 |
groups = ["main"]
|
|
|
|
| 938 |
files = [
|
| 939 |
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
|
| 940 |
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
|
|
|
|
| 943 |
[package.extras]
|
| 944 |
all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
|
| 945 |
|
| 946 |
+
[[package]]
|
| 947 |
+
name = "itsdangerous"
|
| 948 |
+
version = "2.2.0"
|
| 949 |
+
description = "Safely pass data to untrusted environments and back."
|
| 950 |
+
optional = false
|
| 951 |
+
python-versions = ">=3.8"
|
| 952 |
+
groups = ["main"]
|
| 953 |
+
files = [
|
| 954 |
+
{file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"},
|
| 955 |
+
{file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"},
|
| 956 |
+
]
|
| 957 |
+
|
| 958 |
[[package]]
|
| 959 |
name = "jinja2"
|
| 960 |
version = "3.1.5"
|
|
|
|
| 962 |
optional = false
|
| 963 |
python-versions = ">=3.7"
|
| 964 |
groups = ["main"]
|
|
|
|
| 965 |
files = [
|
| 966 |
{file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
|
| 967 |
{file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
|
|
|
|
| 980 |
optional = false
|
| 981 |
python-versions = ">=3.8"
|
| 982 |
groups = ["main"]
|
|
|
|
| 983 |
files = [
|
| 984 |
{file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"},
|
| 985 |
{file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"},
|
|
|
|
| 996 |
optional = false
|
| 997 |
python-versions = ">=3.8"
|
| 998 |
groups = ["main"]
|
| 999 |
+
markers = "sys_platform != \"emscripten\""
|
| 1000 |
files = [
|
| 1001 |
{file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
|
| 1002 |
{file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
|
|
|
|
| 1022 |
optional = false
|
| 1023 |
python-versions = ">=3.7"
|
| 1024 |
groups = ["main"]
|
|
|
|
| 1025 |
files = [
|
| 1026 |
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
|
| 1027 |
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
|
|
|
|
| 1085 |
{file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
|
| 1086 |
]
|
| 1087 |
|
| 1088 |
+
[[package]]
|
| 1089 |
+
name = "mccabe"
|
| 1090 |
+
version = "0.7.0"
|
| 1091 |
+
description = "McCabe checker, plugin for flake8"
|
| 1092 |
+
optional = false
|
| 1093 |
+
python-versions = ">=3.6"
|
| 1094 |
+
groups = ["dev"]
|
| 1095 |
+
files = [
|
| 1096 |
+
{file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
|
| 1097 |
+
{file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
|
| 1098 |
+
]
|
| 1099 |
+
|
| 1100 |
[[package]]
|
| 1101 |
name = "mdurl"
|
| 1102 |
version = "0.1.2"
|
|
|
|
| 1104 |
optional = false
|
| 1105 |
python-versions = ">=3.7"
|
| 1106 |
groups = ["main"]
|
| 1107 |
+
markers = "sys_platform != \"emscripten\""
|
| 1108 |
files = [
|
| 1109 |
{file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
|
| 1110 |
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
|
| 1111 |
]
|
| 1112 |
|
| 1113 |
+
[[package]]
|
| 1114 |
+
name = "mypy-extensions"
|
| 1115 |
+
version = "1.0.0"
|
| 1116 |
+
description = "Type system extensions for programs checked with the mypy type checker."
|
| 1117 |
+
optional = false
|
| 1118 |
+
python-versions = ">=3.5"
|
| 1119 |
+
groups = ["dev"]
|
| 1120 |
+
files = [
|
| 1121 |
+
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
|
| 1122 |
+
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
|
| 1123 |
+
]
|
| 1124 |
+
|
| 1125 |
[[package]]
|
| 1126 |
name = "numpy"
|
| 1127 |
version = "2.2.3"
|
|
|
|
| 1129 |
optional = false
|
| 1130 |
python-versions = ">=3.10"
|
| 1131 |
groups = ["main"]
|
|
|
|
| 1132 |
files = [
|
| 1133 |
{file = "numpy-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cbc6472e01952d3d1b2772b720428f8b90e2deea8344e854df22b0618e9cce71"},
|
| 1134 |
{file = "numpy-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdfe0c22692a30cd830c0755746473ae66c4a8f2e7bd508b35fb3b6a0813d787"},
|
|
|
|
| 1194 |
optional = false
|
| 1195 |
python-versions = ">=3.8"
|
| 1196 |
groups = ["main"]
|
|
|
|
| 1197 |
files = [
|
| 1198 |
{file = "orjson-3.10.15-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:552c883d03ad185f720d0c09583ebde257e41b9521b74ff40e08b7dec4559c04"},
|
| 1199 |
{file = "orjson-3.10.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:616e3e8d438d02e4854f70bfdc03a6bcdb697358dbaa6bcd19cbe24d24ece1f8"},
|
|
|
|
| 1282 |
description = "Core utilities for Python packages"
|
| 1283 |
optional = false
|
| 1284 |
python-versions = ">=3.8"
|
| 1285 |
+
groups = ["main", "dev"]
|
|
|
|
| 1286 |
files = [
|
| 1287 |
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
|
| 1288 |
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
|
|
|
| 1295 |
optional = false
|
| 1296 |
python-versions = ">=3.9"
|
| 1297 |
groups = ["main"]
|
|
|
|
| 1298 |
files = [
|
| 1299 |
{file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"},
|
| 1300 |
{file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"},
|
|
|
|
| 1375 |
test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"]
|
| 1376 |
xml = ["lxml (>=4.9.2)"]
|
| 1377 |
|
| 1378 |
+
[[package]]
|
| 1379 |
+
name = "pathspec"
|
| 1380 |
+
version = "0.12.1"
|
| 1381 |
+
description = "Utility library for gitignore style pattern matching of file paths."
|
| 1382 |
+
optional = false
|
| 1383 |
+
python-versions = ">=3.8"
|
| 1384 |
+
groups = ["dev"]
|
| 1385 |
+
files = [
|
| 1386 |
+
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
|
| 1387 |
+
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
|
| 1388 |
+
]
|
| 1389 |
+
|
| 1390 |
[[package]]
|
| 1391 |
name = "pillow"
|
| 1392 |
version = "11.1.0"
|
|
|
|
| 1394 |
optional = false
|
| 1395 |
python-versions = ">=3.9"
|
| 1396 |
groups = ["main"]
|
|
|
|
| 1397 |
files = [
|
| 1398 |
{file = "pillow-11.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:e1abe69aca89514737465752b4bcaf8016de61b3be1397a8fc260ba33321b3a8"},
|
| 1399 |
{file = "pillow-11.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c640e5a06869c75994624551f45e5506e4256562ead981cce820d5ab39ae2192"},
|
|
|
|
| 1473 |
fpx = ["olefile"]
|
| 1474 |
mic = ["olefile"]
|
| 1475 |
tests = ["check-manifest", "coverage (>=7.4.2)", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout", "trove-classifiers (>=2024.10.12)"]
|
| 1476 |
+
typing = ["typing-extensions ; python_version < \"3.10\""]
|
| 1477 |
xmp = ["defusedxml"]
|
| 1478 |
|
| 1479 |
+
[[package]]
|
| 1480 |
+
name = "platformdirs"
|
| 1481 |
+
version = "4.3.6"
|
| 1482 |
+
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
|
| 1483 |
+
optional = false
|
| 1484 |
+
python-versions = ">=3.8"
|
| 1485 |
+
groups = ["dev"]
|
| 1486 |
+
files = [
|
| 1487 |
+
{file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
|
| 1488 |
+
{file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
|
| 1489 |
+
]
|
| 1490 |
+
|
| 1491 |
+
[package.extras]
|
| 1492 |
+
docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"]
|
| 1493 |
+
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"]
|
| 1494 |
+
type = ["mypy (>=1.11.2)"]
|
| 1495 |
+
|
| 1496 |
[[package]]
|
| 1497 |
name = "proto-plus"
|
| 1498 |
version = "1.26.0"
|
|
|
|
| 1500 |
optional = false
|
| 1501 |
python-versions = ">=3.7"
|
| 1502 |
groups = ["main"]
|
|
|
|
| 1503 |
files = [
|
| 1504 |
{file = "proto_plus-1.26.0-py3-none-any.whl", hash = "sha256:bf2dfaa3da281fc3187d12d224c707cb57214fb2c22ba854eb0c105a3fb2d4d7"},
|
| 1505 |
{file = "proto_plus-1.26.0.tar.gz", hash = "sha256:6e93d5f5ca267b54300880fff156b6a3386b3fa3f43b1da62e680fc0c586ef22"},
|
|
|
|
| 1518 |
optional = false
|
| 1519 |
python-versions = ">=3.8"
|
| 1520 |
groups = ["main"]
|
|
|
|
| 1521 |
files = [
|
| 1522 |
{file = "protobuf-5.29.3-cp310-abi3-win32.whl", hash = "sha256:3ea51771449e1035f26069c4c7fd51fba990d07bc55ba80701c78f886bf9c888"},
|
| 1523 |
{file = "protobuf-5.29.3-cp310-abi3-win_amd64.whl", hash = "sha256:a4fa6f80816a9a0678429e84973f2f98cbc218cca434abe8db2ad0bffc98503a"},
|
|
|
|
| 1539 |
optional = false
|
| 1540 |
python-versions = ">=3.8"
|
| 1541 |
groups = ["main"]
|
|
|
|
| 1542 |
files = [
|
| 1543 |
{file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"},
|
| 1544 |
{file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"},
|
|
|
|
| 1551 |
optional = false
|
| 1552 |
python-versions = ">=3.8"
|
| 1553 |
groups = ["main"]
|
|
|
|
| 1554 |
files = [
|
| 1555 |
{file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"},
|
| 1556 |
{file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"},
|
|
|
|
| 1559 |
[package.dependencies]
|
| 1560 |
pyasn1 = ">=0.4.6,<0.7.0"
|
| 1561 |
|
| 1562 |
+
[[package]]
|
| 1563 |
+
name = "pycodestyle"
|
| 1564 |
+
version = "2.12.1"
|
| 1565 |
+
description = "Python style guide checker"
|
| 1566 |
+
optional = false
|
| 1567 |
+
python-versions = ">=3.8"
|
| 1568 |
+
groups = ["dev"]
|
| 1569 |
+
files = [
|
| 1570 |
+
{file = "pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3"},
|
| 1571 |
+
{file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"},
|
| 1572 |
+
]
|
| 1573 |
+
|
| 1574 |
[[package]]
|
| 1575 |
name = "pydantic"
|
| 1576 |
version = "2.10.6"
|
|
|
|
| 1578 |
optional = false
|
| 1579 |
python-versions = ">=3.8"
|
| 1580 |
groups = ["main"]
|
|
|
|
| 1581 |
files = [
|
| 1582 |
{file = "pydantic-2.10.6-py3-none-any.whl", hash = "sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584"},
|
| 1583 |
{file = "pydantic-2.10.6.tar.gz", hash = "sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236"},
|
|
|
|
| 1590 |
|
| 1591 |
[package.extras]
|
| 1592 |
email = ["email-validator (>=2.0.0)"]
|
| 1593 |
+
timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""]
|
| 1594 |
|
| 1595 |
[[package]]
|
| 1596 |
name = "pydantic-core"
|
|
|
|
| 1599 |
optional = false
|
| 1600 |
python-versions = ">=3.8"
|
| 1601 |
groups = ["main"]
|
|
|
|
| 1602 |
files = [
|
| 1603 |
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
|
| 1604 |
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
|
|
|
|
| 1712 |
optional = false
|
| 1713 |
python-versions = "*"
|
| 1714 |
groups = ["main"]
|
|
|
|
| 1715 |
files = [
|
| 1716 |
{file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"},
|
| 1717 |
{file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"},
|
| 1718 |
]
|
| 1719 |
|
| 1720 |
+
[[package]]
|
| 1721 |
+
name = "pyflakes"
|
| 1722 |
+
version = "3.2.0"
|
| 1723 |
+
description = "passive checker of Python programs"
|
| 1724 |
+
optional = false
|
| 1725 |
+
python-versions = ">=3.8"
|
| 1726 |
+
groups = ["dev"]
|
| 1727 |
+
files = [
|
| 1728 |
+
{file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"},
|
| 1729 |
+
{file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"},
|
| 1730 |
+
]
|
| 1731 |
+
|
| 1732 |
[[package]]
|
| 1733 |
name = "pygments"
|
| 1734 |
version = "2.19.1"
|
|
|
|
| 1736 |
optional = false
|
| 1737 |
python-versions = ">=3.8"
|
| 1738 |
groups = ["main"]
|
| 1739 |
+
markers = "sys_platform != \"emscripten\""
|
| 1740 |
files = [
|
| 1741 |
{file = "pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"},
|
| 1742 |
{file = "pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f"},
|
|
|
|
| 1745 |
[package.extras]
|
| 1746 |
windows-terminal = ["colorama (>=0.4.6)"]
|
| 1747 |
|
| 1748 |
+
[[package]]
|
| 1749 |
+
name = "pymongo"
|
| 1750 |
+
version = "4.11.1"
|
| 1751 |
+
description = "Python driver for MongoDB <http://www.mongodb.org>"
|
| 1752 |
+
optional = false
|
| 1753 |
+
python-versions = ">=3.9"
|
| 1754 |
+
groups = ["main"]
|
| 1755 |
+
files = [
|
| 1756 |
+
{file = "pymongo-4.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e596caec72db62a3f438559dfa46d22faefea1967279f553f936ddcb873903df"},
|
| 1757 |
+
{file = "pymongo-4.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15a88b25efcd61c5e539e9204932849b20f393efa330771676e860c4466fe8ad"},
|
| 1758 |
+
{file = "pymongo-4.11.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7073a740aad257f9d2c12cb95a08f17db1f273d422e7ddfed9895738571cac7"},
|
| 1759 |
+
{file = "pymongo-4.11.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25b7cadae1d5287b2eed3d901a347f3fa9bc3f898532e1cb7f28a1c9237d824d"},
|
| 1760 |
+
{file = "pymongo-4.11.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3fe9589d9a83f6e2abe88f32daa410276eddd038eb8f8f75975cf8ce834cea1f"},
|
| 1761 |
+
{file = "pymongo-4.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cc6d48b74e9abe544dd71b000453ad06e65cbfcfd57c7342a9f012f65532eb2"},
|
| 1762 |
+
{file = "pymongo-4.11.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1518931a4a26d3cb31a97b9187087c6378cd0b0401d7a7cc160e92223a2a3059"},
|
| 1763 |
+
{file = "pymongo-4.11.1-cp310-cp310-win32.whl", hash = "sha256:163c887384cb9fd16e0463128600867138a5a9a5344fc0903db08494b39a2d6e"},
|
| 1764 |
+
{file = "pymongo-4.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:e147e08df329a7d23cbcb6213bc2fd360e51551626be828092fe2027f3473abc"},
|
| 1765 |
+
{file = "pymongo-4.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ac125f2782d8fe3f3ff93a396af5482d694093b3be3e06052197096c83acadc"},
|
| 1766 |
+
{file = "pymongo-4.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:681806d3ecaf29b11e16a45c1f4c28f99d9d8283238f7b6ea9eee93b5d7bc6d2"},
|
| 1767 |
+
{file = "pymongo-4.11.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50210249a9bf67937e97205a312b96a4b1250b111cbaaff532d7a61bc2b1562d"},
|
| 1768 |
+
{file = "pymongo-4.11.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdd0e404d5c3b1203ee61fcfee40a1f062f3780ce272febdc2378797b00401d1"},
|
| 1769 |
+
{file = "pymongo-4.11.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6e46bcd3c2f86f442b721551ed5e5812294e4a93fce42517e173bd41d4cd2d8"},
|
| 1770 |
+
{file = "pymongo-4.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f28d179e7d434869e23f4582c941cb400f75e996cfea472693ec756ee213c685"},
|
| 1771 |
+
{file = "pymongo-4.11.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b56dbb6883ce7adad8588464948e0723a3d881e5549f48c4767f1654e8e4cb7d"},
|
| 1772 |
+
{file = "pymongo-4.11.1-cp311-cp311-win32.whl", hash = "sha256:27bc58e0b1bebb17d2426d0cc191c579f2eeaf9692be880f93fe4180cf850ca7"},
|
| 1773 |
+
{file = "pymongo-4.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:7751e6e99c79057b09441c6ab2a93fae10b4028478aac5b455db8b12f884a3c0"},
|
| 1774 |
+
{file = "pymongo-4.11.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f96683f1dec7d28f12fe43a4d5c0df35d6b80348a9fbf5aac47fa284332a1f92"},
|
| 1775 |
+
{file = "pymongo-4.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:157e6a722d051c4bab3e6bc34a1f80fc98101cf2d12139a94e51638d023198c5"},
|
| 1776 |
+
{file = "pymongo-4.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74503e853758e1eaa1cad2df9c08c8c35a3d26222cf6426d2cde4b2e8593b9b3"},
|
| 1777 |
+
{file = "pymongo-4.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b630596089106c968ddd252bde3fe692c420e24f214dd39ca517d26343d81012"},
|
| 1778 |
+
{file = "pymongo-4.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7007669eef871079d39a9bbcda0fbcd4252f9b575592804343d0b5c05849d65b"},
|
| 1779 |
+
{file = "pymongo-4.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d1da6201e1350cfcd4deab599b32237ac2ac591180d44553a2c8e614f2c0e"},
|
| 1780 |
+
{file = "pymongo-4.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:908e65ab42cd4bf1ffeaafe8f11bb86b3f804d54227058794e33fff2963ccc86"},
|
| 1781 |
+
{file = "pymongo-4.11.1-cp312-cp312-win32.whl", hash = "sha256:2d1d956c15dd05f1e41c61f0dbcaec59f274db4814cff2c3d9c2508f58004c39"},
|
| 1782 |
+
{file = "pymongo-4.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:c71655f4188c70032ba56ac7ead688449e4f86a4ccd8e57201ee283f2f591e1d"},
|
| 1783 |
+
{file = "pymongo-4.11.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f845b46d77a5bcf0c9ee16f11c5bc84c63f4668d9ea4fc54cd923c8d48a1d521"},
|
| 1784 |
+
{file = "pymongo-4.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aadea45e01103f6ee4e80d76d4a27393a4e2bd93472ce4ebb894781f395e1053"},
|
| 1785 |
+
{file = "pymongo-4.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a63348c850df796199abef7e9afbd86c34449f56731c7ec70b3901df1f5c135b"},
|
| 1786 |
+
{file = "pymongo-4.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7dd7656794bfbfbe10723813332ec33eed29bd9bb7fc122c63829fd445eb8425"},
|
| 1787 |
+
{file = "pymongo-4.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7146ae04300ce6f83b75c639e97c3d0ce873f30edaac4b719ae173e886b9ff90"},
|
| 1788 |
+
{file = "pymongo-4.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:698fb3d13126c0719077c98b40378cb9a6f4ab4a72b7691779aa01f1f6c66493"},
|
| 1789 |
+
{file = "pymongo-4.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f415d9569720f408cc4dcc171f60299d454b0414f120666e6fdd349d414bf010"},
|
| 1790 |
+
{file = "pymongo-4.11.1-cp313-cp313-win32.whl", hash = "sha256:4aa2c40e391ca29a337bef2b46b495c3f24b5696a87a58f0a0676a8bf131f9f8"},
|
| 1791 |
+
{file = "pymongo-4.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:1f871efa14a1f368559edff39ec03799ca108bfa8e1ba330b7ffc05eb958661f"},
|
| 1792 |
+
{file = "pymongo-4.11.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d293cec18624825937bd7f1d8bacf16104c79ced45a8ada93f08ec8a7a2ad17a"},
|
| 1793 |
+
{file = "pymongo-4.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7b3ea3494f3e166a524529bb05a4fdda97afd77031fed3a63862fd815288c9df"},
|
| 1794 |
+
{file = "pymongo-4.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d12f4c4579076b7351c63378e22f43d4ce4ed4f2c93208b653c4752f18f47309"},
|
| 1795 |
+
{file = "pymongo-4.11.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0a8aba4818350d2a463e084ae2426d395e725525fe86bd0219240b265dc1ca52"},
|
| 1796 |
+
{file = "pymongo-4.11.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f97f62e6edde15d1d3d08abd7e43f1787ee9e672b1bb8e9d9f5fd6ded24f5599"},
|
| 1797 |
+
{file = "pymongo-4.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a4e82dce301c97bb132dec28a487c1a609dc67948e9db7cbd23485875367204"},
|
| 1798 |
+
{file = "pymongo-4.11.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:985a614ec24519f4a3d82aafb766c3f782a452fc46b32112d508a4e19b33fff3"},
|
| 1799 |
+
{file = "pymongo-4.11.1-cp313-cp313t-win32.whl", hash = "sha256:889d20850d5aaa4f19814462c06488553e70ed4c62195dbaad5d5662884778af"},
|
| 1800 |
+
{file = "pymongo-4.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3854db4be39cb9e0c34add1fd7e515deab0b4ee30f3cc3978e057746d119ac12"},
|
| 1801 |
+
{file = "pymongo-4.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:61f9a7ca6eb47378809c94cd8fbdbc5ee90c4bbb0c18ddf5592d25ed95cf939c"},
|
| 1802 |
+
{file = "pymongo-4.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3b01623eb4a7ac58706e1920a94fbb47465f8ee19e7fbbb077e1707e37678863"},
|
| 1803 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2737ad54f0cd38e19ebf76e6f34dbbc6927615a2973425e64475d15a65fc2f6b"},
|
| 1804 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2d7f291245c1688655aa308bbba7c9afa8116692c4fa6ad2646a835ed277a67b"},
|
| 1805 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:892f2137282a0a993d342db6e4e6dc2f3db0b771831c2d505f7055c52c023198"},
|
| 1806 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:822a73d22970978a6e55751d53eb0948521fc8e1380e306b8644096b5230412f"},
|
| 1807 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18b669e15922316e25a318cf9ba594eae5a6c24285a70f455ea01571d70a47d2"},
|
| 1808 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e7bac5fb1383a0df8b6881046207da20deb582a54e70c4c53ac9d4bbce323a3"},
|
| 1809 |
+
{file = "pymongo-4.11.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:34d8b0ee57ad2a07ecdccec06269a4530767c2befb68f4a185113c866ad20b00"},
|
| 1810 |
+
{file = "pymongo-4.11.1-cp39-cp39-win32.whl", hash = "sha256:490d3fd8006154894319af3a974764bf16baea87100222779f49c75cd8b16d3d"},
|
| 1811 |
+
{file = "pymongo-4.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1ed3c885ac221ddebd3e894aeae7b6bd84e7dbd4fd59f03e551d8f51455c7e9b"},
|
| 1812 |
+
{file = "pymongo-4.11.1.tar.gz", hash = "sha256:3757ce9257c3486eead45680a8895a0ed9ba27efaf1791fc0cf854367c21c638"},
|
| 1813 |
+
]
|
| 1814 |
+
|
| 1815 |
+
[package.dependencies]
|
| 1816 |
+
dnspython = ">=1.16.0,<3.0.0"
|
| 1817 |
+
|
| 1818 |
+
[package.extras]
|
| 1819 |
+
aws = ["pymongo-auth-aws (>=1.1.0,<2.0.0)"]
|
| 1820 |
+
docs = ["furo (==2024.8.6)", "readthedocs-sphinx-search (>=0.3,<1.0)", "sphinx (>=5.3,<9)", "sphinx-autobuild (>=2020.9.1)", "sphinx-rtd-theme (>=2,<4)", "sphinxcontrib-shellcheck (>=1,<2)"]
|
| 1821 |
+
encryption = ["certifi ; os_name == \"nt\" or sys_platform == \"darwin\"", "pymongo-auth-aws (>=1.1.0,<2.0.0)", "pymongocrypt (>=1.12.0,<2.0.0)"]
|
| 1822 |
+
gssapi = ["pykerberos ; os_name != \"nt\"", "winkerberos (>=0.5.0) ; os_name == \"nt\""]
|
| 1823 |
+
ocsp = ["certifi ; os_name == \"nt\" or sys_platform == \"darwin\"", "cryptography (>=2.5)", "pyopenssl (>=17.2.0)", "requests (<3.0.0)", "service-identity (>=18.1.0)"]
|
| 1824 |
+
snappy = ["python-snappy"]
|
| 1825 |
+
test = ["pytest (>=8.2)", "pytest-asyncio (>=0.24.0)"]
|
| 1826 |
+
zstd = ["zstandard"]
|
| 1827 |
+
|
| 1828 |
[[package]]
|
| 1829 |
name = "pyparsing"
|
| 1830 |
version = "3.2.1"
|
|
|
|
| 1832 |
optional = false
|
| 1833 |
python-versions = ">=3.9"
|
| 1834 |
groups = ["main"]
|
|
|
|
| 1835 |
files = [
|
| 1836 |
{file = "pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1"},
|
| 1837 |
{file = "pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a"},
|
|
|
|
| 1847 |
optional = false
|
| 1848 |
python-versions = ">=3.6"
|
| 1849 |
groups = ["main"]
|
|
|
|
| 1850 |
files = [
|
| 1851 |
{file = "PyPDF2-3.0.1.tar.gz", hash = "sha256:a74408f69ba6271f71b9352ef4ed03dc53a31aa404d29b5d31f53bfecfee1440"},
|
| 1852 |
{file = "pypdf2-3.0.1-py3-none-any.whl", hash = "sha256:d16e4205cfee272fbdc0568b68d82be796540b1537508cef59388f839c191928"},
|
|
|
|
| 1866 |
optional = false
|
| 1867 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
| 1868 |
groups = ["main"]
|
|
|
|
| 1869 |
files = [
|
| 1870 |
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
|
| 1871 |
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
|
|
|
|
| 1881 |
optional = false
|
| 1882 |
python-versions = ">=3.8"
|
| 1883 |
groups = ["main"]
|
|
|
|
| 1884 |
files = [
|
| 1885 |
{file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
|
| 1886 |
{file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
|
|
|
|
| 1896 |
optional = false
|
| 1897 |
python-versions = ">=3.8"
|
| 1898 |
groups = ["main"]
|
|
|
|
| 1899 |
files = [
|
| 1900 |
{file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"},
|
| 1901 |
{file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"},
|
|
|
|
| 1908 |
optional = false
|
| 1909 |
python-versions = "*"
|
| 1910 |
groups = ["main"]
|
|
|
|
| 1911 |
files = [
|
| 1912 |
{file = "pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57"},
|
| 1913 |
{file = "pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e"},
|
|
|
|
| 1920 |
optional = false
|
| 1921 |
python-versions = ">=3.8"
|
| 1922 |
groups = ["main"]
|
|
|
|
| 1923 |
files = [
|
| 1924 |
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
|
| 1925 |
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
|
|
|
|
| 1983 |
optional = false
|
| 1984 |
python-versions = ">=3.8"
|
| 1985 |
groups = ["main"]
|
|
|
|
| 1986 |
files = [
|
| 1987 |
{file = "redis-5.2.1-py3-none-any.whl", hash = "sha256:ee7e1056b9aea0f04c6c2ed59452947f34c4940ee025f5dd83e6a6418b6989e4"},
|
| 1988 |
{file = "redis-5.2.1.tar.gz", hash = "sha256:16f2e22dff21d5125e8481515e386711a34cbec50f0e44413dd7d9c060a54e0f"},
|
|
|
|
| 2002 |
optional = false
|
| 2003 |
python-versions = ">=3.8"
|
| 2004 |
groups = ["main"]
|
|
|
|
| 2005 |
files = [
|
| 2006 |
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
|
| 2007 |
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
|
|
|
|
| 2024 |
optional = false
|
| 2025 |
python-versions = ">=3.8.0"
|
| 2026 |
groups = ["main"]
|
| 2027 |
+
markers = "sys_platform != \"emscripten\""
|
| 2028 |
files = [
|
| 2029 |
{file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"},
|
| 2030 |
{file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"},
|
|
|
|
| 2045 |
optional = false
|
| 2046 |
python-versions = "*"
|
| 2047 |
groups = ["main"]
|
|
|
|
| 2048 |
files = [
|
| 2049 |
{file = "rsa-4.2.tar.gz", hash = "sha256:aaefa4b84752e3e99bd8333a2e1e3e7a7da64614042bd66f775573424370108a"},
|
| 2050 |
]
|
|
|
|
| 2058 |
description = "An extremely fast Python linter and code formatter, written in Rust."
|
| 2059 |
optional = false
|
| 2060 |
python-versions = ">=3.7"
|
| 2061 |
+
groups = ["main", "dev"]
|
|
|
|
| 2062 |
files = [
|
| 2063 |
{file = "ruff-0.9.6-py3-none-linux_armv6l.whl", hash = "sha256:2f218f356dd2d995839f1941322ff021c72a492c470f0b26a34f844c29cdf5ba"},
|
| 2064 |
{file = "ruff-0.9.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b908ff4df65dad7b251c9968a2e4560836d8f5487c2f0cc238321ed951ea0504"},
|
|
|
|
| 2087 |
optional = false
|
| 2088 |
python-versions = ">3.9"
|
| 2089 |
groups = ["main"]
|
|
|
|
| 2090 |
files = [
|
| 2091 |
{file = "safehttpx-0.1.6-py3-none-any.whl", hash = "sha256:407cff0b410b071623087c63dd2080c3b44dc076888d8c5823c00d1e58cb381c"},
|
| 2092 |
{file = "safehttpx-0.1.6.tar.gz", hash = "sha256:b356bfc82cee3a24c395b94a2dbeabbed60aff1aa5fa3b5fe97c4f2456ebce42"},
|
|
|
|
| 2105 |
optional = false
|
| 2106 |
python-versions = ">=2.7"
|
| 2107 |
groups = ["main"]
|
|
|
|
| 2108 |
files = [
|
| 2109 |
{file = "semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177"},
|
| 2110 |
{file = "semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c"},
|
| 2111 |
]
|
| 2112 |
|
| 2113 |
[package.extras]
|
| 2114 |
+
dev = ["Django (>=1.11)", "check-manifest", "colorama (<=0.4.1) ; python_version == \"3.4\"", "coverage", "flake8", "nose2", "readme-renderer (<25.0) ; python_version == \"3.4\"", "tox", "wheel", "zest.releaser[recommended]"]
|
| 2115 |
doc = ["Sphinx", "sphinx-rtd-theme"]
|
| 2116 |
|
| 2117 |
[[package]]
|
|
|
|
| 2121 |
optional = false
|
| 2122 |
python-versions = ">=3.7"
|
| 2123 |
groups = ["main"]
|
| 2124 |
+
markers = "sys_platform != \"emscripten\""
|
| 2125 |
files = [
|
| 2126 |
{file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"},
|
| 2127 |
{file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"},
|
|
|
|
| 2134 |
optional = false
|
| 2135 |
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
|
| 2136 |
groups = ["main"]
|
|
|
|
| 2137 |
files = [
|
| 2138 |
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
|
| 2139 |
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
|
|
|
|
| 2146 |
optional = false
|
| 2147 |
python-versions = ">=3.7"
|
| 2148 |
groups = ["main"]
|
|
|
|
| 2149 |
files = [
|
| 2150 |
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
|
| 2151 |
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
|
|
|
|
| 2158 |
optional = false
|
| 2159 |
python-versions = ">=3.9"
|
| 2160 |
groups = ["main"]
|
|
|
|
| 2161 |
files = [
|
| 2162 |
{file = "starlette-0.45.3-py3-none-any.whl", hash = "sha256:dfb6d332576f136ec740296c7e8bb8c8a7125044e7c6da30744718880cdd059d"},
|
| 2163 |
{file = "starlette-0.45.3.tar.gz", hash = "sha256:2cbcba2a75806f8a41c722141486f37c28e30a0921c5f6fe4346cb0dcee1302f"},
|
|
|
|
| 2169 |
[package.extras]
|
| 2170 |
full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"]
|
| 2171 |
|
| 2172 |
+
[[package]]
|
| 2173 |
+
name = "tomli"
|
| 2174 |
+
version = "2.2.1"
|
| 2175 |
+
description = "A lil' TOML parser"
|
| 2176 |
+
optional = false
|
| 2177 |
+
python-versions = ">=3.8"
|
| 2178 |
+
groups = ["dev"]
|
| 2179 |
+
markers = "python_version < \"3.11\""
|
| 2180 |
+
files = [
|
| 2181 |
+
{file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
|
| 2182 |
+
{file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
|
| 2183 |
+
{file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
|
| 2184 |
+
{file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
|
| 2185 |
+
{file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
|
| 2186 |
+
{file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
|
| 2187 |
+
{file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
|
| 2188 |
+
{file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
|
| 2189 |
+
{file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
|
| 2190 |
+
{file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
|
| 2191 |
+
{file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
|
| 2192 |
+
{file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
|
| 2193 |
+
{file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
|
| 2194 |
+
{file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
|
| 2195 |
+
{file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
|
| 2196 |
+
{file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
|
| 2197 |
+
{file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
|
| 2198 |
+
{file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
|
| 2199 |
+
{file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
|
| 2200 |
+
{file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
|
| 2201 |
+
{file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
|
| 2202 |
+
{file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
|
| 2203 |
+
{file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
|
| 2204 |
+
{file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
|
| 2205 |
+
{file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
|
| 2206 |
+
{file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
|
| 2207 |
+
{file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
|
| 2208 |
+
{file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
|
| 2209 |
+
{file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
|
| 2210 |
+
{file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
|
| 2211 |
+
{file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
|
| 2212 |
+
{file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"},
|
| 2213 |
+
]
|
| 2214 |
+
|
| 2215 |
[[package]]
|
| 2216 |
name = "tomlkit"
|
| 2217 |
version = "0.13.2"
|
|
|
|
| 2219 |
optional = false
|
| 2220 |
python-versions = ">=3.8"
|
| 2221 |
groups = ["main"]
|
|
|
|
| 2222 |
files = [
|
| 2223 |
{file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"},
|
| 2224 |
{file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"},
|
|
|
|
| 2231 |
optional = false
|
| 2232 |
python-versions = ">=3.7"
|
| 2233 |
groups = ["main"]
|
|
|
|
| 2234 |
files = [
|
| 2235 |
{file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"},
|
| 2236 |
{file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"},
|
|
|
|
| 2253 |
optional = false
|
| 2254 |
python-versions = ">=3.7"
|
| 2255 |
groups = ["main"]
|
| 2256 |
+
markers = "sys_platform != \"emscripten\""
|
| 2257 |
files = [
|
| 2258 |
{file = "typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847"},
|
| 2259 |
{file = "typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a"},
|
|
|
|
| 2271 |
description = "Backported and Experimental Type Hints for Python 3.8+"
|
| 2272 |
optional = false
|
| 2273 |
python-versions = ">=3.8"
|
| 2274 |
+
groups = ["main", "dev"]
|
|
|
|
| 2275 |
files = [
|
| 2276 |
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
|
| 2277 |
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
|
| 2278 |
]
|
| 2279 |
+
markers = {dev = "python_version < \"3.11\""}
|
| 2280 |
|
| 2281 |
[[package]]
|
| 2282 |
name = "tzdata"
|
|
|
|
| 2285 |
optional = false
|
| 2286 |
python-versions = ">=2"
|
| 2287 |
groups = ["main"]
|
|
|
|
| 2288 |
files = [
|
| 2289 |
{file = "tzdata-2025.1-py2.py3-none-any.whl", hash = "sha256:7e127113816800496f027041c570f50bcd464a020098a3b6b199517772303639"},
|
| 2290 |
{file = "tzdata-2025.1.tar.gz", hash = "sha256:24894909e88cdb28bd1636c6887801df64cb485bd593f2fd83ef29075a81d694"},
|
|
|
|
| 2297 |
optional = false
|
| 2298 |
python-versions = ">=3.9"
|
| 2299 |
groups = ["main"]
|
|
|
|
| 2300 |
files = [
|
| 2301 |
{file = "tzlocal-5.3-py3-none-any.whl", hash = "sha256:3814135a1bb29763c6e4f08fd6e41dbb435c7a60bfbb03270211bcc537187d8c"},
|
| 2302 |
{file = "tzlocal-5.3.tar.gz", hash = "sha256:2fafbfc07e9d8b49ade18f898d6bcd37ae88ce3ad6486842a2e4f03af68323d2"},
|
|
|
|
| 2315 |
optional = false
|
| 2316 |
python-versions = ">=3.6"
|
| 2317 |
groups = ["main"]
|
|
|
|
| 2318 |
files = [
|
| 2319 |
{file = "uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e"},
|
| 2320 |
{file = "uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"},
|
|
|
|
| 2327 |
optional = false
|
| 2328 |
python-versions = ">=3.9"
|
| 2329 |
groups = ["main"]
|
|
|
|
| 2330 |
files = [
|
| 2331 |
{file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
|
| 2332 |
{file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
|
| 2333 |
]
|
| 2334 |
|
| 2335 |
[package.extras]
|
| 2336 |
+
brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""]
|
| 2337 |
h2 = ["h2 (>=4,<5)"]
|
| 2338 |
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
|
| 2339 |
zstd = ["zstandard (>=0.18.0)"]
|
|
|
|
| 2345 |
optional = false
|
| 2346 |
python-versions = ">=3.9"
|
| 2347 |
groups = ["main"]
|
| 2348 |
+
markers = "sys_platform != \"emscripten\""
|
| 2349 |
files = [
|
| 2350 |
{file = "uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4"},
|
| 2351 |
{file = "uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9"},
|
|
|
|
| 2357 |
typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""}
|
| 2358 |
|
| 2359 |
[package.extras]
|
| 2360 |
+
standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"]
|
| 2361 |
|
| 2362 |
[[package]]
|
| 2363 |
name = "websockets"
|
|
|
|
| 2366 |
optional = false
|
| 2367 |
python-versions = ">=3.9"
|
| 2368 |
groups = ["main"]
|
|
|
|
| 2369 |
files = [
|
| 2370 |
{file = "websockets-14.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e8179f95323b9ab1c11723e5d91a89403903f7b001828161b480a7810b334885"},
|
| 2371 |
{file = "websockets-14.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d8c3e2cdb38f31d8bd7d9d28908005f6fa9def3324edb9bf336d7e4266fd397"},
|
|
|
|
| 2438 |
{file = "websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5"},
|
| 2439 |
]
|
| 2440 |
|
| 2441 |
+
[[package]]
|
| 2442 |
+
name = "werkzeug"
|
| 2443 |
+
version = "3.1.3"
|
| 2444 |
+
description = "The comprehensive WSGI web application library."
|
| 2445 |
+
optional = false
|
| 2446 |
+
python-versions = ">=3.9"
|
| 2447 |
+
groups = ["main"]
|
| 2448 |
+
files = [
|
| 2449 |
+
{file = "werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e"},
|
| 2450 |
+
{file = "werkzeug-3.1.3.tar.gz", hash = "sha256:60723ce945c19328679790e3282cc758aa4a6040e4bb330f53d30fa546d44746"},
|
| 2451 |
+
]
|
| 2452 |
+
|
| 2453 |
+
[package.dependencies]
|
| 2454 |
+
MarkupSafe = ">=2.1.1"
|
| 2455 |
+
|
| 2456 |
+
[package.extras]
|
| 2457 |
+
watchdog = ["watchdog (>=2.3)"]
|
| 2458 |
+
|
| 2459 |
[metadata]
|
| 2460 |
lock-version = "2.1"
|
| 2461 |
python-versions = ">=3.10"
|
| 2462 |
+
content-hash = "08fc3d7727c2b05ff4409c7e4eafbe8175a572ee081831982e85a55f9c7b4499"
|
pyproject.toml
CHANGED
|
@@ -18,10 +18,19 @@ dependencies = [
|
|
| 18 |
"apscheduler (>=3.11.0,<4.0.0)",
|
| 19 |
"python-multipart (>=0.0.20,<0.0.21)",
|
| 20 |
"httpx (>=0.28.1,<0.29.0)",
|
| 21 |
-
"markdown (>=3.7,<4.0)"
|
|
|
|
|
|
|
|
|
|
| 22 |
]
|
| 23 |
|
| 24 |
|
| 25 |
[build-system]
|
| 26 |
requires = ["poetry-core>=2.0.0,<3.0.0"]
|
| 27 |
build-backend = "poetry.core.masonry.api"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
"apscheduler (>=3.11.0,<4.0.0)",
|
| 19 |
"python-multipart (>=0.0.20,<0.0.21)",
|
| 20 |
"httpx (>=0.28.1,<0.29.0)",
|
| 21 |
+
"markdown (>=3.7,<4.0)",
|
| 22 |
+
"pymongo (>=4.11.1,<5.0.0)",
|
| 23 |
+
"flask (>=3.1.0,<4.0.0)",
|
| 24 |
+
"tqdm (>=4.67.1,<5.0.0)"
|
| 25 |
]
|
| 26 |
|
| 27 |
|
| 28 |
[build-system]
|
| 29 |
requires = ["poetry-core>=2.0.0,<3.0.0"]
|
| 30 |
build-backend = "poetry.core.masonry.api"
|
| 31 |
+
|
| 32 |
+
[tool.poetry.group.dev.dependencies]
|
| 33 |
+
ruff = "^0.9.6"
|
| 34 |
+
black = "^25.1.0"
|
| 35 |
+
flake8 = "^7.1.1"
|
| 36 |
+
|
tests/api_test.py
CHANGED
|
@@ -7,54 +7,61 @@ API_URL = "https://huggingface.co/api/daily_papers"
|
|
| 7 |
PDF_BASE_URL = "https://arxiv.org/pdf/{id}.pdf"
|
| 8 |
DOWNLOAD_DIR = "papers"
|
| 9 |
|
|
|
|
| 10 |
async def fetch_papers(session):
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
|
|
|
| 15 |
|
| 16 |
async def download_pdf(session, paper_entry):
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
| 30 |
return (paper_id, False)
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
return (paper_id, False)
|
| 34 |
-
|
| 35 |
os.makedirs(DOWNLOAD_DIR, exist_ok=True)
|
| 36 |
|
|
|
|
| 37 |
async def main():
|
| 38 |
async with aiohttp.ClientSession() as session:
|
| 39 |
papers = await fetch_papers(session)
|
| 40 |
print(f"Found {len(papers)} papers")
|
| 41 |
-
|
| 42 |
print(f"\nFound {len(papers)} papers:")
|
| 43 |
for i, paper_entry in enumerate(papers, 1):
|
| 44 |
paper = paper_entry.get("paper", {})
|
| 45 |
print(f"\nPaper {i}:")
|
| 46 |
print(f"ID: {paper.get('id')}")
|
| 47 |
print(f"Title: {paper.get('title')}")
|
| 48 |
-
print(
|
|
|
|
|
|
|
| 49 |
print(f"Published: {paper.get('publishedAt')}")
|
| 50 |
print(f"Summary: {paper.get('summary')[:200]}...")
|
| 51 |
print(f"PDF URL: {PDF_BASE_URL.format(id=paper.get('id'))}")
|
| 52 |
|
| 53 |
tasks = [download_pdf(session, paper) for paper in papers]
|
| 54 |
results = await asyncio.gather(*tasks)
|
| 55 |
-
|
| 56 |
successful = sum(1 for _, status in results if status)
|
| 57 |
print(f"Downloaded {successful}/{len(papers)} papers successfully")
|
| 58 |
|
|
|
|
| 59 |
if __name__ == "__main__":
|
| 60 |
-
asyncio.run(main())
|
|
|
|
| 7 |
PDF_BASE_URL = "https://arxiv.org/pdf/{id}.pdf"
|
| 8 |
DOWNLOAD_DIR = "papers"
|
| 9 |
|
| 10 |
+
|
| 11 |
async def fetch_papers(session):
|
| 12 |
+
async with session.get(API_URL) as response:
|
| 13 |
+
if response.status == 200:
|
| 14 |
+
return await response.json()
|
| 15 |
+
raise Exception(f"API request failed: {response.status}")
|
| 16 |
+
|
| 17 |
|
| 18 |
async def download_pdf(session, paper_entry):
|
| 19 |
+
try:
|
| 20 |
+
paper_id = paper_entry["paper"]["id"]
|
| 21 |
+
pdf_url = PDF_BASE_URL.format(id=paper_id)
|
| 22 |
+
clean_id = paper_id.replace("/", "_")
|
| 23 |
+
filename = f"{datetime.now().date()}_{clean_id}.pdf"
|
| 24 |
+
filepath = os.path.join(DOWNLOAD_DIR, filename)
|
| 25 |
+
|
| 26 |
+
async with session.get(pdf_url) as response:
|
| 27 |
+
if response.status == 200:
|
| 28 |
+
content = await response.read()
|
| 29 |
+
with open(filepath, "wb") as f:
|
| 30 |
+
f.write(content)
|
| 31 |
+
return (paper_id, True)
|
| 32 |
+
return (paper_id, False)
|
| 33 |
+
except Exception as e:
|
| 34 |
+
print(f"Error downloading {paper_id}: {str(e)}")
|
| 35 |
return (paper_id, False)
|
| 36 |
+
|
| 37 |
+
|
|
|
|
|
|
|
| 38 |
os.makedirs(DOWNLOAD_DIR, exist_ok=True)
|
| 39 |
|
| 40 |
+
|
| 41 |
async def main():
|
| 42 |
async with aiohttp.ClientSession() as session:
|
| 43 |
papers = await fetch_papers(session)
|
| 44 |
print(f"Found {len(papers)} papers")
|
| 45 |
+
|
| 46 |
print(f"\nFound {len(papers)} papers:")
|
| 47 |
for i, paper_entry in enumerate(papers, 1):
|
| 48 |
paper = paper_entry.get("paper", {})
|
| 49 |
print(f"\nPaper {i}:")
|
| 50 |
print(f"ID: {paper.get('id')}")
|
| 51 |
print(f"Title: {paper.get('title')}")
|
| 52 |
+
print(
|
| 53 |
+
f"Authors: {', '.join([author.get('name') for author in paper.get('authors', [])])}"
|
| 54 |
+
)
|
| 55 |
print(f"Published: {paper.get('publishedAt')}")
|
| 56 |
print(f"Summary: {paper.get('summary')[:200]}...")
|
| 57 |
print(f"PDF URL: {PDF_BASE_URL.format(id=paper.get('id'))}")
|
| 58 |
|
| 59 |
tasks = [download_pdf(session, paper) for paper in papers]
|
| 60 |
results = await asyncio.gather(*tasks)
|
| 61 |
+
|
| 62 |
successful = sum(1 for _, status in results if status)
|
| 63 |
print(f"Downloaded {successful}/{len(papers)} papers successfully")
|
| 64 |
|
| 65 |
+
|
| 66 |
if __name__ == "__main__":
|
| 67 |
+
asyncio.run(main())
|
tests/pdf_workflow_test.py
CHANGED
|
@@ -6,14 +6,15 @@ from pathlib import Path
|
|
| 6 |
GEMINI_API_KEY = ""
|
| 7 |
genai.configure(api_key=GEMINI_API_KEY)
|
| 8 |
|
|
|
|
| 9 |
class PaperAnalyzer:
|
| 10 |
def __init__(self):
|
| 11 |
-
self.model = genai.GenerativeModel(
|
| 12 |
self.safety_settings = {
|
| 13 |
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
|
| 14 |
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
|
| 15 |
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
|
| 16 |
-
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE
|
| 17 |
}
|
| 18 |
|
| 19 |
def analyze_paper(self, pdf_path: str) -> str:
|
|
@@ -24,17 +25,17 @@ class PaperAnalyzer:
|
|
| 24 |
try:
|
| 25 |
abs_path = Path(pdf_path).absolute()
|
| 26 |
print(f"Looking for PDF at: {abs_path}")
|
| 27 |
-
|
| 28 |
if not abs_path.exists():
|
| 29 |
-
available_files = list(abs_path.parent.glob(
|
| 30 |
print(f"Available files: {available_files}")
|
| 31 |
return f"File not found: {abs_path}"
|
| 32 |
|
| 33 |
uploaded_file = genai.upload_file(str(abs_path))
|
| 34 |
|
| 35 |
uploaded_file = genai.upload_file(pdf_path)
|
| 36 |
-
|
| 37 |
-
prompt =
|
| 38 |
Provide in depth explanation with all core mathematical concepts and intuition behind them.
|
| 39 |
|
| 40 |
1. Paper Structure Analysis:
|
|
@@ -68,25 +69,26 @@ class PaperAnalyzer:
|
|
| 68 |
response = self.model.generate_content(
|
| 69 |
[prompt, uploaded_file],
|
| 70 |
safety_settings=self.safety_settings,
|
| 71 |
-
generation_config={"temperature": 0.2}
|
| 72 |
)
|
| 73 |
-
|
| 74 |
genai.delete_file(uploaded_file.name)
|
| 75 |
return response.text
|
| 76 |
|
| 77 |
except Exception as e:
|
| 78 |
return f"Analysis failed: {str(e)}"
|
| 79 |
|
|
|
|
| 80 |
if __name__ == "__main__":
|
| 81 |
analyzer = PaperAnalyzer()
|
| 82 |
-
|
| 83 |
paper_path = r"papers/test_pdf.pdf"
|
| 84 |
-
|
| 85 |
print(f"Current working directory: {os.getcwd()}")
|
| 86 |
print(f"Path exists: {Path(paper_path).exists()}")
|
| 87 |
-
|
| 88 |
analysis = analyzer.analyze_paper(paper_path)
|
| 89 |
print(analysis)
|
| 90 |
-
|
| 91 |
with open("full_analysis.md", "w") as f:
|
| 92 |
-
f.write(analysis)
|
|
|
|
| 6 |
GEMINI_API_KEY = ""
|
| 7 |
genai.configure(api_key=GEMINI_API_KEY)
|
| 8 |
|
| 9 |
+
|
| 10 |
class PaperAnalyzer:
|
| 11 |
def __init__(self):
|
| 12 |
+
self.model = genai.GenerativeModel("gemini-1.5-pro-latest")
|
| 13 |
self.safety_settings = {
|
| 14 |
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
|
| 15 |
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
|
| 16 |
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
|
| 17 |
+
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
|
| 18 |
}
|
| 19 |
|
| 20 |
def analyze_paper(self, pdf_path: str) -> str:
|
|
|
|
| 25 |
try:
|
| 26 |
abs_path = Path(pdf_path).absolute()
|
| 27 |
print(f"Looking for PDF at: {abs_path}")
|
| 28 |
+
|
| 29 |
if not abs_path.exists():
|
| 30 |
+
available_files = list(abs_path.parent.glob("*"))
|
| 31 |
print(f"Available files: {available_files}")
|
| 32 |
return f"File not found: {abs_path}"
|
| 33 |
|
| 34 |
uploaded_file = genai.upload_file(str(abs_path))
|
| 35 |
|
| 36 |
uploaded_file = genai.upload_file(pdf_path)
|
| 37 |
+
|
| 38 |
+
prompt = """Analyze this research paper thoroughly, considering both text and visual elements:
|
| 39 |
Provide in depth explanation with all core mathematical concepts and intuition behind them.
|
| 40 |
|
| 41 |
1. Paper Structure Analysis:
|
|
|
|
| 69 |
response = self.model.generate_content(
|
| 70 |
[prompt, uploaded_file],
|
| 71 |
safety_settings=self.safety_settings,
|
| 72 |
+
generation_config={"temperature": 0.2},
|
| 73 |
)
|
| 74 |
+
|
| 75 |
genai.delete_file(uploaded_file.name)
|
| 76 |
return response.text
|
| 77 |
|
| 78 |
except Exception as e:
|
| 79 |
return f"Analysis failed: {str(e)}"
|
| 80 |
|
| 81 |
+
|
| 82 |
if __name__ == "__main__":
|
| 83 |
analyzer = PaperAnalyzer()
|
| 84 |
+
|
| 85 |
paper_path = r"papers/test_pdf.pdf"
|
| 86 |
+
|
| 87 |
print(f"Current working directory: {os.getcwd()}")
|
| 88 |
print(f"Path exists: {Path(paper_path).exists()}")
|
| 89 |
+
|
| 90 |
analysis = analyzer.analyze_paper(paper_path)
|
| 91 |
print(analysis)
|
| 92 |
+
|
| 93 |
with open("full_analysis.md", "w") as f:
|
| 94 |
+
f.write(analysis)
|