Spaces:
Runtime error
Runtime error
santiagoahl commited on
Commit ·
a6ffc00
1
Parent(s): 5dfdf10
update gradio
Browse files- app.py +214 -0
- main.py +0 -0
- notebooks/tools_poc/web_search.ipynb +1 -1
- poetry.lock +303 -5
- pyproject.toml +1 -0
app.py
CHANGED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import gradio as gr
|
| 3 |
+
import requests
|
| 4 |
+
import inspect
|
| 5 |
+
import pandas as pd
|
| 6 |
+
import sys
|
| 7 |
+
import asyncio
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
# Add local files
|
| 11 |
+
SRC_DIR = "src/"
|
| 12 |
+
AGENT_DIR = "src/agents"
|
| 13 |
+
TOOLS_DIR = "src/tools"
|
| 14 |
+
SYS_MSG_DIR = "prompts/agent"
|
| 15 |
+
sys.path.append(SRC_DIR)
|
| 16 |
+
sys.path.append(AGENT_DIR)
|
| 17 |
+
sys.path.append(TOOLS_DIR)
|
| 18 |
+
sys.path.append(SYS_MSG_DIR)
|
| 19 |
+
|
| 20 |
+
import tools
|
| 21 |
+
import react
|
| 22 |
+
|
| 23 |
+
# (Keep Constants as is)
|
| 24 |
+
# --- Constants ---
|
| 25 |
+
DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
|
| 26 |
+
|
| 27 |
+
# --- Basic Agent Definition ---
|
| 28 |
+
# ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
|
| 29 |
+
class ReactAgent:
|
| 30 |
+
def __init__(self):
|
| 31 |
+
print("ReactAgent initialized.")
|
| 32 |
+
def __call__(self, question: str) -> str:
|
| 33 |
+
print(f"Agent received question (first 50 chars): {question[:50]}...")
|
| 34 |
+
agent_response = asyncio.run(
|
| 35 |
+
react.run_agent(user_query=question)
|
| 36 |
+
)
|
| 37 |
+
print(f"Agent returning fixed answer: {agent_response}")
|
| 38 |
+
return agent_response
|
| 39 |
+
|
| 40 |
+
def run_and_submit_all( profile: gr.OAuthProfile | None):
|
| 41 |
+
"""
|
| 42 |
+
Fetches all questions, runs the ReactAgent on them, submits all answers,
|
| 43 |
+
and displays the results.
|
| 44 |
+
"""
|
| 45 |
+
# --- Determine HF Space Runtime URL and Repo URL ---
|
| 46 |
+
space_id = os.getenv("SPACE_ID") # Get the SPACE_ID for sending link to the code
|
| 47 |
+
|
| 48 |
+
if profile:
|
| 49 |
+
username= f"{profile.username}"
|
| 50 |
+
print(f"User logged in: {username}")
|
| 51 |
+
else:
|
| 52 |
+
print("User not logged in.")
|
| 53 |
+
return "Please Login to Hugging Face with the button.", None
|
| 54 |
+
|
| 55 |
+
api_url = DEFAULT_API_URL
|
| 56 |
+
questions_url = f"{api_url}/questions"
|
| 57 |
+
submit_url = f"{api_url}/submit"
|
| 58 |
+
|
| 59 |
+
# 1. Instantiate Agent ( modify this part to create your agent)
|
| 60 |
+
try:
|
| 61 |
+
agent = ReactAgent()
|
| 62 |
+
except Exception as e:
|
| 63 |
+
print(f"Error instantiating agent: {e}")
|
| 64 |
+
return f"Error initializing agent: {e}", None
|
| 65 |
+
# In the case of an app running as a hugging Face space, this link points toward your codebase ( usefull for others so please keep it public)
|
| 66 |
+
agent_code = f"https://huggingface.co/spaces/{space_id}/tree/main"
|
| 67 |
+
print(agent_code)
|
| 68 |
+
|
| 69 |
+
# 2. Fetch Questions
|
| 70 |
+
print(f"Fetching questions from: {questions_url}")
|
| 71 |
+
try:
|
| 72 |
+
response = requests.get(questions_url, timeout=15)
|
| 73 |
+
response.raise_for_status()
|
| 74 |
+
questions_data = response.json()
|
| 75 |
+
if not questions_data:
|
| 76 |
+
print("Fetched questions list is empty.")
|
| 77 |
+
return "Fetched questions list is empty or invalid format.", None
|
| 78 |
+
print(f"Fetched {len(questions_data)} questions.")
|
| 79 |
+
except requests.exceptions.RequestException as e:
|
| 80 |
+
print(f"Error fetching questions: {e}")
|
| 81 |
+
return f"Error fetching questions: {e}", None
|
| 82 |
+
except requests.exceptions.JSONDecodeError as e:
|
| 83 |
+
print(f"Error decoding JSON response from questions endpoint: {e}")
|
| 84 |
+
print(f"Response text: {response.text[:500]}")
|
| 85 |
+
return f"Error decoding server response for questions: {e}", None
|
| 86 |
+
except Exception as e:
|
| 87 |
+
print(f"An unexpected error occurred fetching questions: {e}")
|
| 88 |
+
return f"An unexpected error occurred fetching questions: {e}", None
|
| 89 |
+
|
| 90 |
+
# 3. Run your Agent
|
| 91 |
+
results_log = []
|
| 92 |
+
answers_payload = []
|
| 93 |
+
print(f"Running agent on {len(questions_data)} questions...")
|
| 94 |
+
for item in questions_data:
|
| 95 |
+
task_id = item.get("task_id")
|
| 96 |
+
question_text = item.get("question")
|
| 97 |
+
if not task_id or question_text is None:
|
| 98 |
+
print(f"Skipping item with missing task_id or question: {item}")
|
| 99 |
+
continue
|
| 100 |
+
try:
|
| 101 |
+
submitted_answer = agent(question_text)
|
| 102 |
+
answers_payload.append({"task_id": task_id, "submitted_answer": submitted_answer})
|
| 103 |
+
results_log.append({"Task ID": task_id, "Question": question_text, "Submitted Answer": submitted_answer})
|
| 104 |
+
except Exception as e:
|
| 105 |
+
print(f"Error running agent on task {task_id}: {e}")
|
| 106 |
+
results_log.append({"Task ID": task_id, "Question": question_text, "Submitted Answer": f"AGENT ERROR: {e}"})
|
| 107 |
+
|
| 108 |
+
if not answers_payload:
|
| 109 |
+
print("Agent did not produce any answers to submit.")
|
| 110 |
+
return "Agent did not produce any answers to submit.", pd.DataFrame(results_log)
|
| 111 |
+
|
| 112 |
+
# 4. Prepare Submission
|
| 113 |
+
submission_data = {"username": username.strip(), "agent_code": agent_code, "answers": answers_payload}
|
| 114 |
+
status_update = f"Agent finished. Submitting {len(answers_payload)} answers for user '{username}'..."
|
| 115 |
+
print(status_update)
|
| 116 |
+
|
| 117 |
+
# 5. Submit
|
| 118 |
+
print(f"Submitting {len(answers_payload)} answers to: {submit_url}")
|
| 119 |
+
try:
|
| 120 |
+
response = requests.post(submit_url, json=submission_data, timeout=60)
|
| 121 |
+
response.raise_for_status()
|
| 122 |
+
result_data = response.json()
|
| 123 |
+
final_status = (
|
| 124 |
+
f"Submission Successful!\n"
|
| 125 |
+
f"User: {result_data.get('username')}\n"
|
| 126 |
+
f"Overall Score: {result_data.get('score', 'N/A')}% "
|
| 127 |
+
f"({result_data.get('correct_count', '?')}/{result_data.get('total_attempted', '?')} correct)\n"
|
| 128 |
+
f"Message: {result_data.get('message', 'No message received.')}"
|
| 129 |
+
)
|
| 130 |
+
print("Submission successful.")
|
| 131 |
+
results_df = pd.DataFrame(results_log)
|
| 132 |
+
return final_status, results_df
|
| 133 |
+
except requests.exceptions.HTTPError as e:
|
| 134 |
+
error_detail = f"Server responded with status {e.response.status_code}."
|
| 135 |
+
try:
|
| 136 |
+
error_json = e.response.json()
|
| 137 |
+
error_detail += f" Detail: {error_json.get('detail', e.response.text)}"
|
| 138 |
+
except requests.exceptions.JSONDecodeError:
|
| 139 |
+
error_detail += f" Response: {e.response.text[:500]}"
|
| 140 |
+
status_message = f"Submission Failed: {error_detail}"
|
| 141 |
+
print(status_message)
|
| 142 |
+
results_df = pd.DataFrame(results_log)
|
| 143 |
+
return status_message, results_df
|
| 144 |
+
except requests.exceptions.Timeout:
|
| 145 |
+
status_message = "Submission Failed: The request timed out."
|
| 146 |
+
print(status_message)
|
| 147 |
+
results_df = pd.DataFrame(results_log)
|
| 148 |
+
return status_message, results_df
|
| 149 |
+
except requests.exceptions.RequestException as e:
|
| 150 |
+
status_message = f"Submission Failed: Network error - {e}"
|
| 151 |
+
print(status_message)
|
| 152 |
+
results_df = pd.DataFrame(results_log)
|
| 153 |
+
return status_message, results_df
|
| 154 |
+
except Exception as e:
|
| 155 |
+
status_message = f"An unexpected error occurred during submission: {e}"
|
| 156 |
+
print(status_message)
|
| 157 |
+
results_df = pd.DataFrame(results_log)
|
| 158 |
+
return status_message, results_df
|
| 159 |
+
|
| 160 |
+
|
| 161 |
+
# --- Build Gradio Interface using Blocks ---
|
| 162 |
+
with gr.Blocks() as demo:
|
| 163 |
+
gr.Markdown("# Basic Agent Evaluation Runner")
|
| 164 |
+
gr.Markdown(
|
| 165 |
+
"""
|
| 166 |
+
**Instructions:**
|
| 167 |
+
|
| 168 |
+
1. Please clone this space, then modify the code to define your agent's logic, the tools, the necessary packages, etc ...
|
| 169 |
+
2. Log in to your Hugging Face account using the button below. This uses your HF username for submission.
|
| 170 |
+
3. Click 'Run Evaluation & Submit All Answers' to fetch questions, run your agent, submit answers, and see the score.
|
| 171 |
+
|
| 172 |
+
---
|
| 173 |
+
**Disclaimers:**
|
| 174 |
+
Once clicking on the "submit button, it can take quite some time ( this is the time for the agent to go through all the questions).
|
| 175 |
+
This space provides a basic setup and is intentionally sub-optimal to encourage you to develop your own, more robust solution. For instance for the delay process of the submit button, a solution could be to cache the answers and submit in a seperate action or even to answer the questions in async.
|
| 176 |
+
"""
|
| 177 |
+
)
|
| 178 |
+
|
| 179 |
+
gr.LoginButton()
|
| 180 |
+
|
| 181 |
+
run_button = gr.Button("Run Evaluation & Submit All Answers")
|
| 182 |
+
|
| 183 |
+
status_output = gr.Textbox(label="Run Status / Submission Result", lines=5, interactive=False)
|
| 184 |
+
# Removed max_rows=10 from DataFrame constructor
|
| 185 |
+
results_table = gr.DataFrame(label="Questions and Agent Answers", wrap=True)
|
| 186 |
+
|
| 187 |
+
run_button.click(
|
| 188 |
+
fn=run_and_submit_all,
|
| 189 |
+
outputs=[status_output, results_table]
|
| 190 |
+
)
|
| 191 |
+
|
| 192 |
+
if __name__ == "__main__":
|
| 193 |
+
print("\n" + "-"*30 + " App Starting " + "-"*30)
|
| 194 |
+
# Check for SPACE_HOST and SPACE_ID at startup for information
|
| 195 |
+
space_host_startup = os.getenv("SPACE_HOST")
|
| 196 |
+
space_id_startup = os.getenv("SPACE_ID") # Get SPACE_ID at startup
|
| 197 |
+
|
| 198 |
+
if space_host_startup:
|
| 199 |
+
print(f"✅ SPACE_HOST found: {space_host_startup}")
|
| 200 |
+
print(f" Runtime URL should be: https://{space_host_startup}.hf.space")
|
| 201 |
+
else:
|
| 202 |
+
print("ℹ️ SPACE_HOST environment variable not found (running locally?).")
|
| 203 |
+
|
| 204 |
+
if space_id_startup: # Print repo URLs if SPACE_ID is found
|
| 205 |
+
print(f"✅ SPACE_ID found: {space_id_startup}")
|
| 206 |
+
print(f" Repo URL: https://huggingface.co/spaces/{space_id_startup}")
|
| 207 |
+
print(f" Repo Tree URL: https://huggingface.co/spaces/{space_id_startup}/tree/main")
|
| 208 |
+
else:
|
| 209 |
+
print("ℹ️ SPACE_ID environment variable not found (running locally?). Repo URL cannot be determined.")
|
| 210 |
+
|
| 211 |
+
print("-"*(60 + len(" App Starting ")) + "\n")
|
| 212 |
+
|
| 213 |
+
print("Launching Gradio Interface for Basic Agent Evaluation...")
|
| 214 |
+
demo.launch(debug=True, share=False)
|
main.py
DELETED
|
File without changes
|
notebooks/tools_poc/web_search.ipynb
CHANGED
|
@@ -1178,7 +1178,7 @@
|
|
| 1178 |
"metadata": {},
|
| 1179 |
"outputs": [],
|
| 1180 |
"source": [
|
| 1181 |
-
"react.
|
| 1182 |
]
|
| 1183 |
},
|
| 1184 |
{
|
|
|
|
| 1178 |
"metadata": {},
|
| 1179 |
"outputs": [],
|
| 1180 |
"source": [
|
| 1181 |
+
"react.run_agent(user_query=sample_yt_question + \". Just use the pull_youtube_video and the transcriber tools. Try to figure out the number of bird species from the transcript as those are mentioned\")"
|
| 1182 |
]
|
| 1183 |
},
|
| 1184 |
{
|
poetry.lock
CHANGED
|
@@ -1109,6 +1109,26 @@ files = [
|
|
| 1109 |
[package.extras]
|
| 1110 |
tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"]
|
| 1111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1112 |
[[package]]
|
| 1113 |
name = "ffmpeg"
|
| 1114 |
version = "1.4"
|
|
@@ -1119,6 +1139,20 @@ files = [
|
|
| 1119 |
{file = "ffmpeg-1.4.tar.gz", hash = "sha256:6931692c890ff21d39938433c2189747815dca0c60ddc7f9bb97f199dba0b5b9"},
|
| 1120 |
]
|
| 1121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1122 |
[[package]]
|
| 1123 |
name = "filelock"
|
| 1124 |
version = "3.18.0"
|
|
@@ -1413,6 +1447,70 @@ files = [
|
|
| 1413 |
[package.dependencies]
|
| 1414 |
six = "*"
|
| 1415 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1416 |
[[package]]
|
| 1417 |
name = "greenlet"
|
| 1418 |
version = "3.2.3"
|
|
@@ -1480,6 +1578,20 @@ files = [
|
|
| 1480 |
docs = ["Sphinx", "furo"]
|
| 1481 |
test = ["objgraph", "psutil"]
|
| 1482 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1483 |
[[package]]
|
| 1484 |
name = "grpcio"
|
| 1485 |
version = "1.73.1"
|
|
@@ -4840,6 +4952,17 @@ gcp-secret-manager = ["google-cloud-secret-manager (>=2.23.1)"]
|
|
| 4840 |
toml = ["tomli (>=2.0.1)"]
|
| 4841 |
yaml = ["pyyaml (>=6.0.1)"]
|
| 4842 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4843 |
[[package]]
|
| 4844 |
name = "pyee"
|
| 4845 |
version = "13.0.0"
|
|
@@ -5673,6 +5796,50 @@ pygments = ">=2.13.0,<3.0.0"
|
|
| 5673 |
[package.extras]
|
| 5674 |
jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
| 5675 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5676 |
[[package]]
|
| 5677 |
name = "safetensors"
|
| 5678 |
version = "0.5.3"
|
|
@@ -5813,6 +5980,21 @@ dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodest
|
|
| 5813 |
doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "linkify-it-py", "matplotlib (>=3.5)", "myst-nb (>=1.2.0)", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.2.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"]
|
| 5814 |
test = ["Cython", "array-api-strict (>=2.3.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
|
| 5815 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5816 |
[[package]]
|
| 5817 |
name = "setuptools"
|
| 5818 |
version = "80.9.0"
|
|
@@ -5890,6 +6072,17 @@ numpy = ">=1.21"
|
|
| 5890 |
docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"]
|
| 5891 |
test = ["pytest", "pytest-cov", "scipy-doctest"]
|
| 5892 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5893 |
[[package]]
|
| 5894 |
name = "six"
|
| 5895 |
version = "1.17.0"
|
|
@@ -6058,18 +6251,17 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"]
|
|
| 6058 |
|
| 6059 |
[[package]]
|
| 6060 |
name = "starlette"
|
| 6061 |
-
version = "0.
|
| 6062 |
description = "The little ASGI library that shines."
|
| 6063 |
optional = false
|
| 6064 |
python-versions = ">=3.9"
|
| 6065 |
files = [
|
| 6066 |
-
{file = "starlette-0.
|
| 6067 |
-
{file = "starlette-0.
|
| 6068 |
]
|
| 6069 |
|
| 6070 |
[package.dependencies]
|
| 6071 |
anyio = ">=3.6.2,<5"
|
| 6072 |
-
typing-extensions = {version = ">=4.10.0", markers = "python_version < \"3.13\""}
|
| 6073 |
|
| 6074 |
[package.extras]
|
| 6075 |
full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"]
|
|
@@ -6435,6 +6627,17 @@ dev = ["tokenizers[testing]"]
|
|
| 6435 |
docs = ["setuptools-rust", "sphinx", "sphinx-rtd-theme"]
|
| 6436 |
testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests", "ruff"]
|
| 6437 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6438 |
[[package]]
|
| 6439 |
name = "torch"
|
| 6440 |
version = "2.7.1"
|
|
@@ -6736,6 +6939,23 @@ tls = ["idna (>=2.4)", "pyopenssl (>=21.0.0)", "service-identity (>=18.1.0)"]
|
|
| 6736 |
websocket = ["wsproto"]
|
| 6737 |
windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)", "wsproto", "wsproto"]
|
| 6738 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6739 |
[[package]]
|
| 6740 |
name = "typing-extensions"
|
| 6741 |
version = "4.14.0"
|
|
@@ -7118,6 +7338,84 @@ files = [
|
|
| 7118 |
{file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
|
| 7119 |
]
|
| 7120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7121 |
[[package]]
|
| 7122 |
name = "werkzeug"
|
| 7123 |
version = "3.1.3"
|
|
@@ -7656,4 +7954,4 @@ cffi = ["cffi (>=1.11)"]
|
|
| 7656 |
[metadata]
|
| 7657 |
lock-version = "2.0"
|
| 7658 |
python-versions = "3.11.13"
|
| 7659 |
-
content-hash = "
|
|
|
|
| 1109 |
[package.extras]
|
| 1110 |
tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"]
|
| 1111 |
|
| 1112 |
+
[[package]]
|
| 1113 |
+
name = "fastapi"
|
| 1114 |
+
version = "0.115.14"
|
| 1115 |
+
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
|
| 1116 |
+
optional = false
|
| 1117 |
+
python-versions = ">=3.8"
|
| 1118 |
+
files = [
|
| 1119 |
+
{file = "fastapi-0.115.14-py3-none-any.whl", hash = "sha256:6c0c8bf9420bd58f565e585036d971872472b4f7d3f6c73b698e10cffdefb3ca"},
|
| 1120 |
+
{file = "fastapi-0.115.14.tar.gz", hash = "sha256:b1de15cdc1c499a4da47914db35d0e4ef8f1ce62b624e94e0e5824421df99739"},
|
| 1121 |
+
]
|
| 1122 |
+
|
| 1123 |
+
[package.dependencies]
|
| 1124 |
+
pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0"
|
| 1125 |
+
starlette = ">=0.40.0,<0.47.0"
|
| 1126 |
+
typing-extensions = ">=4.8.0"
|
| 1127 |
+
|
| 1128 |
+
[package.extras]
|
| 1129 |
+
all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"]
|
| 1130 |
+
standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"]
|
| 1131 |
+
|
| 1132 |
[[package]]
|
| 1133 |
name = "ffmpeg"
|
| 1134 |
version = "1.4"
|
|
|
|
| 1139 |
{file = "ffmpeg-1.4.tar.gz", hash = "sha256:6931692c890ff21d39938433c2189747815dca0c60ddc7f9bb97f199dba0b5b9"},
|
| 1140 |
]
|
| 1141 |
|
| 1142 |
+
[[package]]
|
| 1143 |
+
name = "ffmpy"
|
| 1144 |
+
version = "0.6.0"
|
| 1145 |
+
description = "A simple Python wrapper for FFmpeg"
|
| 1146 |
+
optional = false
|
| 1147 |
+
python-versions = ">=3.9"
|
| 1148 |
+
files = [
|
| 1149 |
+
{file = "ffmpy-0.6.0-py3-none-any.whl", hash = "sha256:c8369bf45f8bd5285ebad94c4a789a79e7af86eded74c1f8c36eccf57aaea58c"},
|
| 1150 |
+
{file = "ffmpy-0.6.0.tar.gz", hash = "sha256:332dd93198a162db61e527e866a04578d3713e577bfe68f2ed26ba9d09dbc948"},
|
| 1151 |
+
]
|
| 1152 |
+
|
| 1153 |
+
[package.extras]
|
| 1154 |
+
psutil = ["psutil (>=5.8.0)"]
|
| 1155 |
+
|
| 1156 |
[[package]]
|
| 1157 |
name = "filelock"
|
| 1158 |
version = "3.18.0"
|
|
|
|
| 1447 |
[package.dependencies]
|
| 1448 |
six = "*"
|
| 1449 |
|
| 1450 |
+
[[package]]
|
| 1451 |
+
name = "gradio"
|
| 1452 |
+
version = "5.35.0"
|
| 1453 |
+
description = "Python library for easily interacting with trained machine learning models"
|
| 1454 |
+
optional = false
|
| 1455 |
+
python-versions = ">=3.10"
|
| 1456 |
+
files = [
|
| 1457 |
+
{file = "gradio-5.35.0-py3-none-any.whl", hash = "sha256:781a80df25355861e44fd2819fac4ed43cf08ea77911570fb0682f6ae16b9c7c"},
|
| 1458 |
+
{file = "gradio-5.35.0.tar.gz", hash = "sha256:f3e68ab02cfe0d9f364068883c8caf30b5b6fb62c10a19ccea3583a0c2e50acd"},
|
| 1459 |
+
]
|
| 1460 |
+
|
| 1461 |
+
[package.dependencies]
|
| 1462 |
+
aiofiles = ">=22.0,<25.0"
|
| 1463 |
+
anyio = ">=3.0,<5.0"
|
| 1464 |
+
fastapi = ">=0.115.2,<1.0"
|
| 1465 |
+
ffmpy = "*"
|
| 1466 |
+
gradio-client = "1.10.4"
|
| 1467 |
+
groovy = ">=0.1,<1.0"
|
| 1468 |
+
httpx = ">=0.24.1"
|
| 1469 |
+
huggingface-hub = ">=0.28.1"
|
| 1470 |
+
jinja2 = "<4.0"
|
| 1471 |
+
markupsafe = ">=2.0,<4.0"
|
| 1472 |
+
numpy = ">=1.0,<3.0"
|
| 1473 |
+
orjson = ">=3.0,<4.0"
|
| 1474 |
+
packaging = "*"
|
| 1475 |
+
pandas = ">=1.0,<3.0"
|
| 1476 |
+
pillow = ">=8.0,<12.0"
|
| 1477 |
+
pydantic = ">=2.0,<2.12"
|
| 1478 |
+
pydub = "*"
|
| 1479 |
+
python-multipart = ">=0.0.18"
|
| 1480 |
+
pyyaml = ">=5.0,<7.0"
|
| 1481 |
+
ruff = {version = ">=0.9.3", markers = "sys_platform != \"emscripten\""}
|
| 1482 |
+
safehttpx = ">=0.1.6,<0.2.0"
|
| 1483 |
+
semantic-version = ">=2.0,<3.0"
|
| 1484 |
+
starlette = {version = ">=0.40.0,<1.0", markers = "sys_platform != \"emscripten\""}
|
| 1485 |
+
tomlkit = ">=0.12.0,<0.14.0"
|
| 1486 |
+
typer = {version = ">=0.12,<1.0", markers = "sys_platform != \"emscripten\""}
|
| 1487 |
+
typing-extensions = ">=4.0,<5.0"
|
| 1488 |
+
urllib3 = {version = ">=2.0,<3.0", markers = "sys_platform == \"emscripten\""}
|
| 1489 |
+
uvicorn = {version = ">=0.14.0", markers = "sys_platform != \"emscripten\""}
|
| 1490 |
+
|
| 1491 |
+
[package.extras]
|
| 1492 |
+
mcp = ["mcp (==1.9.3)", "pydantic (>=2.11)"]
|
| 1493 |
+
oauth = ["authlib", "itsdangerous"]
|
| 1494 |
+
|
| 1495 |
+
[[package]]
|
| 1496 |
+
name = "gradio-client"
|
| 1497 |
+
version = "1.10.4"
|
| 1498 |
+
description = "Python library for easily interacting with trained machine learning models"
|
| 1499 |
+
optional = false
|
| 1500 |
+
python-versions = ">=3.10"
|
| 1501 |
+
files = [
|
| 1502 |
+
{file = "gradio_client-1.10.4-py3-none-any.whl", hash = "sha256:271018368f4f0a2d2dfb943bbd495277518172be50e44f54d99c62fa5533ae09"},
|
| 1503 |
+
{file = "gradio_client-1.10.4.tar.gz", hash = "sha256:5dd0ff615f859b8d9fd3ce88555278e3d48bb6ffef79eb956a01e132edbcc1b0"},
|
| 1504 |
+
]
|
| 1505 |
+
|
| 1506 |
+
[package.dependencies]
|
| 1507 |
+
fsspec = "*"
|
| 1508 |
+
httpx = ">=0.24.1"
|
| 1509 |
+
huggingface-hub = ">=0.19.3"
|
| 1510 |
+
packaging = "*"
|
| 1511 |
+
typing-extensions = ">=4.0,<5.0"
|
| 1512 |
+
websockets = ">=10.0,<16.0"
|
| 1513 |
+
|
| 1514 |
[[package]]
|
| 1515 |
name = "greenlet"
|
| 1516 |
version = "3.2.3"
|
|
|
|
| 1578 |
docs = ["Sphinx", "furo"]
|
| 1579 |
test = ["objgraph", "psutil"]
|
| 1580 |
|
| 1581 |
+
[[package]]
|
| 1582 |
+
name = "groovy"
|
| 1583 |
+
version = "0.1.2"
|
| 1584 |
+
description = "A small Python library created to help developers protect their applications from Server Side Request Forgery (SSRF) attacks."
|
| 1585 |
+
optional = false
|
| 1586 |
+
python-versions = ">3.9"
|
| 1587 |
+
files = [
|
| 1588 |
+
{file = "groovy-0.1.2-py3-none-any.whl", hash = "sha256:7f7975bab18c729a257a8b1ae9dcd70b7cafb1720481beae47719af57c35fa64"},
|
| 1589 |
+
{file = "groovy-0.1.2.tar.gz", hash = "sha256:25c1dc09b3f9d7e292458aa762c6beb96ea037071bf5e917fc81fb78d2231083"},
|
| 1590 |
+
]
|
| 1591 |
+
|
| 1592 |
+
[package.extras]
|
| 1593 |
+
dev = ["pytest", "ruff (==0.9.3)"]
|
| 1594 |
+
|
| 1595 |
[[package]]
|
| 1596 |
name = "grpcio"
|
| 1597 |
version = "1.73.1"
|
|
|
|
| 4952 |
toml = ["tomli (>=2.0.1)"]
|
| 4953 |
yaml = ["pyyaml (>=6.0.1)"]
|
| 4954 |
|
| 4955 |
+
[[package]]
|
| 4956 |
+
name = "pydub"
|
| 4957 |
+
version = "0.25.1"
|
| 4958 |
+
description = "Manipulate audio with an simple and easy high level interface"
|
| 4959 |
+
optional = false
|
| 4960 |
+
python-versions = "*"
|
| 4961 |
+
files = [
|
| 4962 |
+
{file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"},
|
| 4963 |
+
{file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"},
|
| 4964 |
+
]
|
| 4965 |
+
|
| 4966 |
[[package]]
|
| 4967 |
name = "pyee"
|
| 4968 |
version = "13.0.0"
|
|
|
|
| 5796 |
[package.extras]
|
| 5797 |
jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
| 5798 |
|
| 5799 |
+
[[package]]
|
| 5800 |
+
name = "ruff"
|
| 5801 |
+
version = "0.12.1"
|
| 5802 |
+
description = "An extremely fast Python linter and code formatter, written in Rust."
|
| 5803 |
+
optional = false
|
| 5804 |
+
python-versions = ">=3.7"
|
| 5805 |
+
files = [
|
| 5806 |
+
{file = "ruff-0.12.1-py3-none-linux_armv6l.whl", hash = "sha256:6013a46d865111e2edb71ad692fbb8262e6c172587a57c0669332a449384a36b"},
|
| 5807 |
+
{file = "ruff-0.12.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b3f75a19e03a4b0757d1412edb7f27cffb0c700365e9d6b60bc1b68d35bc89e0"},
|
| 5808 |
+
{file = "ruff-0.12.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9a256522893cb7e92bb1e1153283927f842dea2e48619c803243dccc8437b8be"},
|
| 5809 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:069052605fe74c765a5b4272eb89880e0ff7a31e6c0dbf8767203c1fbd31c7ff"},
|
| 5810 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a684f125a4fec2d5a6501a466be3841113ba6847827be4573fddf8308b83477d"},
|
| 5811 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdecdef753bf1e95797593007569d8e1697a54fca843d78f6862f7dc279e23bd"},
|
| 5812 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:70d52a058c0e7b88b602f575d23596e89bd7d8196437a4148381a3f73fcd5010"},
|
| 5813 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84d0a69d1e8d716dfeab22d8d5e7c786b73f2106429a933cee51d7b09f861d4e"},
|
| 5814 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cc32e863adcf9e71690248607ccdf25252eeeab5193768e6873b901fd441fed"},
|
| 5815 |
+
{file = "ruff-0.12.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7fd49a4619f90d5afc65cf42e07b6ae98bb454fd5029d03b306bd9e2273d44cc"},
|
| 5816 |
+
{file = "ruff-0.12.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ed5af6aaaea20710e77698e2055b9ff9b3494891e1b24d26c07055459bb717e9"},
|
| 5817 |
+
{file = "ruff-0.12.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:801d626de15e6bf988fbe7ce59b303a914ff9c616d5866f8c79eb5012720ae13"},
|
| 5818 |
+
{file = "ruff-0.12.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:2be9d32a147f98a1972c1e4df9a6956d612ca5f5578536814372113d09a27a6c"},
|
| 5819 |
+
{file = "ruff-0.12.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:49b7ce354eed2a322fbaea80168c902de9504e6e174fd501e9447cad0232f9e6"},
|
| 5820 |
+
{file = "ruff-0.12.1-py3-none-win32.whl", hash = "sha256:d973fa626d4c8267848755bd0414211a456e99e125dcab147f24daa9e991a245"},
|
| 5821 |
+
{file = "ruff-0.12.1-py3-none-win_amd64.whl", hash = "sha256:9e1123b1c033f77bd2590e4c1fe7e8ea72ef990a85d2484351d408224d603013"},
|
| 5822 |
+
{file = "ruff-0.12.1-py3-none-win_arm64.whl", hash = "sha256:78ad09a022c64c13cc6077707f036bab0fac8cd7088772dcd1e5be21c5002efc"},
|
| 5823 |
+
{file = "ruff-0.12.1.tar.gz", hash = "sha256:806bbc17f1104fd57451a98a58df35388ee3ab422e029e8f5cf30aa4af2c138c"},
|
| 5824 |
+
]
|
| 5825 |
+
|
| 5826 |
+
[[package]]
|
| 5827 |
+
name = "safehttpx"
|
| 5828 |
+
version = "0.1.6"
|
| 5829 |
+
description = "A small Python library created to help developers protect their applications from Server Side Request Forgery (SSRF) attacks."
|
| 5830 |
+
optional = false
|
| 5831 |
+
python-versions = ">3.9"
|
| 5832 |
+
files = [
|
| 5833 |
+
{file = "safehttpx-0.1.6-py3-none-any.whl", hash = "sha256:407cff0b410b071623087c63dd2080c3b44dc076888d8c5823c00d1e58cb381c"},
|
| 5834 |
+
{file = "safehttpx-0.1.6.tar.gz", hash = "sha256:b356bfc82cee3a24c395b94a2dbeabbed60aff1aa5fa3b5fe97c4f2456ebce42"},
|
| 5835 |
+
]
|
| 5836 |
+
|
| 5837 |
+
[package.dependencies]
|
| 5838 |
+
httpx = "*"
|
| 5839 |
+
|
| 5840 |
+
[package.extras]
|
| 5841 |
+
dev = ["pytest"]
|
| 5842 |
+
|
| 5843 |
[[package]]
|
| 5844 |
name = "safetensors"
|
| 5845 |
version = "0.5.3"
|
|
|
|
| 5980 |
doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "linkify-it-py", "matplotlib (>=3.5)", "myst-nb (>=1.2.0)", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.2.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"]
|
| 5981 |
test = ["Cython", "array-api-strict (>=2.3.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
|
| 5982 |
|
| 5983 |
+
[[package]]
|
| 5984 |
+
name = "semantic-version"
|
| 5985 |
+
version = "2.10.0"
|
| 5986 |
+
description = "A library implementing the 'SemVer' scheme."
|
| 5987 |
+
optional = false
|
| 5988 |
+
python-versions = ">=2.7"
|
| 5989 |
+
files = [
|
| 5990 |
+
{file = "semantic_version-2.10.0-py2.py3-none-any.whl", hash = "sha256:de78a3b8e0feda74cabc54aab2da702113e33ac9d9eb9d2389bcf1f58b7d9177"},
|
| 5991 |
+
{file = "semantic_version-2.10.0.tar.gz", hash = "sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c"},
|
| 5992 |
+
]
|
| 5993 |
+
|
| 5994 |
+
[package.extras]
|
| 5995 |
+
dev = ["Django (>=1.11)", "check-manifest", "colorama (<=0.4.1)", "coverage", "flake8", "nose2", "readme-renderer (<25.0)", "tox", "wheel", "zest.releaser[recommended]"]
|
| 5996 |
+
doc = ["Sphinx", "sphinx-rtd-theme"]
|
| 5997 |
+
|
| 5998 |
[[package]]
|
| 5999 |
name = "setuptools"
|
| 6000 |
version = "80.9.0"
|
|
|
|
| 6072 |
docs = ["matplotlib", "numpydoc (==1.1.*)", "sphinx", "sphinx-book-theme", "sphinx-remove-toctrees"]
|
| 6073 |
test = ["pytest", "pytest-cov", "scipy-doctest"]
|
| 6074 |
|
| 6075 |
+
[[package]]
|
| 6076 |
+
name = "shellingham"
|
| 6077 |
+
version = "1.5.4"
|
| 6078 |
+
description = "Tool to Detect Surrounding Shell"
|
| 6079 |
+
optional = false
|
| 6080 |
+
python-versions = ">=3.7"
|
| 6081 |
+
files = [
|
| 6082 |
+
{file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"},
|
| 6083 |
+
{file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"},
|
| 6084 |
+
]
|
| 6085 |
+
|
| 6086 |
[[package]]
|
| 6087 |
name = "six"
|
| 6088 |
version = "1.17.0"
|
|
|
|
| 6251 |
|
| 6252 |
[[package]]
|
| 6253 |
name = "starlette"
|
| 6254 |
+
version = "0.46.2"
|
| 6255 |
description = "The little ASGI library that shines."
|
| 6256 |
optional = false
|
| 6257 |
python-versions = ">=3.9"
|
| 6258 |
files = [
|
| 6259 |
+
{file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"},
|
| 6260 |
+
{file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"},
|
| 6261 |
]
|
| 6262 |
|
| 6263 |
[package.dependencies]
|
| 6264 |
anyio = ">=3.6.2,<5"
|
|
|
|
| 6265 |
|
| 6266 |
[package.extras]
|
| 6267 |
full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"]
|
|
|
|
| 6627 |
docs = ["setuptools-rust", "sphinx", "sphinx-rtd-theme"]
|
| 6628 |
testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests", "ruff"]
|
| 6629 |
|
| 6630 |
+
[[package]]
|
| 6631 |
+
name = "tomlkit"
|
| 6632 |
+
version = "0.13.3"
|
| 6633 |
+
description = "Style preserving TOML library"
|
| 6634 |
+
optional = false
|
| 6635 |
+
python-versions = ">=3.8"
|
| 6636 |
+
files = [
|
| 6637 |
+
{file = "tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0"},
|
| 6638 |
+
{file = "tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1"},
|
| 6639 |
+
]
|
| 6640 |
+
|
| 6641 |
[[package]]
|
| 6642 |
name = "torch"
|
| 6643 |
version = "2.7.1"
|
|
|
|
| 6939 |
websocket = ["wsproto"]
|
| 6940 |
windows-platform = ["appdirs (>=1.4.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.1.3)", "bcrypt (>=3.1.3)", "cryptography (>=3.3)", "cryptography (>=3.3)", "cython-test-exception-raiser (>=1.0.2,<2)", "cython-test-exception-raiser (>=1.0.2,<2)", "h2 (>=3.2,<5.0)", "h2 (>=3.2,<5.0)", "httpx[http2] (>=0.27)", "httpx[http2] (>=0.27)", "hypothesis (>=6.56)", "hypothesis (>=6.56)", "idna (>=2.4)", "idna (>=2.4)", "priority (>=1.1.0,<2.0)", "priority (>=1.1.0,<2.0)", "pyhamcrest (>=2)", "pyhamcrest (>=2)", "pyopenssl (>=21.0.0)", "pyopenssl (>=21.0.0)", "pyserial (>=3.0)", "pyserial (>=3.0)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "pywin32 (!=226)", "service-identity (>=18.1.0)", "service-identity (>=18.1.0)", "twisted-iocpsupport (>=1.0.2)", "twisted-iocpsupport (>=1.0.2)", "wsproto", "wsproto"]
|
| 6941 |
|
| 6942 |
+
[[package]]
|
| 6943 |
+
name = "typer"
|
| 6944 |
+
version = "0.16.0"
|
| 6945 |
+
description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
|
| 6946 |
+
optional = false
|
| 6947 |
+
python-versions = ">=3.7"
|
| 6948 |
+
files = [
|
| 6949 |
+
{file = "typer-0.16.0-py3-none-any.whl", hash = "sha256:1f79bed11d4d02d4310e3c1b7ba594183bcedb0ac73b27a9e5f28f6fb5b98855"},
|
| 6950 |
+
{file = "typer-0.16.0.tar.gz", hash = "sha256:af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b"},
|
| 6951 |
+
]
|
| 6952 |
+
|
| 6953 |
+
[package.dependencies]
|
| 6954 |
+
click = ">=8.0.0"
|
| 6955 |
+
rich = ">=10.11.0"
|
| 6956 |
+
shellingham = ">=1.3.0"
|
| 6957 |
+
typing-extensions = ">=3.7.4.3"
|
| 6958 |
+
|
| 6959 |
[[package]]
|
| 6960 |
name = "typing-extensions"
|
| 6961 |
version = "4.14.0"
|
|
|
|
| 7338 |
{file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
|
| 7339 |
]
|
| 7340 |
|
| 7341 |
+
[[package]]
|
| 7342 |
+
name = "websockets"
|
| 7343 |
+
version = "15.0.1"
|
| 7344 |
+
description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
|
| 7345 |
+
optional = false
|
| 7346 |
+
python-versions = ">=3.9"
|
| 7347 |
+
files = [
|
| 7348 |
+
{file = "websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b"},
|
| 7349 |
+
{file = "websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205"},
|
| 7350 |
+
{file = "websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a"},
|
| 7351 |
+
{file = "websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e"},
|
| 7352 |
+
{file = "websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf"},
|
| 7353 |
+
{file = "websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb"},
|
| 7354 |
+
{file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d"},
|
| 7355 |
+
{file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9"},
|
| 7356 |
+
{file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c"},
|
| 7357 |
+
{file = "websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256"},
|
| 7358 |
+
{file = "websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41"},
|
| 7359 |
+
{file = "websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431"},
|
| 7360 |
+
{file = "websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57"},
|
| 7361 |
+
{file = "websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905"},
|
| 7362 |
+
{file = "websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562"},
|
| 7363 |
+
{file = "websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792"},
|
| 7364 |
+
{file = "websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413"},
|
| 7365 |
+
{file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8"},
|
| 7366 |
+
{file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3"},
|
| 7367 |
+
{file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf"},
|
| 7368 |
+
{file = "websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85"},
|
| 7369 |
+
{file = "websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065"},
|
| 7370 |
+
{file = "websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3"},
|
| 7371 |
+
{file = "websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665"},
|
| 7372 |
+
{file = "websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2"},
|
| 7373 |
+
{file = "websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215"},
|
| 7374 |
+
{file = "websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5"},
|
| 7375 |
+
{file = "websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65"},
|
| 7376 |
+
{file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe"},
|
| 7377 |
+
{file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4"},
|
| 7378 |
+
{file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597"},
|
| 7379 |
+
{file = "websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9"},
|
| 7380 |
+
{file = "websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7"},
|
| 7381 |
+
{file = "websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931"},
|
| 7382 |
+
{file = "websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675"},
|
| 7383 |
+
{file = "websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151"},
|
| 7384 |
+
{file = "websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22"},
|
| 7385 |
+
{file = "websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f"},
|
| 7386 |
+
{file = "websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8"},
|
| 7387 |
+
{file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375"},
|
| 7388 |
+
{file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d"},
|
| 7389 |
+
{file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4"},
|
| 7390 |
+
{file = "websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa"},
|
| 7391 |
+
{file = "websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561"},
|
| 7392 |
+
{file = "websockets-15.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5"},
|
| 7393 |
+
{file = "websockets-15.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a"},
|
| 7394 |
+
{file = "websockets-15.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b"},
|
| 7395 |
+
{file = "websockets-15.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770"},
|
| 7396 |
+
{file = "websockets-15.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb"},
|
| 7397 |
+
{file = "websockets-15.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054"},
|
| 7398 |
+
{file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee"},
|
| 7399 |
+
{file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed"},
|
| 7400 |
+
{file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880"},
|
| 7401 |
+
{file = "websockets-15.0.1-cp39-cp39-win32.whl", hash = "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411"},
|
| 7402 |
+
{file = "websockets-15.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4"},
|
| 7403 |
+
{file = "websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3"},
|
| 7404 |
+
{file = "websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1"},
|
| 7405 |
+
{file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475"},
|
| 7406 |
+
{file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9"},
|
| 7407 |
+
{file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04"},
|
| 7408 |
+
{file = "websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122"},
|
| 7409 |
+
{file = "websockets-15.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940"},
|
| 7410 |
+
{file = "websockets-15.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e"},
|
| 7411 |
+
{file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9"},
|
| 7412 |
+
{file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b"},
|
| 7413 |
+
{file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f"},
|
| 7414 |
+
{file = "websockets-15.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123"},
|
| 7415 |
+
{file = "websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f"},
|
| 7416 |
+
{file = "websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee"},
|
| 7417 |
+
]
|
| 7418 |
+
|
| 7419 |
[[package]]
|
| 7420 |
name = "werkzeug"
|
| 7421 |
version = "3.1.3"
|
|
|
|
| 7954 |
[metadata]
|
| 7955 |
lock-version = "2.0"
|
| 7956 |
python-versions = "3.11.13"
|
| 7957 |
+
content-hash = "25d134a2d5337a7b074800f24776e939cf074e534d880e577b5e038e6a9e544e"
|
pyproject.toml
CHANGED
|
@@ -54,6 +54,7 @@ unstructured-inference = "^1.0.5"
|
|
| 54 |
pi-heif = "^0.22.0"
|
| 55 |
pdfminer-six = "^20250506"
|
| 56 |
unstructured = "^0.18.1"
|
|
|
|
| 57 |
|
| 58 |
[tool.poetry.group.dev.dependencies]
|
| 59 |
ipykernel = "^6.29.5"
|
|
|
|
| 54 |
pi-heif = "^0.22.0"
|
| 55 |
pdfminer-six = "^20250506"
|
| 56 |
unstructured = "^0.18.1"
|
| 57 |
+
gradio = "5.35.0"
|
| 58 |
|
| 59 |
[tool.poetry.group.dev.dependencies]
|
| 60 |
ipykernel = "^6.29.5"
|