Setup packaged action with Docker
This commit is contained in:
parent
d8edab07db
commit
871ff77b16
12
Dockerfile
Normal file
12
Dockerfile
Normal file
@ -0,0 +1,12 @@
|
||||
FROM python:3.11-bookworm
|
||||
|
||||
RUN mkdir /app
|
||||
COPY ./requirements.txt /app/requirements.txt
|
||||
WORKDIR /app
|
||||
|
||||
RUN pip install -r requirements.txt && \
|
||||
playwright install --with-deps firefox
|
||||
|
||||
COPY . /app
|
||||
|
||||
ENTRYPOINT ["python", "main.py"]
|
53
action.yml
Normal file
53
action.yml
Normal file
@ -0,0 +1,53 @@
|
||||
name: "Review a Schematic with an LLM"
|
||||
description: >
|
||||
Use an LLM to review a schematic design.
|
||||
|
||||
Note: You must set an environment variable with an API key for the LLM. This
|
||||
must be `OPENAI_API_KEY` for GPT models, or `ANTHROPIC_API_KEY` for Claude
|
||||
models.
|
||||
|
||||
inputs:
|
||||
json_path:
|
||||
description: "Path to the JSON file containing the schematic design."
|
||||
required: true
|
||||
|
||||
svg_path:
|
||||
description: "Path to the SVG file containing the schematic design."
|
||||
required: true
|
||||
|
||||
netlist_path:
|
||||
description: >
|
||||
Path to the netlist file. Can be set to an empty file to review without
|
||||
netlist.
|
||||
required: true
|
||||
|
||||
output_path:
|
||||
description: "Path to the output file."
|
||||
required: true
|
||||
|
||||
model:
|
||||
description: "The model used by the action."
|
||||
required: false
|
||||
default: "__default__"
|
||||
|
||||
log_level:
|
||||
description: The log level used by the action. Used for debugging.
|
||||
required: false
|
||||
default: "INFO"
|
||||
|
||||
runs:
|
||||
using: "docker"
|
||||
image: "Dockerfile"
|
||||
args:
|
||||
- "--json-path"
|
||||
- "${{ github.workspace }}/${{ inputs.json_path }}"
|
||||
- "--svg-path"
|
||||
- "${{ github.workspace }}/${{ inputs.svg_path }}"
|
||||
- "--netlist-path"
|
||||
- "${{ github.workspace }}/${{ inputs.netlist_path }}"
|
||||
- "--output-path"
|
||||
- "${{ github.workspace }}/${{ inputs.output_path }}"
|
||||
- "--model"
|
||||
- "${{ inputs.model }}"
|
||||
- "--log-level"
|
||||
- "${{ inputs.log_level }}"
|
14
cspell.json
Normal file
14
cspell.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"version": "0.2",
|
||||
"ignorePaths": [
|
||||
],
|
||||
"useGitignore": true,
|
||||
"minWordLength": 4,
|
||||
"dictionaryDefinitions": [],
|
||||
"dictionaries": [],
|
||||
"words": [
|
||||
"netlist",
|
||||
"levelname",
|
||||
"multipage"
|
||||
]
|
||||
}
|
@ -1,5 +1,3 @@
|
||||
# cSpell:words levelname
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import logging
|
||||
|
22
lib.py
22
lib.py
@ -1,10 +1,10 @@
|
||||
# cSpell:words polylines beziers multipage
|
||||
# cSpell:words polylines beziers
|
||||
|
||||
|
||||
from typing import Any
|
||||
from xml.etree import ElementTree as ET
|
||||
|
||||
from playwright.sync_api import sync_playwright
|
||||
from playwright.async_api import async_playwright
|
||||
|
||||
|
||||
def filter_component_details(json: dict) -> dict:
|
||||
@ -174,16 +174,16 @@ def split_multipage_svg(svg_text: str) -> list[str]:
|
||||
return output_files
|
||||
|
||||
|
||||
def render_svg(svg_path: str, output_path: str) -> None:
|
||||
async def render_svg(svg_path: str, output_path: str) -> None:
|
||||
"""
|
||||
Render an SVG file to a PNG image using Playwright.
|
||||
"""
|
||||
|
||||
with sync_playwright() as p:
|
||||
browser = p.firefox.launch()
|
||||
context = browser.new_context(viewport={"width": 1920, "height": 1080})
|
||||
page = context.new_page()
|
||||
page.goto(f"file://{svg_path}")
|
||||
page.screenshot(path=output_path, full_page=False)
|
||||
context.close()
|
||||
browser.close()
|
||||
async with async_playwright() as p:
|
||||
browser = await p.firefox.launch()
|
||||
context = await browser.new_context(viewport={"width": 1920, "height": 1080})
|
||||
page = await context.new_page()
|
||||
await page.goto(f"file://{svg_path}")
|
||||
await page.screenshot(path=output_path, full_page=False)
|
||||
await context.close()
|
||||
await browser.close()
|
||||
|
156
main.py
156
main.py
@ -1,21 +1,30 @@
|
||||
# cSpell:words anthropic claude sonnet levelname netlist multipage
|
||||
|
||||
import argparse
|
||||
import asyncio
|
||||
import enum
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from pydantic_ai import Agent, BinaryContent
|
||||
from pydantic_ai import Agent, BinaryContent, exceptions
|
||||
|
||||
from lib import filter_schematic_page, render_svg, split_multipage_svg
|
||||
|
||||
VERSION = (0, 2, 0)
|
||||
|
||||
SLEEP_WHEN_RATE_LIMITED = 60
|
||||
"""
|
||||
Time in seconds to sleep between pages to when hitting a rate limit.
|
||||
"""
|
||||
|
||||
RATE_LIMIT_ATTEMPTS = 3
|
||||
"""
|
||||
Number of attempts to make when hitting a rate limit.
|
||||
"""
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
handler = logging.StreamHandler()
|
||||
formatter = logging.Formatter("%(asctime)s [%(levelname)s] %(message)s")
|
||||
@ -32,18 +41,28 @@ proceeding in a page-by-page manner. For this page, you have access to:
|
||||
connections across ALL pages;
|
||||
2. A high-resolution image of the schematic page you are reviewing.
|
||||
3. A JSON representation of the schematic page you are reviewing.
|
||||
4. Written notes ("Memory") from your review so far.
|
||||
4. Written notes (memory) from your review so far.
|
||||
|
||||
Your goal is to review this page, keeping in mind the overall design, your
|
||||
knowledge of best practices in schematic design, and your notes so far. Once you
|
||||
review the page, you should respond with the new notes for yourself to review
|
||||
the next page. Note that you'll lose the current page's memory once you move on
|
||||
to the next page, so the notes should include everything you need to remember
|
||||
from the current memory as well.
|
||||
knowledge of best practices in schematic design, and your memory so far. The
|
||||
netlist may be blank. If it is, review the schematic without considering the
|
||||
netlist.
|
||||
|
||||
Once you review the page, you should respond with extensive notes considering
|
||||
everything you have seen so far and the new page you are reviewing. Your
|
||||
response will be your memory for the next page. Note that you'll lose your
|
||||
current memory once you move on to the next page, so your memory should include
|
||||
everything you need to remember from the current notes as well. You should NOT
|
||||
provide feedback on the overall design yet. Be as detailed as possible in your
|
||||
memory. Especially retain references to specific elements of the schematic
|
||||
which you may need to refer back to, such as designators of components or pins,
|
||||
net names, etc.
|
||||
|
||||
Eventually, once you have reviewed all pages, you will provide a final review
|
||||
covering the entire schematic, so make sure to keep track of all the important
|
||||
issues you find.
|
||||
issues you find. At that time, you will only have access to the netlist and your
|
||||
written notes, so you MUST ensure that your notes are detailed enough to cover
|
||||
all the issues you find, with potential suggestions for solutions.
|
||||
|
||||
Notes for your review:
|
||||
|
||||
@ -60,19 +79,7 @@ Notes for your review:
|
||||
"""
|
||||
|
||||
|
||||
class StepResponse(BaseModel):
|
||||
"""
|
||||
The response type for an intermediate step in the full review flow
|
||||
"""
|
||||
|
||||
memory: str = Field(..., description="The memory to be used for the next step")
|
||||
|
||||
|
||||
step_agent = Agent(
|
||||
"anthropic:claude-3-7-sonnet-latest",
|
||||
system_prompt=STEP_PROMPT,
|
||||
result_type=StepResponse,
|
||||
)
|
||||
step_agent = Agent(system_prompt=STEP_PROMPT)
|
||||
|
||||
|
||||
class Comment(BaseModel):
|
||||
@ -138,7 +145,7 @@ design, the connections between different pages, and any issues that you have
|
||||
found. You should provide a detailed review that the junior engineer can use to
|
||||
improve the schematic.
|
||||
|
||||
Your review should be in JSON, and should include the following:
|
||||
Your review should be in markdown, and should include the following:
|
||||
|
||||
1. An overview of your review, summarizing the key issues and improvements.
|
||||
Consider this the equivalent of your top-level comment on a code review.
|
||||
@ -162,11 +169,27 @@ Notes for your review:
|
||||
4. The text in your comments MUST be in markdown.
|
||||
"""
|
||||
|
||||
final_agent = Agent(
|
||||
"anthropic:claude-3-7-sonnet-latest",
|
||||
system_prompt=FINAL_REVIEW_PROMPT,
|
||||
result_type=FinalResponse,
|
||||
)
|
||||
final_agent = Agent(system_prompt=FINAL_REVIEW_PROMPT)
|
||||
|
||||
|
||||
async def run_agent_with_retries(agent, inputs):
|
||||
attempts = 0
|
||||
result = None
|
||||
|
||||
while attempts < RATE_LIMIT_ATTEMPTS:
|
||||
try:
|
||||
result = await agent.run(inputs)
|
||||
break
|
||||
except exceptions.ModelHTTPError as e:
|
||||
if e.status_code in [429, 529]:
|
||||
attempts += 1
|
||||
logger.warning(f"Rate limited/overloaded, retrying attempt {attempts}")
|
||||
await asyncio.sleep(SLEEP_WHEN_RATE_LIMITED)
|
||||
continue
|
||||
else:
|
||||
raise e
|
||||
|
||||
return result
|
||||
|
||||
|
||||
async def main():
|
||||
@ -179,7 +202,12 @@ async def main():
|
||||
)
|
||||
arg_parser.add_argument("--netlist-path", help="Path to the netlist", required=True)
|
||||
arg_parser.add_argument(
|
||||
"--output-path", help="Path to the output JSON", required=True
|
||||
"--output-path", help="Path to the output file", required=True
|
||||
)
|
||||
arg_parser.add_argument(
|
||||
"--model",
|
||||
help="Model to use for the agent",
|
||||
default="anthropic:claude-3-5-sonnet-latest",
|
||||
)
|
||||
arg_parser.add_argument("--log-level", help="Log level", default="INFO")
|
||||
|
||||
@ -212,7 +240,7 @@ async def main():
|
||||
|
||||
with open(page_svg_path, "w") as f:
|
||||
f.write(svg_page)
|
||||
render_svg(page_svg_path, page_png_path)
|
||||
await render_svg(page_svg_path, page_png_path)
|
||||
|
||||
with open(page_json_path, "w") as f:
|
||||
page_json = filter_schematic_page(json_page)
|
||||
@ -221,45 +249,71 @@ async def main():
|
||||
|
||||
logger.info(f"Wrote page {i + 1} to {page_json_path}")
|
||||
|
||||
with open(args.netlist_path, "rb") as f:
|
||||
with open(args.netlist_path, "r") as f:
|
||||
netlist = f.read()
|
||||
|
||||
if args.model and args.model != "__default__":
|
||||
step_agent.model = args.model
|
||||
final_agent.model = args.model
|
||||
|
||||
current_memory = ""
|
||||
|
||||
for i, (page_json_path, page_png_path) in enumerate(page_paths):
|
||||
logger.info(f"Reviewing page {i + 1}/{len(page_paths)}")
|
||||
|
||||
with open(page_json_path, "rb") as f:
|
||||
with open(page_json_path, "r") as f:
|
||||
page_json = f.read()
|
||||
with open(page_png_path, "rb") as f:
|
||||
image = f.read()
|
||||
|
||||
result = await step_agent.run(
|
||||
[
|
||||
f"You are on page {i + 1} of {len(page_paths)}. Your notes so"
|
||||
f"far: {current_memory}\n The netlist, JSON and image are attached.",
|
||||
BinaryContent(data=netlist, media_type="text/plain"),
|
||||
BinaryContent(data=page_json, media_type="text/plain"),
|
||||
BinaryContent(data=image, media_type="image/png"),
|
||||
],
|
||||
)
|
||||
try:
|
||||
result = await run_agent_with_retries(
|
||||
step_agent,
|
||||
[
|
||||
f"You are on page {i + 1} of {len(page_paths)}. Your notes so"
|
||||
f"far: {current_memory}\n The netlist, JSON and image are attached.",
|
||||
f"Netlist: {netlist}",
|
||||
f"JSON: {page_json}",
|
||||
BinaryContent(data=image, media_type="image/png"),
|
||||
],
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Error running agent: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
current_memory = result.data.memory
|
||||
if result is None:
|
||||
logger.error("Could not get a response from the API. Exiting")
|
||||
sys.exit(1)
|
||||
|
||||
current_memory = result.data
|
||||
|
||||
logger.info(f"Completed review of page {i + 1}")
|
||||
logger.debug(f"Memory: {current_memory}")
|
||||
|
||||
logger.info("Completed review of all pages")
|
||||
if SLEEP_WHEN_RATE_LIMITED > 0 and i < len(page_paths) - 1:
|
||||
logger.info(f"Sleeping for {SLEEP_WHEN_RATE_LIMITED} seconds")
|
||||
await asyncio.sleep(SLEEP_WHEN_RATE_LIMITED)
|
||||
|
||||
final_result = await final_agent.run(
|
||||
[
|
||||
f"Your notes from the page reviews: {current_memory}",
|
||||
BinaryContent(data=netlist, media_type="text/plain"),
|
||||
],
|
||||
)
|
||||
logger.info("Completed review of all pages, preparing final comment.")
|
||||
|
||||
try:
|
||||
final_result = await run_agent_with_retries(
|
||||
final_agent,
|
||||
[
|
||||
f"Your notes from the page reviews: {current_memory}",
|
||||
f"Netlist: {netlist}",
|
||||
],
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"Error running agent: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
if final_result is None:
|
||||
logger.error("Rate limited too many times. Exiting.")
|
||||
sys.exit(1)
|
||||
|
||||
with open(args.output_path, "w") as f:
|
||||
f.write(final_result.data.model_dump_json())
|
||||
f.write(final_result.data)
|
||||
|
||||
temp_dir.cleanup()
|
||||
|
||||
|
474
requirements.txt
Normal file
474
requirements.txt
Normal file
@ -0,0 +1,474 @@
|
||||
# This file was autogenerated by uv via the following command:
|
||||
# uv export --format requirements-txt
|
||||
annotated-types==0.7.0 \
|
||||
--hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \
|
||||
--hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89
|
||||
anthropic==0.49.0 \
|
||||
--hash=sha256:bbc17ad4e7094988d2fa86b87753ded8dce12498f4b85fe5810f208f454a8375 \
|
||||
--hash=sha256:c09e885b0f674b9119b4f296d8508907f6cff0009bc20d5cf6b35936c40b4398
|
||||
anyio==4.9.0 \
|
||||
--hash=sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028 \
|
||||
--hash=sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c
|
||||
argcomplete==3.6.0 \
|
||||
--hash=sha256:2e4e42ec0ba2fff54b0d244d0b1623e86057673e57bafe72dda59c64bd5dee8b \
|
||||
--hash=sha256:4e3e4e10beb20e06444dbac0ac8dda650cb6349caeefe980208d3c548708bedd
|
||||
boto3==1.37.18 \
|
||||
--hash=sha256:1545c943f36db41853cdfdb6ff09c4eda9220dd95bd2fae76fc73091603525d1 \
|
||||
--hash=sha256:9b272268794172b0b8bb9fb1f3c470c3b6c0ffb92fbd4882465cc740e40fbdcd
|
||||
botocore==1.37.18 \
|
||||
--hash=sha256:99e8eefd5df6347ead15df07ce55f4e62a51ea7b54de1127522a08597923b726 \
|
||||
--hash=sha256:a8b97d217d82b3c4f6bcc906e264df7ebb51e2c6a62b3548a97cd173fb8759a1
|
||||
cachetools==5.5.2 \
|
||||
--hash=sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4 \
|
||||
--hash=sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a
|
||||
certifi==2025.1.31 \
|
||||
--hash=sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651 \
|
||||
--hash=sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe
|
||||
charset-normalizer==3.4.1 \
|
||||
--hash=sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd \
|
||||
--hash=sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601 \
|
||||
--hash=sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd \
|
||||
--hash=sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d \
|
||||
--hash=sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313 \
|
||||
--hash=sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd \
|
||||
--hash=sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa \
|
||||
--hash=sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8 \
|
||||
--hash=sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1 \
|
||||
--hash=sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2 \
|
||||
--hash=sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b \
|
||||
--hash=sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3 \
|
||||
--hash=sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f \
|
||||
--hash=sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146 \
|
||||
--hash=sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6 \
|
||||
--hash=sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9 \
|
||||
--hash=sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f \
|
||||
--hash=sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545 \
|
||||
--hash=sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b \
|
||||
--hash=sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b \
|
||||
--hash=sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9 \
|
||||
--hash=sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125 \
|
||||
--hash=sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11 \
|
||||
--hash=sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35 \
|
||||
--hash=sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda \
|
||||
--hash=sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971 \
|
||||
--hash=sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d \
|
||||
--hash=sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757 \
|
||||
--hash=sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a \
|
||||
--hash=sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886 \
|
||||
--hash=sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77 \
|
||||
--hash=sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76 \
|
||||
--hash=sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85 \
|
||||
--hash=sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7 \
|
||||
--hash=sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1 \
|
||||
--hash=sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407 \
|
||||
--hash=sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12 \
|
||||
--hash=sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3 \
|
||||
--hash=sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd \
|
||||
--hash=sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00 \
|
||||
--hash=sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616
|
||||
click==8.1.8 \
|
||||
--hash=sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2 \
|
||||
--hash=sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a
|
||||
cohere==5.14.0 \
|
||||
--hash=sha256:286b4ff66f9a59c06a30b8819fb8b2aee3354dc2f7dc83f19519da771e598a5e \
|
||||
--hash=sha256:fdbf2d4c54049b74c8f79ff8ed6fd149c4c2055d3b5eae57b9c70716e65c78fd
|
||||
colorama==0.4.6 \
|
||||
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
|
||||
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
|
||||
deprecated==1.2.18 \
|
||||
--hash=sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d \
|
||||
--hash=sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec
|
||||
distro==1.9.0 \
|
||||
--hash=sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed \
|
||||
--hash=sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2
|
||||
eval-type-backport==0.2.2 \
|
||||
--hash=sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a \
|
||||
--hash=sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1
|
||||
fastavro==1.10.0 \
|
||||
--hash=sha256:0a678153b5da1b024a32ec3f611b2e7afd24deac588cb51dd1b0019935191a6d \
|
||||
--hash=sha256:1fd689724760b17f69565d8a4e7785ed79becd451d1c99263c40cb2d6491f1d4 \
|
||||
--hash=sha256:203c17d44cadde76e8eecb30f2d1b4f33eb478877552d71f049265dc6f2ecd10 \
|
||||
--hash=sha256:47bf41ac6d52cdfe4a3da88c75a802321321b37b663a900d12765101a5d6886f \
|
||||
--hash=sha256:4f949d463f9ac4221128a51e4e34e2562f401e5925adcadfd28637a73df6c2d8 \
|
||||
--hash=sha256:566c193109ff0ff84f1072a165b7106c4f96050078a4e6ac7391f81ca1ef3efa \
|
||||
--hash=sha256:567ff515f2a5d26d9674b31c95477f3e6022ec206124c62169bc2ffaf0889089 \
|
||||
--hash=sha256:6575be7f2b5f94023b5a4e766b0251924945ad55e9a96672dc523656d17fe251 \
|
||||
--hash=sha256:67a597a5cfea4dddcf8b49eaf8c2b5ffee7fda15b578849185bc690ec0cd0d8f \
|
||||
--hash=sha256:74e517440c824cb65fb29d3e3903a9406f4d7c75490cef47e55c4c82cdc66270 \
|
||||
--hash=sha256:82263af0adfddb39c85f9517d736e1e940fe506dfcc35bc9ab9f85e0fa9236d8 \
|
||||
--hash=sha256:86baf8c9740ab570d0d4d18517da71626fe9be4d1142bea684db52bd5adb078f \
|
||||
--hash=sha256:8e62d04c65461b30ac6d314e4197ad666371e97ae8cb2c16f971d802f6c7f514 \
|
||||
--hash=sha256:9b8227497f71565270f9249fc9af32a93644ca683a0167cfe66d203845c3a038 \
|
||||
--hash=sha256:cfe57cb0d72f304bd0dcc5a3208ca6a7363a9ae76f3073307d095c9d053b29d4 \
|
||||
--hash=sha256:d183c075f527ab695a27ae75f210d4a86bce660cda2f85ae84d5606efc15ef50 \
|
||||
--hash=sha256:d7a95a2c0639bffd7c079b59e9a796bfc3a9acd78acff7088f7c54ade24e4a77 \
|
||||
--hash=sha256:e400d2e55d068404d9fea7c5021f8b999c6f9d9afa1d1f3652ec92c105ffcbdd \
|
||||
--hash=sha256:fe471deb675ed2f01ee2aac958fbf8ebb13ea00fa4ce7f87e57710a0bc592208
|
||||
filelock==3.18.0 \
|
||||
--hash=sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2 \
|
||||
--hash=sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de
|
||||
fsspec==2025.3.0 \
|
||||
--hash=sha256:a935fd1ea872591f2b5148907d103488fc523295e6c64b835cfad8c3eca44972 \
|
||||
--hash=sha256:efb87af3efa9103f94ca91a7f8cb7a4df91af9f74fc106c9c7ea0efd7277c1b3
|
||||
google-auth==2.38.0 \
|
||||
--hash=sha256:8285113607d3b80a3f1543b75962447ba8a09fe85783432a784fdeef6ac094c4 \
|
||||
--hash=sha256:e7dae6694313f434a2727bf2906f27ad259bae090d7aa896590d86feec3d9d4a
|
||||
greenlet==3.1.1 \
|
||||
--hash=sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e \
|
||||
--hash=sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01 \
|
||||
--hash=sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1 \
|
||||
--hash=sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159 \
|
||||
--hash=sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9 \
|
||||
--hash=sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395 \
|
||||
--hash=sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942 \
|
||||
--hash=sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1 \
|
||||
--hash=sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441 \
|
||||
--hash=sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1 \
|
||||
--hash=sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6 \
|
||||
--hash=sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39 \
|
||||
--hash=sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d \
|
||||
--hash=sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467 \
|
||||
--hash=sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475 \
|
||||
--hash=sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511 \
|
||||
--hash=sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822 \
|
||||
--hash=sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a \
|
||||
--hash=sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01 \
|
||||
--hash=sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13 \
|
||||
--hash=sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b \
|
||||
--hash=sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff \
|
||||
--hash=sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36 \
|
||||
--hash=sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a \
|
||||
--hash=sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761 \
|
||||
--hash=sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0 \
|
||||
--hash=sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e \
|
||||
--hash=sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa \
|
||||
--hash=sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c \
|
||||
--hash=sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e \
|
||||
--hash=sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383 \
|
||||
--hash=sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70 \
|
||||
--hash=sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4 \
|
||||
--hash=sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011 \
|
||||
--hash=sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79
|
||||
griffe==1.6.2 \
|
||||
--hash=sha256:3a46fa7bd83280909b63c12b9a975732a927dd97809efe5b7972290b606c5d91 \
|
||||
--hash=sha256:6399f7e663150e4278a312a8e8a14d2f3d7bd86e2ef2f8056a1058e38579c2ee
|
||||
groq==0.20.0 \
|
||||
--hash=sha256:2a201d41cae768c53d411dabcfea2333e2e138df22d909ed555ece426f1e016f \
|
||||
--hash=sha256:c27b89903eb2b77f94ed95837ff3cadfc8c9e670953b1c5e5e2e855fea54b6c5
|
||||
h11==0.14.0 \
|
||||
--hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \
|
||||
--hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761
|
||||
httpcore==1.0.7 \
|
||||
--hash=sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c \
|
||||
--hash=sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd
|
||||
httpx==0.28.1 \
|
||||
--hash=sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc \
|
||||
--hash=sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad
|
||||
httpx-sse==0.4.0 \
|
||||
--hash=sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721 \
|
||||
--hash=sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f
|
||||
huggingface-hub==0.29.3 \
|
||||
--hash=sha256:0b25710932ac649c08cdbefa6c6ccb8e88eef82927cacdb048efb726429453aa \
|
||||
--hash=sha256:64519a25716e0ba382ba2d3fb3ca082e7c7eb4a2fc634d200e8380006e0760e5
|
||||
idna==3.10 \
|
||||
--hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \
|
||||
--hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3
|
||||
importlib-metadata==8.6.1 \
|
||||
--hash=sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e \
|
||||
--hash=sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580
|
||||
jiter==0.9.0 \
|
||||
--hash=sha256:04e8ffa3c353b1bc4134f96f167a2082494351e42888dfcf06e944f2729cbe1d \
|
||||
--hash=sha256:062b756ceb1d40b0b28f326cba26cfd575a4918415b036464a52f08632731e5a \
|
||||
--hash=sha256:099500d07b43f61d8bd780466d429c45a7b25411b334c60ca875fa775f68ccb0 \
|
||||
--hash=sha256:11509bfecbc319459647d4ac3fd391d26fdf530dad00c13c4dadabf5b81f01a4 \
|
||||
--hash=sha256:17f5d55eb856597607562257c8e36c42bc87f16bef52ef7129b7da11afc779f3 \
|
||||
--hash=sha256:203f28a72a05ae0e129b3ed1f75f56bc419d5f91dfacd057519a8bd137b00c42 \
|
||||
--hash=sha256:2221176dfec87f3470b21e6abca056e6b04ce9bff72315cb0b243ca9e835a4b5 \
|
||||
--hash=sha256:2228eaaaa111ec54b9e89f7481bffb3972e9059301a878d085b2b449fbbde635 \
|
||||
--hash=sha256:237e5cee4d5d2659aaf91bbf8ec45052cc217d9446070699441a91b386ae27dc \
|
||||
--hash=sha256:2764891d3f3e8b18dce2cff24949153ee30c9239da7c00f032511091ba688ff7 \
|
||||
--hash=sha256:2e89dc075c1fef8fa9be219e249f14040270dbc507df4215c324a1839522ea75 \
|
||||
--hash=sha256:387b22fbfd7a62418d5212b4638026d01723761c75c1c8232a8b8c37c2f1003b \
|
||||
--hash=sha256:3c7adb66f899ffa25e3c92bfcb593391ee1947dbdd6a9a970e0d7e713237d572 \
|
||||
--hash=sha256:3f22238da568be8bbd8e0650e12feeb2cfea15eda4f9fc271d3b362a4fa0604d \
|
||||
--hash=sha256:40d8da8629ccae3606c61d9184970423655fb4e33d03330bcdfe52d234d32f69 \
|
||||
--hash=sha256:42f8a68a69f047b310319ef8e2f52fdb2e7976fb3313ef27df495cf77bcad965 \
|
||||
--hash=sha256:51c4e1a4f8ea84d98b7b98912aa4290ac3d1eabfde8e3c34541fae30e9d1f08b \
|
||||
--hash=sha256:528b6b71745e7326eed73c53d4aa57e2a522242320b6f7d65b9c5af83cf49b6e \
|
||||
--hash=sha256:5f4c677c424dc76684fea3e7285a7a2a7493424bea89ac441045e6a1fb1d7b3b \
|
||||
--hash=sha256:609cf3c78852f1189894383cf0b0b977665f54cb38788e3e6b941fa6d982c00e \
|
||||
--hash=sha256:699edfde481e191d81f9cf6d2211debbfe4bd92f06410e7637dffb8dd5dfde06 \
|
||||
--hash=sha256:6a99bed9fbb02f5bed416d137944419a69aa4c423e44189bc49718859ea83bc5 \
|
||||
--hash=sha256:6c4d99c71508912a7e556d631768dcdef43648a93660670986916b297f1c54af \
|
||||
--hash=sha256:6f7838bc467ab7e8ef9f387bd6de195c43bad82a569c1699cb822f6609dd4cdf \
|
||||
--hash=sha256:7b46249cfd6c48da28f89eb0be3f52d6fdb40ab88e2c66804f546674e539ec11 \
|
||||
--hash=sha256:8f60fb8ce7df529812bf6c625635a19d27f30806885139e367af93f6e734ef58 \
|
||||
--hash=sha256:923b54afdd697dfd00d368b7ccad008cccfeb1efb4e621f32860c75e9f25edbd \
|
||||
--hash=sha256:9f48e86b57bc711eb5acdfd12b6cb580a59cc9a993f6e7dcb6d8b50522dcd50d \
|
||||
--hash=sha256:a1be73d8982bdc278b7b9377426a4b44ceb5c7952073dd7488e4ae96b88e1103 \
|
||||
--hash=sha256:a25519efb78a42254d59326ee417d6f5161b06f5da827d94cf521fed961b1ff2 \
|
||||
--hash=sha256:aadba0964deb424daa24492abc3d229c60c4a31bfee205aedbf1acc7639d7893 \
|
||||
--hash=sha256:c8ae3bf27cd1ac5e6e8b7a27487bf3ab5f82318211ec2e1346a5b058756361f7 \
|
||||
--hash=sha256:c98d27330fdfb77913c1097a7aab07f38ff2259048949f499c9901700789ac15 \
|
||||
--hash=sha256:d726a3890a54561e55a9c5faea1f7655eda7f105bd165067575ace6e65f80bb2 \
|
||||
--hash=sha256:dd5ab5ddc11418dce28343123644a100f487eaccf1de27a459ab36d6cca31043 \
|
||||
--hash=sha256:e057adb0cd1bd39606100be0eafe742de2de88c79df632955b9ab53a086b3c8d \
|
||||
--hash=sha256:eda3f8cc74df66892b1d06b5d41a71670c22d95a1ca2cbab73654745ce9d0419 \
|
||||
--hash=sha256:f0b2827fb88dda2cbecbbc3e596ef08d69bda06c6f57930aec8e79505dc17001 \
|
||||
--hash=sha256:f7e6850991f3940f62d387ccfa54d1a92bd4bb9f89690b53aea36b4364bcab53 \
|
||||
--hash=sha256:fca1a02ad60ec30bb230f65bc01f611c8608b02d269f998bc29cca8619a919dc
|
||||
jmespath==1.0.1 \
|
||||
--hash=sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 \
|
||||
--hash=sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe
|
||||
logfire-api==3.9.0 \
|
||||
--hash=sha256:a313eba49976ccca62ba6acb2f454d28941e53a114b73a29c50e8c09ea38767d \
|
||||
--hash=sha256:b03bdcf368595510b4417270b5f02b268eb571a25692248ac1894b841a983a90
|
||||
markdown-it-py==3.0.0 \
|
||||
--hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \
|
||||
--hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb
|
||||
mcp==1.5.0 \
|
||||
--hash=sha256:51c3f35ce93cb702f7513c12406bbea9665ef75a08db909200b07da9db641527 \
|
||||
--hash=sha256:5b2766c05e68e01a2034875e250139839498c61792163a7b221fc170c12f5aa9
|
||||
mdurl==0.1.2 \
|
||||
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
|
||||
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
|
||||
mistralai==1.6.0 \
|
||||
--hash=sha256:0616b55b694871f0a7d1a4283a53cb904089de7fbfcac1d2c0470d1c77ef879d \
|
||||
--hash=sha256:6a4f4d6b5c9fff361741aa5513cd2917a81be520deeb0d33e963d1c31eae8c19
|
||||
openai==1.68.2 \
|
||||
--hash=sha256:24484cb5c9a33b58576fdc5acf0e5f92603024a4e39d0b99793dfa1eb14c2b36 \
|
||||
--hash=sha256:b720f0a95a1dbe1429c0d9bb62096a0d98057bcda82516f6e8af10284bdd5b19
|
||||
opentelemetry-api==1.31.1 \
|
||||
--hash=sha256:137ad4b64215f02b3000a0292e077641c8611aab636414632a9b9068593b7e91 \
|
||||
--hash=sha256:1511a3f470c9c8a32eeea68d4ea37835880c0eed09dd1a0187acc8b1301da0a1
|
||||
packaging==24.2 \
|
||||
--hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \
|
||||
--hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f
|
||||
playwright==1.51.0 \
|
||||
--hash=sha256:2e0ae6eb44297b24738e1a6d9c580ca4243b4e21b7e65cf936a71492c08dd0d4 \
|
||||
--hash=sha256:4cef804991867ea27f608b70fa288ee52a57651e22d02ab287f98f8620b9408c \
|
||||
--hash=sha256:814e4ec2a1a0d6f6221f075622c06b31ceb2bdc6d622258cfefed900c01569ae \
|
||||
--hash=sha256:9ece9316c5d383aed1a207f079fc2d552fff92184f0ecf37cc596e912d00a8c3 \
|
||||
--hash=sha256:ab4c0ff00bded52c946be60734868febc964c8a08a9b448d7c20cb3811c6521c \
|
||||
--hash=sha256:bcaaa3d5d73bda659bfb9ff2a288b51e85a91bd89eda86eaf8186550973e416a \
|
||||
--hash=sha256:d5c9f67bc6ef49094618991c78a1466c5bac5ed09157660d78b8510b77f92746
|
||||
prompt-toolkit==3.0.50 \
|
||||
--hash=sha256:544748f3860a2623ca5cd6d2795e7a14f3d0e1c3c9728359013f79877fc89bab \
|
||||
--hash=sha256:9b6427eb19e479d98acff65196a307c555eb567989e6d88ebbb1b509d9779198
|
||||
pyasn1==0.6.1 \
|
||||
--hash=sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629 \
|
||||
--hash=sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034
|
||||
pyasn1-modules==0.4.1 \
|
||||
--hash=sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd \
|
||||
--hash=sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c
|
||||
pydantic==2.10.6 \
|
||||
--hash=sha256:427d664bf0b8a2b34ff5dd0f5a18df00591adcee7198fbd71981054cef37b584 \
|
||||
--hash=sha256:ca5daa827cce33de7a42be142548b0096bf05a7e7b365aebfa5f8eeec7128236
|
||||
pydantic-ai==0.0.43 \
|
||||
--hash=sha256:7fb144eeee16abda0956befbee2577071a77a403c3fd7bb4a71562765812e072 \
|
||||
--hash=sha256:82dd077771072edcf1d50db3d8a83941456541e272b2bb7e0cb411d1d7533734
|
||||
pydantic-ai-slim==0.0.43 \
|
||||
--hash=sha256:4e31b079b7a4fd335b775ab07779831b737bc545b130748a18c33bdf08b76424 \
|
||||
--hash=sha256:b3bbf353827dc8b38a53979dacdf31d650366204408c574238dd168821b9b9cd
|
||||
pydantic-core==2.27.2 \
|
||||
--hash=sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6 \
|
||||
--hash=sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc \
|
||||
--hash=sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7 \
|
||||
--hash=sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee \
|
||||
--hash=sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b \
|
||||
--hash=sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048 \
|
||||
--hash=sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc \
|
||||
--hash=sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130 \
|
||||
--hash=sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4 \
|
||||
--hash=sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4 \
|
||||
--hash=sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7 \
|
||||
--hash=sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4 \
|
||||
--hash=sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6 \
|
||||
--hash=sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b \
|
||||
--hash=sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474 \
|
||||
--hash=sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459 \
|
||||
--hash=sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934 \
|
||||
--hash=sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306 \
|
||||
--hash=sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2 \
|
||||
--hash=sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9 \
|
||||
--hash=sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27 \
|
||||
--hash=sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b \
|
||||
--hash=sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154 \
|
||||
--hash=sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef \
|
||||
--hash=sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15 \
|
||||
--hash=sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4 \
|
||||
--hash=sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc \
|
||||
--hash=sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee \
|
||||
--hash=sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c \
|
||||
--hash=sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0 \
|
||||
--hash=sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57 \
|
||||
--hash=sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b \
|
||||
--hash=sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1 \
|
||||
--hash=sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e \
|
||||
--hash=sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c \
|
||||
--hash=sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9 \
|
||||
--hash=sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1 \
|
||||
--hash=sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d \
|
||||
--hash=sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99 \
|
||||
--hash=sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3 \
|
||||
--hash=sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39 \
|
||||
--hash=sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a \
|
||||
--hash=sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9
|
||||
pydantic-graph==0.0.43 \
|
||||
--hash=sha256:648e70c7978e9dee0b79694aa43f57be330c98fd69edf33674e0515fe709ae43 \
|
||||
--hash=sha256:d1670ec8457367cc21452e90beeacf951ccc8ec07baa6f66f1bb56fe1823d472
|
||||
pydantic-settings==2.8.1 \
|
||||
--hash=sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c \
|
||||
--hash=sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585
|
||||
pyee==12.1.1 \
|
||||
--hash=sha256:18a19c650556bb6b32b406d7f017c8f513aceed1ef7ca618fb65de7bd2d347ef \
|
||||
--hash=sha256:bbc33c09e2ff827f74191e3e5bbc6be7da02f627b7ec30d86f5ce1a6fb2424a3
|
||||
pygments==2.19.1 \
|
||||
--hash=sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f \
|
||||
--hash=sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c
|
||||
python-dateutil==2.9.0.post0 \
|
||||
--hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \
|
||||
--hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427
|
||||
python-dotenv==1.0.1 \
|
||||
--hash=sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca \
|
||||
--hash=sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a
|
||||
pyyaml==6.0.2 \
|
||||
--hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \
|
||||
--hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \
|
||||
--hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \
|
||||
--hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \
|
||||
--hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \
|
||||
--hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \
|
||||
--hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \
|
||||
--hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \
|
||||
--hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \
|
||||
--hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \
|
||||
--hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \
|
||||
--hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \
|
||||
--hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \
|
||||
--hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \
|
||||
--hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \
|
||||
--hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \
|
||||
--hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \
|
||||
--hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \
|
||||
--hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \
|
||||
--hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \
|
||||
--hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \
|
||||
--hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \
|
||||
--hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \
|
||||
--hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \
|
||||
--hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \
|
||||
--hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \
|
||||
--hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \
|
||||
--hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4
|
||||
requests==2.32.3 \
|
||||
--hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \
|
||||
--hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6
|
||||
rich==13.9.4 \
|
||||
--hash=sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098 \
|
||||
--hash=sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90
|
||||
rsa==4.9 \
|
||||
--hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \
|
||||
--hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21
|
||||
s3transfer==0.11.4 \
|
||||
--hash=sha256:559f161658e1cf0a911f45940552c696735f5c74e64362e515f333ebed87d679 \
|
||||
--hash=sha256:ac265fa68318763a03bf2dc4f39d5cbd6a9e178d81cc9483ad27da33637e320d
|
||||
six==1.17.0 \
|
||||
--hash=sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274 \
|
||||
--hash=sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81
|
||||
sniffio==1.3.1 \
|
||||
--hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \
|
||||
--hash=sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc
|
||||
sse-starlette==2.2.1 \
|
||||
--hash=sha256:54470d5f19274aeed6b2d473430b08b4b379ea851d953b11d7f1c4a2c118b419 \
|
||||
--hash=sha256:6410a3d3ba0c89e7675d4c273a301d64649c03a5ef1ca101f10b47f895fd0e99
|
||||
starlette==0.46.1 \
|
||||
--hash=sha256:3c88d58ee4bd1bb807c0d1acb381838afc7752f9ddaec81bbe4383611d833230 \
|
||||
--hash=sha256:77c74ed9d2720138b25875133f3a2dae6d854af2ec37dceb56aef370c1d8a227
|
||||
tokenizers==0.21.1 \
|
||||
--hash=sha256:0f0dcbcc9f6e13e675a66d7a5f2f225a736745ce484c1a4e07476a89ccdad382 \
|
||||
--hash=sha256:1039a3a5734944e09de1d48761ade94e00d0fa760c0e0551151d4dd851ba63e3 \
|
||||
--hash=sha256:28da6b72d4fb14ee200a1bd386ff74ade8992d7f725f2bde2c495a9a98cf4d9f \
|
||||
--hash=sha256:2dd9a0061e403546f7377df940e866c3e678d7d4e9643d0461ea442b4f89e61a \
|
||||
--hash=sha256:2fdbd4c067c60a0ac7eca14b6bd18a5bebace54eb757c706b47ea93204f7a37c \
|
||||
--hash=sha256:34d8cfde551c9916cb92014e040806122295a6800914bab5865deb85623931cf \
|
||||
--hash=sha256:9ac78b12e541d4ce67b4dfd970e44c060a2147b9b2a21f509566d556a509c67d \
|
||||
--hash=sha256:a1bb04dc5b448985f86ecd4b05407f5a8d97cb2c0532199b2a302a604a0165ab \
|
||||
--hash=sha256:a21a15d5c8e603331b8a59548bbe113564136dc0f5ad8306dd5033459a226da0 \
|
||||
--hash=sha256:aaa852d23e125b73d283c98f007e06d4595732104b65402f46e8ef24b588d9f8 \
|
||||
--hash=sha256:cd51cd0a91ecc801633829fcd1fda9cf8682ed3477c6243b9a095539de4aecf3 \
|
||||
--hash=sha256:db9484aeb2e200c43b915a1a0150ea885e35f357a5a8fabf7373af333dcc8dbf \
|
||||
--hash=sha256:e5a69c1a4496b81a5ee5d2c1f3f7fbdf95e90a0196101b0ee89ed9956b8a168f \
|
||||
--hash=sha256:e78e413e9e668ad790a29456e677d9d3aa50a9ad311a40905d6861ba7692cf41 \
|
||||
--hash=sha256:ed248ab5279e601a30a4d67bdb897ecbe955a50f1e7bb62bd99f07dd11c2f5b6
|
||||
tqdm==4.67.1 \
|
||||
--hash=sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2 \
|
||||
--hash=sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2
|
||||
types-requests==2.32.0.20250306 \
|
||||
--hash=sha256:0962352694ec5b2f95fda877ee60a159abdf84a0fc6fdace599f20acb41a03d1 \
|
||||
--hash=sha256:25f2cbb5c8710b2022f8bbee7b2b66f319ef14aeea2f35d80f18c9dbf3b60a0b
|
||||
typing-extensions==4.12.2 \
|
||||
--hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \
|
||||
--hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8
|
||||
typing-inspection==0.4.0 \
|
||||
--hash=sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f \
|
||||
--hash=sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122
|
||||
urllib3==2.3.0 \
|
||||
--hash=sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df \
|
||||
--hash=sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d
|
||||
uvicorn==0.34.0 \
|
||||
--hash=sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4 \
|
||||
--hash=sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9
|
||||
wcwidth==0.2.13 \
|
||||
--hash=sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 \
|
||||
--hash=sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5
|
||||
wrapt==1.17.2 \
|
||||
--hash=sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a \
|
||||
--hash=sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b \
|
||||
--hash=sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555 \
|
||||
--hash=sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b \
|
||||
--hash=sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6 \
|
||||
--hash=sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662 \
|
||||
--hash=sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998 \
|
||||
--hash=sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392 \
|
||||
--hash=sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306 \
|
||||
--hash=sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3 \
|
||||
--hash=sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9 \
|
||||
--hash=sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6 \
|
||||
--hash=sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192 \
|
||||
--hash=sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317 \
|
||||
--hash=sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f \
|
||||
--hash=sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda \
|
||||
--hash=sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d \
|
||||
--hash=sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8 \
|
||||
--hash=sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845 \
|
||||
--hash=sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82 \
|
||||
--hash=sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125 \
|
||||
--hash=sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504 \
|
||||
--hash=sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b \
|
||||
--hash=sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc \
|
||||
--hash=sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6 \
|
||||
--hash=sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40 \
|
||||
--hash=sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72 \
|
||||
--hash=sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681 \
|
||||
--hash=sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438 \
|
||||
--hash=sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae \
|
||||
--hash=sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2 \
|
||||
--hash=sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb \
|
||||
--hash=sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5 \
|
||||
--hash=sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a \
|
||||
--hash=sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3 \
|
||||
--hash=sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8 \
|
||||
--hash=sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98 \
|
||||
--hash=sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b \
|
||||
--hash=sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925 \
|
||||
--hash=sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6 \
|
||||
--hash=sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0 \
|
||||
--hash=sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9 \
|
||||
--hash=sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c \
|
||||
--hash=sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991 \
|
||||
--hash=sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000 \
|
||||
--hash=sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58
|
||||
zipp==3.21.0 \
|
||||
--hash=sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4 \
|
||||
--hash=sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931
|
@ -1,5 +1,3 @@
|
||||
# cSpell:words levelname multipage
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
Loading…
Reference in New Issue
Block a user