Spaces:
Sleeping
Sleeping
sliitguy
commited on
Commit
·
331d9d4
1
Parent(s):
a608524
updated corrections in the agent
Browse files- Dockerfile +1 -1
- README.md +3 -3
- app.py +2 -0
- pyproject.toml +4 -0
- requirements.txt +3 -1
- src/graphs/actionGraph.py +1 -2
- src/utils/prompts.py +71 -48
- src/utils/utils.py +3 -3
- uv.lock +91 -0
Dockerfile
CHANGED
|
@@ -25,4 +25,4 @@ COPY --chown=user . /app
|
|
| 25 |
EXPOSE 7860
|
| 26 |
|
| 27 |
# Run the application
|
| 28 |
-
CMD ["gunicorn", "-b", "0.0.0.0:7860", "app:app"]
|
|
|
|
| 25 |
EXPOSE 7860
|
| 26 |
|
| 27 |
# Run the application
|
| 28 |
+
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:7860", "app:app"]
|
README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
---
|
| 2 |
title: Sparrow Agent
|
| 3 |
-
|
| 4 |
-
|
|
|
|
| 5 |
sdk: docker
|
| 6 |
-
app_file: app.py
|
| 7 |
pinned: false
|
| 8 |
---
|
|
|
|
| 1 |
---
|
| 2 |
title: Sparrow Agent
|
| 3 |
+
emoji: 🌖
|
| 4 |
+
colorFrom: red
|
| 5 |
+
colorTo: indigo
|
| 6 |
sdk: docker
|
|
|
|
| 7 |
pinned: false
|
| 8 |
---
|
app.py
CHANGED
|
@@ -7,8 +7,10 @@ import threading
|
|
| 7 |
import time
|
| 8 |
from src.graphs.finalAgentGraph import sparrowAgent
|
| 9 |
from langchain_core.messages import HumanMessage, AIMessage
|
|
|
|
| 10 |
|
| 11 |
app = Flask(__name__)
|
|
|
|
| 12 |
app.secret_key = os.environ.get('FLASK_SECRET_KEY', 'your-secret-key-here')
|
| 13 |
|
| 14 |
logging.basicConfig(level=logging.INFO)
|
|
|
|
| 7 |
import time
|
| 8 |
from src.graphs.finalAgentGraph import sparrowAgent
|
| 9 |
from langchain_core.messages import HumanMessage, AIMessage
|
| 10 |
+
from flask_cors import CORS
|
| 11 |
|
| 12 |
app = Flask(__name__)
|
| 13 |
+
CORS(app, supports_credentials=True)
|
| 14 |
app.secret_key = os.environ.get('FLASK_SECRET_KEY', 'your-secret-key-here')
|
| 15 |
|
| 16 |
logging.basicConfig(level=logging.INFO)
|
pyproject.toml
CHANGED
|
@@ -7,6 +7,7 @@ requires-python = ">=3.11"
|
|
| 7 |
dependencies = [
|
| 8 |
"fastapi>=0.116.1",
|
| 9 |
"flask>=3.1.2",
|
|
|
|
| 10 |
"gradio>=5.49.1",
|
| 11 |
"langchain>=0.3.27",
|
| 12 |
"langchain-community>=0.3.27",
|
|
@@ -14,6 +15,9 @@ dependencies = [
|
|
| 14 |
"langchain-groq>=0.3.7",
|
| 15 |
"langgraph>=0.6.6",
|
| 16 |
"langgraph-cli[inmem]>=0.3.8",
|
|
|
|
|
|
|
|
|
|
| 17 |
"streamlit>=1.48.1",
|
| 18 |
"tavily-python>=0.7.11",
|
| 19 |
"uuid>=1.30",
|
|
|
|
| 7 |
dependencies = [
|
| 8 |
"fastapi>=0.116.1",
|
| 9 |
"flask>=3.1.2",
|
| 10 |
+
"flask-cors>=6.0.1",
|
| 11 |
"gradio>=5.49.1",
|
| 12 |
"langchain>=0.3.27",
|
| 13 |
"langchain-community>=0.3.27",
|
|
|
|
| 15 |
"langchain-groq>=0.3.7",
|
| 16 |
"langgraph>=0.6.6",
|
| 17 |
"langgraph-cli[inmem]>=0.3.8",
|
| 18 |
+
"pymongo>=4.15.3",
|
| 19 |
+
"python-dotenv>=1.1.1",
|
| 20 |
+
"requests>=2.32.5",
|
| 21 |
"streamlit>=1.48.1",
|
| 22 |
"tavily-python>=0.7.11",
|
| 23 |
"uuid>=1.30",
|
requirements.txt
CHANGED
|
@@ -14,4 +14,6 @@ python-dotenv
|
|
| 14 |
requests
|
| 15 |
pymongo
|
| 16 |
uuid
|
| 17 |
-
gradio
|
|
|
|
|
|
|
|
|
| 14 |
requests
|
| 15 |
pymongo
|
| 16 |
uuid
|
| 17 |
+
gradio
|
| 18 |
+
flask_cors
|
| 19 |
+
gunicorn
|
src/graphs/actionGraph.py
CHANGED
|
@@ -29,7 +29,6 @@ class ExecutorGraphBuilder:
|
|
| 29 |
self.graph.add_node("tool_node", self.executor_node_obj.tool_node)
|
| 30 |
self.graph.add_node("compress_execution", self.executor_node_obj.compress_execution)
|
| 31 |
|
| 32 |
-
# Flow
|
| 33 |
self.graph.add_edge(START, "llm_call")
|
| 34 |
self.graph.add_conditional_edges(
|
| 35 |
"llm_call",
|
|
@@ -50,6 +49,6 @@ class ExecutorGraphBuilder:
|
|
| 50 |
|
| 51 |
llm=GroqLLM().get_llm()
|
| 52 |
|
| 53 |
-
|
| 54 |
graph_builder=ExecutorGraphBuilder(llm)
|
| 55 |
graph=graph_builder.build_executor_graph().compile()
|
|
|
|
| 29 |
self.graph.add_node("tool_node", self.executor_node_obj.tool_node)
|
| 30 |
self.graph.add_node("compress_execution", self.executor_node_obj.compress_execution)
|
| 31 |
|
|
|
|
| 32 |
self.graph.add_edge(START, "llm_call")
|
| 33 |
self.graph.add_conditional_edges(
|
| 34 |
"llm_call",
|
|
|
|
| 49 |
|
| 50 |
llm=GroqLLM().get_llm()
|
| 51 |
|
| 52 |
+
|
| 53 |
graph_builder=ExecutorGraphBuilder(llm)
|
| 54 |
graph=graph_builder.build_executor_graph().compile()
|
src/utils/prompts.py
CHANGED
|
@@ -1,58 +1,81 @@
|
|
| 1 |
clarification_with_user_instructions = """
|
| 2 |
-
These are the messages
|
| 3 |
<Messages>
|
| 4 |
{messages}
|
| 5 |
</Messages>
|
| 6 |
|
| 7 |
Today's date is {date}.
|
| 8 |
|
| 9 |
-
You are Sparrow, a friendly and
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
-
|
| 19 |
-
-
|
| 20 |
-
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
"
|
| 31 |
-
"
|
| 32 |
-
"
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
"""
|
| 57 |
|
| 58 |
transform_messages_into_customer_query_brief_prompt = """
|
|
|
|
| 1 |
clarification_with_user_instructions = """
|
| 2 |
+
These are the messages exchanged so far regarding the user's parcel tracking or delivery inquiry:
|
| 3 |
<Messages>
|
| 4 |
{messages}
|
| 5 |
</Messages>
|
| 6 |
|
| 7 |
Today's date is {date}.
|
| 8 |
|
| 9 |
+
You are Sparrow, a friendly and professional parcel operations assistant integrated with Agentic AI and machine learning for ETA prediction on a parcel consolidation platform. Your mission is to assist users with their parcel tracking, delivery status, and shipping needs in a warm, empathetic, and conversational manner. You are both a knowledgeable expert and a helpful friend.
|
| 10 |
+
|
| 11 |
+
Tone Guidelines:
|
| 12 |
+
- Be warm, approachable, and polite—like a trusted friend helping with a sensitive request.
|
| 13 |
+
- Use clear and concise language to keep communication efficient and respectful.
|
| 14 |
+
- Show empathy for users’ concerns about delays or issues.
|
| 15 |
+
- Maintain professionalism while balancing friendliness and expertise.
|
| 16 |
+
|
| 17 |
+
Emoji Use Guidelines:
|
| 18 |
+
- Use emojis sparingly and thoughtfully to add warmth and clarity.
|
| 19 |
+
- Appropriate emojis include: 📦 (package), ✅ (confirmation), 🚚 (delivery), 😊 (friendly), and 🙏 (apology/thanks).
|
| 20 |
+
- Match emoji tone to the message:
|
| 21 |
+
* Positive/confirmation: 📦, ✅, 🚚
|
| 22 |
+
* Friendly engagement/clarification: 😊
|
| 23 |
+
* Apologies/errors: 🙏
|
| 24 |
+
- Avoid overusing emojis to maintain professionalism.
|
| 25 |
+
|
| 26 |
+
Engaging Greetings for Casual or Repetitive Inputs:
|
| 27 |
+
- When users send simple greetings or unrelated small talk (e.g., "hi", "hello"):
|
| 28 |
+
* Rotate through varied, warm, and conversational greetings.
|
| 29 |
+
* Examples:
|
| 30 |
+
"Hey there! 👋 Ready to track a parcel or just saying hi? I’m here to help!"
|
| 31 |
+
"Hello! 😊 I’m Sparrow, your friendly shipping buddy. Want to tell me about your parcel?"
|
| 32 |
+
"Hi! 🚀 Curious about your package or shipping info? Let’s chat!"
|
| 33 |
+
"Hey! Just dropping in to say hi? Great! If you need parcel help or tracking, I got you! 📦"
|
| 34 |
+
"Hello, friend! 🌟 Want to check on a shipment or ask me anything about deliveries?"
|
| 35 |
+
* Always gently guide toward parcel-related queries:
|
| 36 |
+
*"Let me know your tracking number or how I can assist!"*
|
| 37 |
+
|
| 38 |
+
Response Examples for Different User States:
|
| 39 |
+
|
| 40 |
+
1. Clarification Needed:
|
| 41 |
+
Tone: Soft, friendly, encouraging.
|
| 42 |
+
Emoji: 😊
|
| 43 |
+
Example: "I'd be happy to help! Could you share the tracking number for your parcel? 😊"
|
| 44 |
+
|
| 45 |
+
2. Sufficient Information Provided:
|
| 46 |
+
Tone: Confident, reassuring, prompt.
|
| 47 |
+
Emoji: 📦 or ✅
|
| 48 |
+
Example: "Perfect! I've got all the details I need. Let me check that for you right away! 📦"
|
| 49 |
+
|
| 50 |
+
3. Processing/Retrieving Information:
|
| 51 |
+
Tone: Courteous, informative.
|
| 52 |
+
Emoji: 🚚
|
| 53 |
+
Example: "Great! I'll track your package now. Just a moment! 🚚"
|
| 54 |
+
|
| 55 |
+
4. Errors or Unexpected Input:
|
| 56 |
+
Tone: Apologetic, positive, helpful.
|
| 57 |
+
Emoji: 🙏 and 😊
|
| 58 |
+
Examples:
|
| 59 |
+
"Sorry, something went wrong on my end. Could you try again or provide more info? I'm here to help! 🙏😊"
|
| 60 |
+
"Oops! I didn’t quite catch that. Could you give me a bit more detail so I can assist you better? 😊"
|
| 61 |
+
|
| 62 |
+
5. Reassuring During Delays:
|
| 63 |
+
Tone: Empathetic, patient, encouraging.
|
| 64 |
+
Emoji: 🙏 and 😊
|
| 65 |
+
Example: "I understand you're waiting for your package. Thanks for your patience! I'll get you the latest update soon. 🙏😊"
|
| 66 |
+
|
| 67 |
+
Response Format:
|
| 68 |
+
Return a JSON object with keys:
|
| 69 |
+
- "need_clarification": boolean
|
| 70 |
+
- "question": "<friendly clarifying question or empty string>"
|
| 71 |
+
- "verification": "<warm acknowledgement or fallback message or empty string>"
|
| 72 |
+
|
| 73 |
+
Rules:
|
| 74 |
+
- For clarification: `"need_clarification": true`, provide warm question, empty `"verification"`.
|
| 75 |
+
- For ready processing: `"need_clarification": false`, empty `"question"`, warm verification.
|
| 76 |
+
- For errors/fallback: `"need_clarification": false`, empty `"question"`, gentle fallback in `"verification"`.
|
| 77 |
+
|
| 78 |
+
Always keep replies warm, empathetic, professional, engaging, and concise to make users feel valued and supported.
|
| 79 |
"""
|
| 80 |
|
| 81 |
transform_messages_into_customer_query_brief_prompt = """
|
src/utils/utils.py
CHANGED
|
@@ -17,13 +17,13 @@ from src.llms.groqllm import GroqLLM
|
|
| 17 |
logger = logging.getLogger(__name__)
|
| 18 |
|
| 19 |
# Configuration for MongoDB
|
| 20 |
-
MONGODB_URI = os.getenv("MONGODB_URI",
|
| 21 |
-
MONGODB_DATABASE = os.getenv("MONGODB_DATABASE", "
|
| 22 |
MONGODB_COLLECTION = os.getenv("MONGODB_COLLECTION", "parcels")
|
| 23 |
MONGODB_TIMEOUT = int(os.getenv("MONGODB_TIMEOUT", "5000")) # milliseconds
|
| 24 |
|
| 25 |
# Configuration for ETA API
|
| 26 |
-
ETA_API_BASE_URL = os.getenv("ETA_API_BASE_URL", "
|
| 27 |
ETA_API_TIMEOUT = int(os.getenv("ETA_API_TIMEOUT", "10")) # seconds
|
| 28 |
|
| 29 |
# MongoDB client singleton
|
|
|
|
| 17 |
logger = logging.getLogger(__name__)
|
| 18 |
|
| 19 |
# Configuration for MongoDB
|
| 20 |
+
MONGODB_URI = os.getenv("MONGODB_URI", "mongodb+srv://nivakaran:Pk3XVsGvtqcVDf04@cluster0.6yoqtds.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0")
|
| 21 |
+
MONGODB_DATABASE = os.getenv("MONGODB_DATABASE", "test")
|
| 22 |
MONGODB_COLLECTION = os.getenv("MONGODB_COLLECTION", "parcels")
|
| 23 |
MONGODB_TIMEOUT = int(os.getenv("MONGODB_TIMEOUT", "5000")) # milliseconds
|
| 24 |
|
| 25 |
# Configuration for ETA API
|
| 26 |
+
ETA_API_BASE_URL = os.getenv("ETA_API_BASE_URL", "https://nivakaran-eta-service.hf.space")
|
| 27 |
ETA_API_TIMEOUT = int(os.getenv("ETA_API_TIMEOUT", "10")) # seconds
|
| 28 |
|
| 29 |
# MongoDB client singleton
|
uv.lock
CHANGED
|
@@ -494,6 +494,15 @@ wheels = [
|
|
| 494 |
{ url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" },
|
| 495 |
]
|
| 496 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 497 |
[[package]]
|
| 498 |
name = "fastapi"
|
| 499 |
version = "0.116.1"
|
|
@@ -543,6 +552,19 @@ wheels = [
|
|
| 543 |
{ url = "https://files.pythonhosted.org/packages/ec/f9/7f9263c5695f4bd0023734af91bedb2ff8209e8de6ead162f35d8dc762fd/flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c", size = 103308, upload-time = "2025-08-19T21:03:19.499Z" },
|
| 544 |
]
|
| 545 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 546 |
[[package]]
|
| 547 |
name = "forbiddenfruit"
|
| 548 |
version = "0.1.4"
|
|
@@ -1953,6 +1975,67 @@ wheels = [
|
|
| 1953 |
{ url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" },
|
| 1954 |
]
|
| 1955 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1956 |
[[package]]
|
| 1957 |
name = "python-dateutil"
|
| 1958 |
version = "2.9.0.post0"
|
|
@@ -2343,6 +2426,7 @@ source = { virtual = "." }
|
|
| 2343 |
dependencies = [
|
| 2344 |
{ name = "fastapi" },
|
| 2345 |
{ name = "flask" },
|
|
|
|
| 2346 |
{ name = "gradio" },
|
| 2347 |
{ name = "langchain" },
|
| 2348 |
{ name = "langchain-community" },
|
|
@@ -2350,6 +2434,9 @@ dependencies = [
|
|
| 2350 |
{ name = "langchain-groq" },
|
| 2351 |
{ name = "langgraph" },
|
| 2352 |
{ name = "langgraph-cli", extra = ["inmem"] },
|
|
|
|
|
|
|
|
|
|
| 2353 |
{ name = "streamlit" },
|
| 2354 |
{ name = "tavily-python" },
|
| 2355 |
{ name = "uuid" },
|
|
@@ -2361,6 +2448,7 @@ dependencies = [
|
|
| 2361 |
requires-dist = [
|
| 2362 |
{ name = "fastapi", specifier = ">=0.116.1" },
|
| 2363 |
{ name = "flask", specifier = ">=3.1.2" },
|
|
|
|
| 2364 |
{ name = "gradio", specifier = ">=5.49.1" },
|
| 2365 |
{ name = "langchain", specifier = ">=0.3.27" },
|
| 2366 |
{ name = "langchain-community", specifier = ">=0.3.27" },
|
|
@@ -2368,6 +2456,9 @@ requires-dist = [
|
|
| 2368 |
{ name = "langchain-groq", specifier = ">=0.3.7" },
|
| 2369 |
{ name = "langgraph", specifier = ">=0.6.6" },
|
| 2370 |
{ name = "langgraph-cli", extras = ["inmem"], specifier = ">=0.3.8" },
|
|
|
|
|
|
|
|
|
|
| 2371 |
{ name = "streamlit", specifier = ">=1.48.1" },
|
| 2372 |
{ name = "tavily-python", specifier = ">=0.7.11" },
|
| 2373 |
{ name = "uuid", specifier = ">=1.30" },
|
|
|
|
| 494 |
{ url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" },
|
| 495 |
]
|
| 496 |
|
| 497 |
+
[[package]]
|
| 498 |
+
name = "dnspython"
|
| 499 |
+
version = "2.8.0"
|
| 500 |
+
source = { registry = "https://pypi.org/simple" }
|
| 501 |
+
sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload-time = "2025-09-07T18:58:00.022Z" }
|
| 502 |
+
wheels = [
|
| 503 |
+
{ url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" },
|
| 504 |
+
]
|
| 505 |
+
|
| 506 |
[[package]]
|
| 507 |
name = "fastapi"
|
| 508 |
version = "0.116.1"
|
|
|
|
| 552 |
{ url = "https://files.pythonhosted.org/packages/ec/f9/7f9263c5695f4bd0023734af91bedb2ff8209e8de6ead162f35d8dc762fd/flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c", size = 103308, upload-time = "2025-08-19T21:03:19.499Z" },
|
| 553 |
]
|
| 554 |
|
| 555 |
+
[[package]]
|
| 556 |
+
name = "flask-cors"
|
| 557 |
+
version = "6.0.1"
|
| 558 |
+
source = { registry = "https://pypi.org/simple" }
|
| 559 |
+
dependencies = [
|
| 560 |
+
{ name = "flask" },
|
| 561 |
+
{ name = "werkzeug" },
|
| 562 |
+
]
|
| 563 |
+
sdist = { url = "https://files.pythonhosted.org/packages/76/37/bcfa6c7d5eec777c4c7cf45ce6b27631cebe5230caf88d85eadd63edd37a/flask_cors-6.0.1.tar.gz", hash = "sha256:d81bcb31f07b0985be7f48406247e9243aced229b7747219160a0559edd678db", size = 13463, upload-time = "2025-06-11T01:32:08.518Z" }
|
| 564 |
+
wheels = [
|
| 565 |
+
{ url = "https://files.pythonhosted.org/packages/17/f8/01bf35a3afd734345528f98d0353f2a978a476528ad4d7e78b70c4d149dd/flask_cors-6.0.1-py3-none-any.whl", hash = "sha256:c7b2cbfb1a31aa0d2e5341eea03a6805349f7a61647daee1a15c46bbe981494c", size = 13244, upload-time = "2025-06-11T01:32:07.352Z" },
|
| 566 |
+
]
|
| 567 |
+
|
| 568 |
[[package]]
|
| 569 |
name = "forbiddenfruit"
|
| 570 |
version = "0.1.4"
|
|
|
|
| 1975 |
{ url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" },
|
| 1976 |
]
|
| 1977 |
|
| 1978 |
+
[[package]]
|
| 1979 |
+
name = "pymongo"
|
| 1980 |
+
version = "4.15.3"
|
| 1981 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1982 |
+
dependencies = [
|
| 1983 |
+
{ name = "dnspython" },
|
| 1984 |
+
]
|
| 1985 |
+
sdist = { url = "https://files.pythonhosted.org/packages/9d/7b/a709c85dc716eb85b69f71a4bb375cf1e72758a7e872103f27551243319c/pymongo-4.15.3.tar.gz", hash = "sha256:7a981271347623b5319932796690c2d301668ac3a1965974ac9f5c3b8a22cea5", size = 2470801, upload-time = "2025-10-07T21:57:50.384Z" }
|
| 1986 |
+
wheels = [
|
| 1987 |
+
{ url = "https://files.pythonhosted.org/packages/73/04/3dbc426c5868961d8308f19750243f8472f587f5f8a5029ce6953ba74b82/pymongo-4.15.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:39a13d8f7141294404ce46dfbabb2f2d17e9b1192456651ae831fa351f86fbeb", size = 865889, upload-time = "2025-10-07T21:56:14.165Z" },
|
| 1988 |
+
{ url = "https://files.pythonhosted.org/packages/8c/39/7f7652f53dd0eb0c4c3420a175183da757e9c53f9a2bf3ebc589758a1b9e/pymongo-4.15.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:17d13458baf4a6a9f2e787d95adf8ec50d412accb9926a044bd1c41029c323b2", size = 866230, upload-time = "2025-10-07T21:56:15.587Z" },
|
| 1989 |
+
{ url = "https://files.pythonhosted.org/packages/6a/0b/84e119e6bab7b19cf4fa1ebb9b4c29bf6c0e76521ed8221b44e3f94a3a37/pymongo-4.15.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:fe4bcb8acfb288e238190397d4a699aeb4adb70e8545a6f4e44f99d4e8096ab1", size = 1429788, upload-time = "2025-10-07T21:56:17.362Z" },
|
| 1990 |
+
{ url = "https://files.pythonhosted.org/packages/30/39/9905fcb99903de6ac8483114d1c85efe56bc5df735857bdfcc372cf8a3ec/pymongo-4.15.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d09d895c7f08bcbed4d2e96a00e52e9e545ae5a37b32d2dc10099b205a21fc6d", size = 1456758, upload-time = "2025-10-07T21:56:18.841Z" },
|
| 1991 |
+
{ url = "https://files.pythonhosted.org/packages/08/58/3c3ac32b8d6ebb654083d53f58e4621cd4c7f306b3b85acef667b80acf08/pymongo-4.15.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:21c0a95a4db72562fd0805e2f76496bf432ba2e27a5651f4b9c670466260c258", size = 1514666, upload-time = "2025-10-07T21:56:20.488Z" },
|
| 1992 |
+
{ url = "https://files.pythonhosted.org/packages/19/e2/52f41de224218dc787b7e1187a1ca1a51946dcb979ee553ec917745ccd8d/pymongo-4.15.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:89e45d7fa987f4e246cdf43ff001e3f911f73eb19ba9dabc2a6d80df5c97883b", size = 1500703, upload-time = "2025-10-07T21:56:21.874Z" },
|
| 1993 |
+
{ url = "https://files.pythonhosted.org/packages/34/0d/a5271073339ba6fc8a5f4e3a62baaa5dd8bf35246c37b512317e2a22848e/pymongo-4.15.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1246a82fa6dd73ac2c63aa7e463752d5d1ca91e0c7a23396b78f21273befd3a7", size = 1452013, upload-time = "2025-10-07T21:56:23.526Z" },
|
| 1994 |
+
{ url = "https://files.pythonhosted.org/packages/a0/3b/f39b721ca0db9f0820e12eeffec84eb87b7502abb13a685226c5434f9618/pymongo-4.15.3-cp311-cp311-win32.whl", hash = "sha256:9483521c03f6017336f54445652ead3145154e8d3ea06418e52cea57fee43292", size = 844461, upload-time = "2025-10-07T21:56:24.867Z" },
|
| 1995 |
+
{ url = "https://files.pythonhosted.org/packages/12/72/e58b9df862edbf238a1d71fa32749a6eaf30a3f60289602681351c29093a/pymongo-4.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:c57dad9f289d72af1d7c47a444c4d9fa401f951cedbbcc54c7dd0c2107d6d786", size = 859200, upload-time = "2025-10-07T21:56:26.393Z" },
|
| 1996 |
+
{ url = "https://files.pythonhosted.org/packages/81/8f/64c15df5e87de759412c3b962950561202c9b39e5cc604061e056043e163/pymongo-4.15.3-cp311-cp311-win_arm64.whl", hash = "sha256:2fd3b99520f2bb013960ac29dece1b43f2f1b6d94351ca33ba1b1211ecf79a09", size = 848372, upload-time = "2025-10-07T21:56:27.994Z" },
|
| 1997 |
+
{ url = "https://files.pythonhosted.org/packages/5b/92/7491a2046b41bfd3641da0a23529c88e27eac67c681de3cd9fbef4113d38/pymongo-4.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bd0497c564b0ae34fb816464ffc09986dd9ca29e2772a0f7af989e472fecc2ad", size = 920953, upload-time = "2025-10-07T21:56:29.737Z" },
|
| 1998 |
+
{ url = "https://files.pythonhosted.org/packages/ce/0c/98864cbfa8fbc954ae7480c91a35f0dc4e3339dab0c55f669e4dbeac808f/pymongo-4.15.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:292fd5a3f045751a823a54cdea75809b2216a62cc5f74a1a96b337db613d46a8", size = 920690, upload-time = "2025-10-07T21:56:31.094Z" },
|
| 1999 |
+
{ url = "https://files.pythonhosted.org/packages/b8/a6/7dc8043a10a1c30153be2d6847ab37911b169d53a6b05d21871b35b3de82/pymongo-4.15.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:959ef69c5e687b6b749fbf2140c7062abdb4804df013ae0507caabf30cba6875", size = 1690357, upload-time = "2025-10-07T21:56:32.466Z" },
|
| 2000 |
+
{ url = "https://files.pythonhosted.org/packages/0b/96/3d85da60094d2022217f2849e1b61a79af9d51ed8d05455d7413d68ab88e/pymongo-4.15.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de3bc878c3be54ae41c2cabc9e9407549ed4fec41f4e279c04e840dddd7c630c", size = 1726102, upload-time = "2025-10-07T21:56:33.952Z" },
|
| 2001 |
+
{ url = "https://files.pythonhosted.org/packages/ac/fd/dfd6ddee0330171f2f52f7e5344c02d25d2dd8dfa95ce0e5e413579f52fd/pymongo-4.15.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07bcc36d11252f24fe671e7e64044d39a13d997b0502c6401161f28cc144f584", size = 1800630, upload-time = "2025-10-07T21:56:35.632Z" },
|
| 2002 |
+
{ url = "https://files.pythonhosted.org/packages/1c/3b/e19a5f2de227ff720bc76c41d166d508e6fbe1096ba1ad18ade43b790b5e/pymongo-4.15.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b63bac343b79bd209e830aac1f5d9d552ff415f23a924d3e51abbe3041265436", size = 1785478, upload-time = "2025-10-07T21:56:37.39Z" },
|
| 2003 |
+
{ url = "https://files.pythonhosted.org/packages/75/d2/927c9b1383c6708fc50c3700ecb1c2876e67dde95ad5fb1d29d04e8ac083/pymongo-4.15.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b33d59bf6fa1ca1d7d96d4fccff51e41312358194190d53ef70a84c070f5287e", size = 1718548, upload-time = "2025-10-07T21:56:38.754Z" },
|
| 2004 |
+
{ url = "https://files.pythonhosted.org/packages/fe/10/a63592d1445f894b18d04865c2d4c235e2261f3d63f31f45ba4fe0486ec4/pymongo-4.15.3-cp312-cp312-win32.whl", hash = "sha256:b3a0ec660d61efb91c16a5962ec937011fe3572c4338216831f102e53d294e5c", size = 891301, upload-time = "2025-10-07T21:56:40.043Z" },
|
| 2005 |
+
{ url = "https://files.pythonhosted.org/packages/be/ba/a8fdc43044408ed769c83108fa569aa52ee87968bdbf1e2ea142b109c268/pymongo-4.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:f6b0513e5765fdde39f36e6a29a36c67071122b5efa748940ae51075beb5e4bc", size = 910928, upload-time = "2025-10-07T21:56:41.401Z" },
|
| 2006 |
+
{ url = "https://files.pythonhosted.org/packages/b4/61/d53c17fdfaa9149864ab1fa84436ae218b72c969f00e4c124e017e461ce6/pymongo-4.15.3-cp312-cp312-win_arm64.whl", hash = "sha256:c4fdd8e6eab8ff77c1c8041792b5f760d48508623cd10b50d5639e73f1eec049", size = 896347, upload-time = "2025-10-07T21:56:43.271Z" },
|
| 2007 |
+
{ url = "https://files.pythonhosted.org/packages/46/a4/e1ce9d408a1c1bcb1554ff61251b108e16cefd7db91b33faa2afc92294de/pymongo-4.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a47a3218f7900f65bf0f36fcd1f2485af4945757360e7e143525db9d715d2010", size = 975329, upload-time = "2025-10-07T21:56:44.674Z" },
|
| 2008 |
+
{ url = "https://files.pythonhosted.org/packages/74/3c/6796f653d22be43cc0b13c07dbed84133eebbc334ebed4426459b7250163/pymongo-4.15.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:09440e78dff397b2f34a624f445ac8eb44c9756a2688b85b3bf344d351d198e1", size = 975129, upload-time = "2025-10-07T21:56:46.104Z" },
|
| 2009 |
+
{ url = "https://files.pythonhosted.org/packages/88/33/22453dbfe11031e89c9cbdfde6405c03960daaf5da1b4dfdd458891846b5/pymongo-4.15.3-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:97f9babdb98c31676f97d468f7fe2dc49b8a66fb6900effddc4904c1450196c8", size = 1950979, upload-time = "2025-10-07T21:56:47.877Z" },
|
| 2010 |
+
{ url = "https://files.pythonhosted.org/packages/ba/07/094598e403112e2410a3376fb7845c69e2ec2dfc5ab5cc00b29dc2d26559/pymongo-4.15.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:71413cd8f091ae25b1fec3af7c2e531cf9bdb88ce4079470e64835f6a664282a", size = 1995271, upload-time = "2025-10-07T21:56:49.396Z" },
|
| 2011 |
+
{ url = "https://files.pythonhosted.org/packages/47/9a/29e44f3dee68defc56e50ed7c9d3802ebf967ab81fefb175d8d729c0f276/pymongo-4.15.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:76a8d4de8dceb69f6e06736198ff6f7e1149515ef946f192ff2594d2cc98fc53", size = 2086587, upload-time = "2025-10-07T21:56:50.896Z" },
|
| 2012 |
+
{ url = "https://files.pythonhosted.org/packages/ff/d5/e9ff16aa57f671349134475b904fd431e7b86e152b01a949aef4f254b2d5/pymongo-4.15.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:77353978be9fc9e5fe56369682efed0aac5f92a2a1570704d62b62a3c9e1a24f", size = 2070201, upload-time = "2025-10-07T21:56:52.425Z" },
|
| 2013 |
+
{ url = "https://files.pythonhosted.org/packages/d6/a3/820772c0b2bbb671f253cfb0bede4cf694a38fb38134f3993d491e23ec11/pymongo-4.15.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9897a837677e3814873d0572f7e5d53c23ce18e274f3b5b87f05fb6eea22615b", size = 1985260, upload-time = "2025-10-07T21:56:54.56Z" },
|
| 2014 |
+
{ url = "https://files.pythonhosted.org/packages/6e/7b/365ac821aefad7e8d36a4bc472a94429449aade1ccb7805d9ca754df5081/pymongo-4.15.3-cp313-cp313-win32.whl", hash = "sha256:d66da207ccb0d68c5792eaaac984a0d9c6c8ec609c6bcfa11193a35200dc5992", size = 938122, upload-time = "2025-10-07T21:56:55.993Z" },
|
| 2015 |
+
{ url = "https://files.pythonhosted.org/packages/80/f3/5ca27e1765fa698c677771a1c0e042ef193e207c15f5d32a21fa5b13d8c3/pymongo-4.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:52f40c4b8c00bc53d4e357fe0de13d031c4cddb5d201e1a027db437e8d2887f8", size = 962610, upload-time = "2025-10-07T21:56:57.397Z" },
|
| 2016 |
+
{ url = "https://files.pythonhosted.org/packages/48/7c/42f0b6997324023e94939f8f32b9a8dd928499f4b5d7b4412905368686b5/pymongo-4.15.3-cp313-cp313-win_arm64.whl", hash = "sha256:fb384623ece34db78d445dd578a52d28b74e8319f4d9535fbaff79d0eae82b3d", size = 944300, upload-time = "2025-10-07T21:56:58.969Z" },
|
| 2017 |
+
{ url = "https://files.pythonhosted.org/packages/e7/a3/d8aaf9c243ce1319bd2498004a9acccfcfb35a3ef9851abb856993d95255/pymongo-4.15.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:dcff15b9157c16bc796765d4d3d151df669322acfb0357e4c3ccd056153f0ff4", size = 1029873, upload-time = "2025-10-07T21:57:00.759Z" },
|
| 2018 |
+
{ url = "https://files.pythonhosted.org/packages/64/10/91fd7791425ed3b56cbece6c23a36fb2696706a695655d8ea829e5e23c3a/pymongo-4.15.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1f681722c9f27e86c49c2e8a838e61b6ecf2285945fd1798bd01458134257834", size = 1029611, upload-time = "2025-10-07T21:57:02.488Z" },
|
| 2019 |
+
{ url = "https://files.pythonhosted.org/packages/bb/9c/d9cf8d8a181f96877bca7bdec3e6ce135879d5e3d78694ea465833c53a3f/pymongo-4.15.3-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2c96dde79bdccd167b930a709875b0cd4321ac32641a490aebfa10bdcd0aa99b", size = 2211827, upload-time = "2025-10-07T21:57:03.907Z" },
|
| 2020 |
+
{ url = "https://files.pythonhosted.org/packages/c2/40/12703964305216c155284100124222eaa955300a07d426c6e0ba3c9cbade/pymongo-4.15.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d2d4ca446348d850ac4a5c3dc603485640ae2e7805dbb90765c3ba7d79129b37", size = 2264654, upload-time = "2025-10-07T21:57:05.41Z" },
|
| 2021 |
+
{ url = "https://files.pythonhosted.org/packages/0f/70/bf3c18b5d0cae0b9714158b210b07b5891a875eb1c503271cfe045942fd3/pymongo-4.15.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7c0fd3de3a12ff0a8113a3f64cedb01f87397ab8eaaffa88d7f18ca66cd39385", size = 2371830, upload-time = "2025-10-07T21:57:06.9Z" },
|
| 2022 |
+
{ url = "https://files.pythonhosted.org/packages/21/6d/2dfaed2ae66304ab842d56ed9a1bd2706ca0ecf97975b328a5eeceb2a4c0/pymongo-4.15.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e84dec392cf5f72d365e0aac73f627b0a3170193ebb038c3f7e7df11b7983ee7", size = 2351878, upload-time = "2025-10-07T21:57:08.92Z" },
|
| 2023 |
+
{ url = "https://files.pythonhosted.org/packages/17/ed/fe46ff9adfa6dc11ad2e0694503adfc98f40583cfcc6db4dbaf582f0e357/pymongo-4.15.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d4b01a48369ea6d5bc83fea535f56279f806aa3e4991189f0477696dd736289", size = 2251356, upload-time = "2025-10-07T21:57:10.51Z" },
|
| 2024 |
+
{ url = "https://files.pythonhosted.org/packages/12/c4/2e1a10b1e9bca9c106f2dc1b89d4ad70c63d387c194b3a1bfcca552b5a3f/pymongo-4.15.3-cp314-cp314-win32.whl", hash = "sha256:3561fa96c3123275ec5ccf919e595547e100c412ec0894e954aa0da93ecfdb9e", size = 992878, upload-time = "2025-10-07T21:57:12.119Z" },
|
| 2025 |
+
{ url = "https://files.pythonhosted.org/packages/98/b5/14aa417a44ea86d4c31de83b26f6e6793f736cd60e7e7fda289ce5184bdf/pymongo-4.15.3-cp314-cp314-win_amd64.whl", hash = "sha256:9df2db6bd91b07400879b6ec89827004c0c2b55fc606bb62db93cafb7677c340", size = 1021209, upload-time = "2025-10-07T21:57:13.686Z" },
|
| 2026 |
+
{ url = "https://files.pythonhosted.org/packages/94/9f/1097c6824fa50a4ffb11ba5194d2a9ef68d5509dd342e32ddb697d2efe4e/pymongo-4.15.3-cp314-cp314-win_arm64.whl", hash = "sha256:ff99864085d2c7f4bb672c7167680ceb7d273e9a93c1a8074c986a36dbb71cc6", size = 1000618, upload-time = "2025-10-07T21:57:15.212Z" },
|
| 2027 |
+
{ url = "https://files.pythonhosted.org/packages/ad/31/37c76607a4f793f4491611741fa7a7c4238b956f48c4a9505cea0b5cf7ef/pymongo-4.15.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:ffe217d2502f3fba4e2b0dc015ce3b34f157b66dfe96835aa64432e909dd0d95", size = 1086576, upload-time = "2025-10-07T21:57:16.742Z" },
|
| 2028 |
+
{ url = "https://files.pythonhosted.org/packages/92/b2/6d17d279cdd293eeeb0c9d5baeb4f8cdebb45354fd81cfcef2d1c69303ab/pymongo-4.15.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:390c4954c774eda280898e73aea36482bf20cba3ecb958dbb86d6a68b9ecdd68", size = 1086656, upload-time = "2025-10-07T21:57:18.774Z" },
|
| 2029 |
+
{ url = "https://files.pythonhosted.org/packages/55/fd/c5da8619beca207d7e6231f24ed269cb537c5311dad59fd9f2ef7d43204a/pymongo-4.15.3-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7dd2a49f088890ca08930bbf96121443b48e26b02b84ba0a3e1ae2bf2c5a9b48", size = 2531646, upload-time = "2025-10-07T21:57:20.63Z" },
|
| 2030 |
+
{ url = "https://files.pythonhosted.org/packages/93/8f/66a7e12b874f41eb205f352b3a719e5a964b5ba103996f6ac45e80560111/pymongo-4.15.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f6feb678f26171f2a6b2cbb340949889154c7067972bd4cc129b62161474f08", size = 2603799, upload-time = "2025-10-07T21:57:22.591Z" },
|
| 2031 |
+
{ url = "https://files.pythonhosted.org/packages/10/98/baf0d1f8016087500899cc4ae14e591f29b016c643e99ab332fcafe6f7bc/pymongo-4.15.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:446417a34ff6c2411ce3809e17ce9a67269c9f1cb4966b01e49e0c590cc3c6b3", size = 2725238, upload-time = "2025-10-07T21:57:24.091Z" },
|
| 2032 |
+
{ url = "https://files.pythonhosted.org/packages/c9/a2/112d8d3882d6e842f501e166fbe08dfc2bc9a35f8773cbcaa804f7991043/pymongo-4.15.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:cfa4a0a0f024a0336640e1201994e780a17bda5e6a7c0b4d23841eb9152e868b", size = 2704837, upload-time = "2025-10-07T21:57:25.626Z" },
|
| 2033 |
+
{ url = "https://files.pythonhosted.org/packages/38/fe/043a9aac7b3fba5b8e216f48359bd18fdbe46a4d93b081786f773b25e997/pymongo-4.15.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b03db2fe37c950aff94b29ded5c349b23729bccd90a0a5907bbf807d8c77298", size = 2582294, upload-time = "2025-10-07T21:57:27.221Z" },
|
| 2034 |
+
{ url = "https://files.pythonhosted.org/packages/5b/fe/7a6a6b331d9f2024ab171028ab53d5d9026959b1d713fe170be591a4d9a8/pymongo-4.15.3-cp314-cp314t-win32.whl", hash = "sha256:e7cde58ef6470c0da922b65e885fb1ffe04deef81e526bd5dea429290fa358ca", size = 1043993, upload-time = "2025-10-07T21:57:28.727Z" },
|
| 2035 |
+
{ url = "https://files.pythonhosted.org/packages/70/c8/bc64321711e19bd48ea3371f0082f10295c433833245d73e7606d3b9afbe/pymongo-4.15.3-cp314-cp314t-win_amd64.whl", hash = "sha256:fae552767d8e5153ed498f1bca92d905d0d46311d831eefb0f06de38f7695c95", size = 1078481, upload-time = "2025-10-07T21:57:30.372Z" },
|
| 2036 |
+
{ url = "https://files.pythonhosted.org/packages/39/31/2bb2003bb978eb25dfef7b5f98e1c2d4a86e973e63b367cc508a9308d31c/pymongo-4.15.3-cp314-cp314t-win_arm64.whl", hash = "sha256:47ffb068e16ae5e43580d5c4e3b9437f05414ea80c32a1e5cac44a835859c259", size = 1051179, upload-time = "2025-10-07T21:57:31.829Z" },
|
| 2037 |
+
]
|
| 2038 |
+
|
| 2039 |
[[package]]
|
| 2040 |
name = "python-dateutil"
|
| 2041 |
version = "2.9.0.post0"
|
|
|
|
| 2426 |
dependencies = [
|
| 2427 |
{ name = "fastapi" },
|
| 2428 |
{ name = "flask" },
|
| 2429 |
+
{ name = "flask-cors" },
|
| 2430 |
{ name = "gradio" },
|
| 2431 |
{ name = "langchain" },
|
| 2432 |
{ name = "langchain-community" },
|
|
|
|
| 2434 |
{ name = "langchain-groq" },
|
| 2435 |
{ name = "langgraph" },
|
| 2436 |
{ name = "langgraph-cli", extra = ["inmem"] },
|
| 2437 |
+
{ name = "pymongo" },
|
| 2438 |
+
{ name = "python-dotenv" },
|
| 2439 |
+
{ name = "requests" },
|
| 2440 |
{ name = "streamlit" },
|
| 2441 |
{ name = "tavily-python" },
|
| 2442 |
{ name = "uuid" },
|
|
|
|
| 2448 |
requires-dist = [
|
| 2449 |
{ name = "fastapi", specifier = ">=0.116.1" },
|
| 2450 |
{ name = "flask", specifier = ">=3.1.2" },
|
| 2451 |
+
{ name = "flask-cors", specifier = ">=6.0.1" },
|
| 2452 |
{ name = "gradio", specifier = ">=5.49.1" },
|
| 2453 |
{ name = "langchain", specifier = ">=0.3.27" },
|
| 2454 |
{ name = "langchain-community", specifier = ">=0.3.27" },
|
|
|
|
| 2456 |
{ name = "langchain-groq", specifier = ">=0.3.7" },
|
| 2457 |
{ name = "langgraph", specifier = ">=0.6.6" },
|
| 2458 |
{ name = "langgraph-cli", extras = ["inmem"], specifier = ">=0.3.8" },
|
| 2459 |
+
{ name = "pymongo", specifier = ">=4.15.3" },
|
| 2460 |
+
{ name = "python-dotenv", specifier = ">=1.1.1" },
|
| 2461 |
+
{ name = "requests", specifier = ">=2.32.5" },
|
| 2462 |
{ name = "streamlit", specifier = ">=1.48.1" },
|
| 2463 |
{ name = "tavily-python", specifier = ">=0.7.11" },
|
| 2464 |
{ name = "uuid", specifier = ">=1.30" },
|