lwant commited on
Commit
4f70efd
Β·
1 Parent(s): dc47641

Add website parsing and text chunking support, update dependencies, and enhance README documentation.

Browse files
Files changed (4) hide show
  1. README.md +2 -2
  2. pyproject.toml +1 -0
  3. src/gaia_solving_agent/tools.py +20 -0
  4. uv.lock +376 -0
README.md CHANGED
@@ -34,8 +34,8 @@ Tools :
34
  - [x] Wikipedia
35
  - [x] Image queries
36
  - [ ] Video queries
37
- - [ ] Website parser
38
- - [ ] Text chunker
39
  - [ ]
40
 
41
  ## Install
 
34
  - [x] Wikipedia
35
  - [x] Image queries
36
  - [ ] Video queries
37
+ - [x] Website parser
38
+ - [x] Text chunker ==> via LoadAndSearchToolSpec
39
  - [ ]
40
 
41
  ## Install
pyproject.toml CHANGED
@@ -13,6 +13,7 @@ dependencies = [
13
  "llama-index-multi-modal-llms-huggingface>=0.4.2",
14
  "llama-index-multi-modal-llms-mistralai>=0.4.0",
15
  "llama-index-multi-modal-llms-nebius>=0.4.0",
 
16
  "llama-index-tools-duckduckgo>=0.3.0",
17
  "llama-index-tools-requests>=0.4.0",
18
  "llama-index-tools-wikipedia>=0.3.0",
 
13
  "llama-index-multi-modal-llms-huggingface>=0.4.2",
14
  "llama-index-multi-modal-llms-mistralai>=0.4.0",
15
  "llama-index-multi-modal-llms-nebius>=0.4.0",
16
+ "llama-index-readers-web>=0.4.2",
17
  "llama-index-tools-duckduckgo>=0.3.0",
18
  "llama-index-tools-requests>=0.4.0",
19
  "llama-index-tools-wikipedia>=0.3.0",
src/gaia_solving_agent/tools.py CHANGED
@@ -1,11 +1,23 @@
1
  from llama_index.core.schema import ImageDocument
 
 
 
 
2
  from llama_index.multi_modal_llms.mistralai import MistralAIMultiModal
3
  from llama_index.multi_modal_llms.nebius import NebiusMultiModal
 
4
  from tavily import AsyncTavilyClient
5
 
6
  from gaia_solving_agent import TAVILY_API_KEY, NEBIUS_API_KEY, MISTRAL_API_KEY
7
 
8
 
 
 
 
 
 
 
 
9
  async def tavily_search_web(query: str) -> str:
10
  """Useful for using the web to answer questions."""
11
  if TAVILY_API_KEY is None or "x" in TAVILY_API_KEY:
@@ -46,3 +58,11 @@ async def vllm_ask_image(query: str, images: ImageDocument | list[ImageDocument]
46
  image_documents=images
47
  )
48
  return vllm_output.text
 
 
 
 
 
 
 
 
 
1
  from llama_index.core.schema import ImageDocument
2
+ from llama_index.core.tools import FunctionTool
3
+ from llama_index.core.tools.ondemand_loader_tool import OnDemandLoaderTool
4
+ from llama_index.core.tools.tool_spec.base import BaseToolSpec
5
+ from llama_index.core.tools.tool_spec.load_and_search import LoadAndSearchToolSpec
6
  from llama_index.multi_modal_llms.mistralai import MistralAIMultiModal
7
  from llama_index.multi_modal_llms.nebius import NebiusMultiModal
8
+ from llama_index.readers.web import SimpleWebPageReader
9
  from tavily import AsyncTavilyClient
10
 
11
  from gaia_solving_agent import TAVILY_API_KEY, NEBIUS_API_KEY, MISTRAL_API_KEY
12
 
13
 
14
+ def load_and_search_tools_from_toolspec(tool_spec: BaseToolSpec) -> list[FunctionTool]:
15
+ tools_list = []
16
+ for tool in tool_spec.to_tool_list():
17
+ tools_list.extend(LoadAndSearchToolSpec.from_defaults(tool).to_tool_list())
18
+ return tools_list
19
+
20
+
21
  async def tavily_search_web(query: str) -> str:
22
  """Useful for using the web to answer questions."""
23
  if TAVILY_API_KEY is None or "x" in TAVILY_API_KEY:
 
58
  image_documents=images
59
  )
60
  return vllm_output.text
61
+
62
+
63
+ simple_web_page_reader_tool = OnDemandLoaderTool.from_defaults(
64
+ SimpleWebPageReader(html_to_text=True),
65
+ name="Tool for loading content from a web page and return it as text",
66
+ description="A tool for loading data and querying articles from Wikipedia",
67
+ )
68
+ simple_web_page_reader_toolspec = LoadAndSearchToolSpec.from_defaults(simple_web_page_reader_tool)
uv.lock CHANGED
@@ -38,6 +38,7 @@ dependencies = [
38
  { name = "llama-index-multi-modal-llms-huggingface" },
39
  { name = "llama-index-multi-modal-llms-mistralai" },
40
  { name = "llama-index-multi-modal-llms-nebius" },
 
41
  { name = "llama-index-tools-duckduckgo" },
42
  { name = "llama-index-tools-requests" },
43
  { name = "llama-index-tools-wikipedia" },
@@ -65,6 +66,7 @@ requires-dist = [
65
  { name = "llama-index-multi-modal-llms-huggingface", specifier = ">=0.4.2" },
66
  { name = "llama-index-multi-modal-llms-mistralai", specifier = ">=0.4.0" },
67
  { name = "llama-index-multi-modal-llms-nebius", specifier = ">=0.4.0" },
 
68
  { name = "llama-index-tools-duckduckgo", specifier = ">=0.3.0" },
69
  { name = "llama-index-tools-requests", specifier = ">=0.4.0" },
70
  { name = "llama-index-tools-wikipedia", specifier = ">=0.3.0" },
@@ -526,6 +528,18 @@ wheels = [
526
  { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload-time = "2025-05-02T08:34:40.053Z" },
527
  ]
528
 
 
 
 
 
 
 
 
 
 
 
 
 
529
  [[package]]
530
  name = "click"
531
  version = "8.2.1"
@@ -582,6 +596,15 @@ wheels = [
582
  { url = "https://files.pythonhosted.org/packages/2a/4b/3256759723b7e66380397d958ca07c59cfc3fb5c794fb5516758afd05d41/cryptography-45.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:627ba1bc94f6adf0b0a2e35d87020285ead22d9f648c7e75bb64f367375f3b22", size = 3395508, upload-time = "2025-06-10T00:03:24.586Z" },
583
  ]
584
 
 
 
 
 
 
 
 
 
 
585
  [[package]]
586
  name = "dataclasses-json"
587
  version = "0.6.7"
@@ -604,6 +627,15 @@ wheels = [
604
  { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" },
605
  ]
606
 
 
 
 
 
 
 
 
 
 
607
  [[package]]
608
  name = "deprecated"
609
  version = "1.2.18"
@@ -710,6 +742,29 @@ wheels = [
710
  { url = "https://files.pythonhosted.org/packages/59/4a/e17764385382062b0edbb35a26b7cf76d71e27e456546277a42ba6545c6e/fastapi-0.115.13-py3-none-any.whl", hash = "sha256:0a0cab59afa7bab22f5eb347f8c9864b681558c278395e94035a741fc10cd865", size = 95315, upload-time = "2025-06-17T11:49:44.106Z" },
711
  ]
712
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
713
  [[package]]
714
  name = "ffmpy"
715
  version = "0.6.0"
@@ -1002,6 +1057,12 @@ wheels = [
1002
  { url = "https://files.pythonhosted.org/packages/c2/2d/cf148d532f741fbf93f380ff038a33c1309d1e24ea629dc39d11dca08c92/hf_xet-1.1.4-cp37-abi3-win_amd64.whl", hash = "sha256:52e8f8bc2029d8b911493f43cea131ac3fa1f0dc6a13c50b593c4516f02c6fc3", size = 2695589, upload-time = "2025-06-16T21:20:53.151Z" },
1003
  ]
1004
 
 
 
 
 
 
 
1005
  [[package]]
1006
  name = "httpcore"
1007
  version = "1.0.9"
@@ -1124,6 +1185,12 @@ wheels = [
1124
  { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" },
1125
  ]
1126
 
 
 
 
 
 
 
1127
  [[package]]
1128
  name = "jinja2"
1129
  version = "3.1.6"
@@ -1660,6 +1727,34 @@ wheels = [
1660
  { url = "https://files.pythonhosted.org/packages/68/4f/e30d4257fe9e4224f5612b77fe99aaceddae411b2e74ca30534491de3e6f/llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf", size = 2472, upload-time = "2024-11-18T00:00:07.293Z" },
1661
  ]
1662
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1663
  [[package]]
1664
  name = "llama-index-tools-duckduckgo"
1665
  version = "0.3.0"
@@ -1754,6 +1849,54 @@ wheels = [
1754
  { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" },
1755
  ]
1756
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1757
  [[package]]
1758
  name = "mako"
1759
  version = "1.3.10"
@@ -1778,6 +1921,19 @@ wheels = [
1778
  { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" },
1779
  ]
1780
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1781
  [[package]]
1782
  name = "markupsafe"
1783
  version = "3.0.2"
@@ -1973,6 +2129,30 @@ wheels = [
1973
  { url = "https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl", hash = "sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec", size = 2034406, upload-time = "2025-05-29T11:35:04.961Z" },
1974
  ]
1975
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1976
  [[package]]
1977
  name = "nltk"
1978
  version = "3.9.1"
@@ -2409,6 +2589,31 @@ wheels = [
2409
  { url = "https://files.pythonhosted.org/packages/c2/28/f53038a5a72cc4fd0b56c1eafb4ef64aec9685460d5ac34de98ca78b6e29/orjson-3.10.18-cp313-cp313-win_arm64.whl", hash = "sha256:f54c1385a0e6aba2f15a40d703b858bedad36ded0491e55d35d905b2c34a4cc3", size = 131186, upload-time = "2025-04-29T23:29:41.922Z" },
2410
  ]
2411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2412
  [[package]]
2413
  name = "packaging"
2414
  version = "24.2"
@@ -2512,6 +2717,25 @@ wheels = [
2512
  { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" },
2513
  ]
2514
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2515
  [[package]]
2516
  name = "primp"
2517
  version = "0.15.0"
@@ -2768,6 +2992,18 @@ wheels = [
2768
  { url = "https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6", size = 32327, upload-time = "2021-03-10T02:09:53.503Z" },
2769
  ]
2770
 
 
 
 
 
 
 
 
 
 
 
 
 
2771
  [[package]]
2772
  name = "pygments"
2773
  version = "2.19.1"
@@ -2786,6 +3022,15 @@ wheels = [
2786
  { url = "https://files.pythonhosted.org/packages/71/8b/dc3a72d98c22be7a4cbd664ad14c5a3e6295c2dbdf572865ed61e24b5e38/pypdf-5.6.0-py3-none-any.whl", hash = "sha256:ca6bf446bfb0a2d8d71d6d6bb860798d864c36a29b3d9ae8d7fc7958c59f88e7", size = 304208, upload-time = "2025-06-01T12:19:38.003Z" },
2787
  ]
2788
 
 
 
 
 
 
 
 
 
 
2789
  [[package]]
2790
  name = "python-dateutil"
2791
  version = "2.9.0.post0"
@@ -2933,6 +3178,18 @@ wheels = [
2933
  { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" },
2934
  ]
2935
 
 
 
 
 
 
 
 
 
 
 
 
 
2936
  [[package]]
2937
  name = "requests-toolbelt"
2938
  version = "1.0.0"
@@ -3083,6 +3340,23 @@ wheels = [
3083
  { url = "https://files.pythonhosted.org/packages/eb/c4/231cac7a8385394ebbbb4f1ca662203e9d8c332825ab4f36ffc3ead09a42/scipy-1.16.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f56296fefca67ba605fd74d12f7bd23636267731a72cb3947963e76b8c0a25db", size = 38515076, upload-time = "2025-06-22T16:21:45.694Z" },
3084
  ]
3085
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3086
  [[package]]
3087
  name = "semantic-version"
3088
  version = "2.10.0"
@@ -3101,6 +3375,12 @@ wheels = [
3101
  { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" },
3102
  ]
3103
 
 
 
 
 
 
 
3104
  [[package]]
3105
  name = "shellingham"
3106
  version = "1.5.4"
@@ -3128,6 +3408,15 @@ wheels = [
3128
  { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" },
3129
  ]
3130
 
 
 
 
 
 
 
 
 
 
3131
  [[package]]
3132
  name = "soupsieve"
3133
  version = "2.7"
@@ -3137,6 +3426,15 @@ wheels = [
3137
  { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload-time = "2025-04-20T18:50:07.196Z" },
3138
  ]
3139
 
 
 
 
 
 
 
 
 
 
3140
  [[package]]
3141
  name = "sqlalchemy"
3142
  version = "2.0.41"
@@ -3309,6 +3607,27 @@ wheels = [
3309
  { url = "https://files.pythonhosted.org/packages/de/a8/8f499c179ec900783ffe133e9aab10044481679bb9aad78436d239eee716/tiktoken-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:5ea0edb6f83dc56d794723286215918c1cde03712cbbafa0348b33448faf5b95", size = 894669, upload-time = "2025-02-14T06:02:47.341Z" },
3310
  ]
3311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3312
  [[package]]
3313
  name = "tokenizers"
3314
  version = "0.21.1"
@@ -3439,6 +3758,37 @@ torch = [
3439
  { name = "torch" },
3440
  ]
3441
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3442
  [[package]]
3443
  name = "triton"
3444
  version = "3.0.0"
@@ -3537,6 +3887,11 @@ wheels = [
3537
  { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
3538
  ]
3539
 
 
 
 
 
 
3540
  [[package]]
3541
  name = "uvicorn"
3542
  version = "0.34.3"
@@ -3559,6 +3914,15 @@ wheels = [
3559
  { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" },
3560
  ]
3561
 
 
 
 
 
 
 
 
 
 
3562
  [[package]]
3563
  name = "websockets"
3564
  version = "15.0.1"
@@ -3642,6 +4006,18 @@ wheels = [
3642
  { url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594, upload-time = "2025-01-14T10:35:44.018Z" },
3643
  ]
3644
 
 
 
 
 
 
 
 
 
 
 
 
 
3645
  [[package]]
3646
  name = "yarl"
3647
  version = "1.20.1"
 
38
  { name = "llama-index-multi-modal-llms-huggingface" },
39
  { name = "llama-index-multi-modal-llms-mistralai" },
40
  { name = "llama-index-multi-modal-llms-nebius" },
41
+ { name = "llama-index-readers-web" },
42
  { name = "llama-index-tools-duckduckgo" },
43
  { name = "llama-index-tools-requests" },
44
  { name = "llama-index-tools-wikipedia" },
 
66
  { name = "llama-index-multi-modal-llms-huggingface", specifier = ">=0.4.2" },
67
  { name = "llama-index-multi-modal-llms-mistralai", specifier = ">=0.4.0" },
68
  { name = "llama-index-multi-modal-llms-nebius", specifier = ">=0.4.0" },
69
+ { name = "llama-index-readers-web", specifier = ">=0.4.2" },
70
  { name = "llama-index-tools-duckduckgo", specifier = ">=0.3.0" },
71
  { name = "llama-index-tools-requests", specifier = ">=0.4.0" },
72
  { name = "llama-index-tools-wikipedia", specifier = ">=0.3.0" },
 
528
  { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626, upload-time = "2025-05-02T08:34:40.053Z" },
529
  ]
530
 
531
+ [[package]]
532
+ name = "chromedriver-autoinstaller"
533
+ version = "0.6.4"
534
+ source = { registry = "https://pypi.org/simple" }
535
+ dependencies = [
536
+ { name = "packaging" },
537
+ ]
538
+ sdist = { url = "https://files.pythonhosted.org/packages/d0/5a/9fc60c65673444d592b8922316c3abcd6177b42208c5a6179f96ccf0e11b/chromedriver-autoinstaller-0.6.4.tar.gz", hash = "sha256:1b4df04b87e6107c730085b98e5fd541db3d1777c32b8bd08e2ca4b1244050af", size = 6944, upload-time = "2024-01-28T15:30:22.385Z" }
539
+ wheels = [
540
+ { url = "https://files.pythonhosted.org/packages/a5/b5/36f0b0add145c371b5282e881a687601899f2d27fae5d0595bc02026b67c/chromedriver_autoinstaller-0.6.4-py3-none-any.whl", hash = "sha256:b12ed187ca9fac4d744deb588d221222ed50836384607e5303e6eab98bb9dc64", size = 7634, upload-time = "2024-01-28T15:30:20.234Z" },
541
+ ]
542
+
543
  [[package]]
544
  name = "click"
545
  version = "8.2.1"
 
596
  { url = "https://files.pythonhosted.org/packages/2a/4b/3256759723b7e66380397d958ca07c59cfc3fb5c794fb5516758afd05d41/cryptography-45.0.4-cp37-abi3-win_amd64.whl", hash = "sha256:627ba1bc94f6adf0b0a2e35d87020285ead22d9f648c7e75bb64f367375f3b22", size = 3395508, upload-time = "2025-06-10T00:03:24.586Z" },
597
  ]
598
 
599
+ [[package]]
600
+ name = "cssselect"
601
+ version = "1.3.0"
602
+ source = { registry = "https://pypi.org/simple" }
603
+ sdist = { url = "https://files.pythonhosted.org/packages/72/0a/c3ea9573b1dc2e151abfe88c7fe0c26d1892fe6ed02d0cdb30f0d57029d5/cssselect-1.3.0.tar.gz", hash = "sha256:57f8a99424cfab289a1b6a816a43075a4b00948c86b4dcf3ef4ee7e15f7ab0c7", size = 42870, upload-time = "2025-03-10T09:30:29.638Z" }
604
+ wheels = [
605
+ { url = "https://files.pythonhosted.org/packages/ee/58/257350f7db99b4ae12b614a36256d9cc870d71d9e451e79c2dc3b23d7c3c/cssselect-1.3.0-py3-none-any.whl", hash = "sha256:56d1bf3e198080cc1667e137bc51de9cadfca259f03c2d4e09037b3e01e30f0d", size = 18786, upload-time = "2025-03-10T09:30:28.048Z" },
606
+ ]
607
+
608
  [[package]]
609
  name = "dataclasses-json"
610
  version = "0.6.7"
 
627
  { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" },
628
  ]
629
 
630
+ [[package]]
631
+ name = "defusedxml"
632
+ version = "0.7.1"
633
+ source = { registry = "https://pypi.org/simple" }
634
+ sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520, upload-time = "2021-03-08T10:59:26.269Z" }
635
+ wheels = [
636
+ { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604, upload-time = "2021-03-08T10:59:24.45Z" },
637
+ ]
638
+
639
  [[package]]
640
  name = "deprecated"
641
  version = "1.2.18"
 
742
  { url = "https://files.pythonhosted.org/packages/59/4a/e17764385382062b0edbb35a26b7cf76d71e27e456546277a42ba6545c6e/fastapi-0.115.13-py3-none-any.whl", hash = "sha256:0a0cab59afa7bab22f5eb347f8c9864b681558c278395e94035a741fc10cd865", size = 95315, upload-time = "2025-06-17T11:49:44.106Z" },
743
  ]
744
 
745
+ [[package]]
746
+ name = "feedfinder2"
747
+ version = "0.0.4"
748
+ source = { registry = "https://pypi.org/simple" }
749
+ dependencies = [
750
+ { name = "beautifulsoup4" },
751
+ { name = "requests" },
752
+ { name = "six" },
753
+ ]
754
+ sdist = { url = "https://files.pythonhosted.org/packages/35/82/1251fefec3bb4b03fd966c7e7f7a41c9fc2bb00d823a34c13f847fd61406/feedfinder2-0.0.4.tar.gz", hash = "sha256:3701ee01a6c85f8b865a049c30ba0b4608858c803fe8e30d1d289fdbe89d0efe", size = 3297, upload-time = "2016-01-25T15:09:17.492Z" }
755
+
756
+ [[package]]
757
+ name = "feedparser"
758
+ version = "6.0.11"
759
+ source = { registry = "https://pypi.org/simple" }
760
+ dependencies = [
761
+ { name = "sgmllib3k" },
762
+ ]
763
+ sdist = { url = "https://files.pythonhosted.org/packages/ff/aa/7af346ebeb42a76bf108027fe7f3328bb4e57a3a96e53e21fd9ef9dd6dd0/feedparser-6.0.11.tar.gz", hash = "sha256:c9d0407b64c6f2a065d0ebb292c2b35c01050cc0dc33757461aaabdc4c4184d5", size = 286197, upload-time = "2023-12-10T16:03:20.854Z" }
764
+ wheels = [
765
+ { url = "https://files.pythonhosted.org/packages/7c/d4/8c31aad9cc18f451c49f7f9cfb5799dadffc88177f7917bc90a66459b1d7/feedparser-6.0.11-py3-none-any.whl", hash = "sha256:0be7ee7b395572b19ebeb1d6aafb0028dee11169f1c934e0ed67d54992f4ad45", size = 81343, upload-time = "2023-12-10T16:03:19.484Z" },
766
+ ]
767
+
768
  [[package]]
769
  name = "ffmpy"
770
  version = "0.6.0"
 
1057
  { url = "https://files.pythonhosted.org/packages/c2/2d/cf148d532f741fbf93f380ff038a33c1309d1e24ea629dc39d11dca08c92/hf_xet-1.1.4-cp37-abi3-win_amd64.whl", hash = "sha256:52e8f8bc2029d8b911493f43cea131ac3fa1f0dc6a13c50b593c4516f02c6fc3", size = 2695589, upload-time = "2025-06-16T21:20:53.151Z" },
1058
  ]
1059
 
1060
+ [[package]]
1061
+ name = "html2text"
1062
+ version = "2024.2.26"
1063
+ source = { registry = "https://pypi.org/simple" }
1064
+ sdist = { url = "https://files.pythonhosted.org/packages/1a/43/e1d53588561e533212117750ee79ad0ba02a41f52a08c1df3396bd466c05/html2text-2024.2.26.tar.gz", hash = "sha256:05f8e367d15aaabc96415376776cdd11afd5127a77fce6e36afc60c563ca2c32", size = 56527, upload-time = "2024-02-27T18:49:24.855Z" }
1065
+
1066
  [[package]]
1067
  name = "httpcore"
1068
  version = "1.0.9"
 
1185
  { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" },
1186
  ]
1187
 
1188
+ [[package]]
1189
+ name = "jieba3k"
1190
+ version = "0.35.1"
1191
+ source = { registry = "https://pypi.org/simple" }
1192
+ sdist = { url = "https://files.pythonhosted.org/packages/a9/cb/2c8332bcdc14d33b0bedd18ae0a4981a069c3513e445120da3c3f23a8aaa/jieba3k-0.35.1.zip", hash = "sha256:980a4f2636b778d312518066be90c7697d410dd5a472385f5afced71a2db1c10", size = 7423646, upload-time = "2014-11-15T05:47:47.978Z" }
1193
+
1194
  [[package]]
1195
  name = "jinja2"
1196
  version = "3.1.6"
 
1727
  { url = "https://files.pythonhosted.org/packages/68/4f/e30d4257fe9e4224f5612b77fe99aaceddae411b2e74ca30534491de3e6f/llama_index_readers_llama_parse-0.4.0-py3-none-any.whl", hash = "sha256:574e48386f28d2c86c3f961ca4a4906910312f3400dd0c53014465bfbc6b32bf", size = 2472, upload-time = "2024-11-18T00:00:07.293Z" },
1728
  ]
1729
 
1730
+ [[package]]
1731
+ name = "llama-index-readers-web"
1732
+ version = "0.4.2"
1733
+ source = { registry = "https://pypi.org/simple" }
1734
+ dependencies = [
1735
+ { name = "aiohttp" },
1736
+ { name = "beautifulsoup4" },
1737
+ { name = "chromedriver-autoinstaller" },
1738
+ { name = "defusedxml" },
1739
+ { name = "html2text" },
1740
+ { name = "httpx" },
1741
+ { name = "llama-index-core" },
1742
+ { name = "lxml" },
1743
+ { name = "lxml-html-clean" },
1744
+ { name = "markdownify" },
1745
+ { name = "newspaper3k" },
1746
+ { name = "oxylabs" },
1747
+ { name = "playwright" },
1748
+ { name = "requests" },
1749
+ { name = "selenium" },
1750
+ { name = "spider-client" },
1751
+ { name = "urllib3" },
1752
+ ]
1753
+ sdist = { url = "https://files.pythonhosted.org/packages/ac/be/63a5a34b5f940fb3deaa674700de8383e0f2ec986b43adfd1b5c27518e63/llama_index_readers_web-0.4.2.tar.gz", hash = "sha256:846f804e325baabb3dd99e12d691243cc9e2fa37216e8544b17c8b52c4720d00", size = 72774, upload-time = "2025-06-03T17:36:16.621Z" }
1754
+ wheels = [
1755
+ { url = "https://files.pythonhosted.org/packages/03/a4/fabfdacbe252e6530f56500e95d4b092df399e2474333c13a1ae3b995f26/llama_index_readers_web-0.4.2-py3-none-any.whl", hash = "sha256:f277a5bf6f843ea095fbfbd13b1a1866cbc6ec5f998de16f3c6294a864b9f0ef", size = 101488, upload-time = "2025-06-03T17:36:15.215Z" },
1756
+ ]
1757
+
1758
  [[package]]
1759
  name = "llama-index-tools-duckduckgo"
1760
  version = "0.3.0"
 
1849
  { url = "https://files.pythonhosted.org/packages/d0/81/e66fc86539293282fd9cb7c9417438e897f369e79ffb62e1ae5e5154d4dd/llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930", size = 30331193, upload-time = "2025-01-20T11:14:38.578Z" },
1850
  ]
1851
 
1852
+ [[package]]
1853
+ name = "lxml"
1854
+ version = "6.0.0"
1855
+ source = { registry = "https://pypi.org/simple" }
1856
+ sdist = { url = "https://files.pythonhosted.org/packages/c5/ed/60eb6fa2923602fba988d9ca7c5cdbd7cf25faa795162ed538b527a35411/lxml-6.0.0.tar.gz", hash = "sha256:032e65120339d44cdc3efc326c9f660f5f7205f3a535c1fdbf898b29ea01fb72", size = 4096938, upload-time = "2025-06-26T16:28:19.373Z" }
1857
+ wheels = [
1858
+ { url = "https://files.pythonhosted.org/packages/89/c3/d01d735c298d7e0ddcedf6f028bf556577e5ab4f4da45175ecd909c79378/lxml-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78718d8454a6e928470d511bf8ac93f469283a45c354995f7d19e77292f26108", size = 8429515, upload-time = "2025-06-26T16:26:06.776Z" },
1859
+ { url = "https://files.pythonhosted.org/packages/06/37/0e3eae3043d366b73da55a86274a590bae76dc45aa004b7042e6f97803b1/lxml-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:84ef591495ffd3f9dcabffd6391db7bb70d7230b5c35ef5148354a134f56f2be", size = 4601387, upload-time = "2025-06-26T16:26:09.511Z" },
1860
+ { url = "https://files.pythonhosted.org/packages/a3/28/e1a9a881e6d6e29dda13d633885d13acb0058f65e95da67841c8dd02b4a8/lxml-6.0.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:2930aa001a3776c3e2601cb8e0a15d21b8270528d89cc308be4843ade546b9ab", size = 5228928, upload-time = "2025-06-26T16:26:12.337Z" },
1861
+ { url = "https://files.pythonhosted.org/packages/9a/55/2cb24ea48aa30c99f805921c1c7860c1f45c0e811e44ee4e6a155668de06/lxml-6.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:219e0431ea8006e15005767f0351e3f7f9143e793e58519dc97fe9e07fae5563", size = 4952289, upload-time = "2025-06-28T18:47:25.602Z" },
1862
+ { url = "https://files.pythonhosted.org/packages/31/c0/b25d9528df296b9a3306ba21ff982fc5b698c45ab78b94d18c2d6ae71fd9/lxml-6.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bd5913b4972681ffc9718bc2d4c53cde39ef81415e1671ff93e9aa30b46595e7", size = 5111310, upload-time = "2025-06-28T18:47:28.136Z" },
1863
+ { url = "https://files.pythonhosted.org/packages/e9/af/681a8b3e4f668bea6e6514cbcb297beb6de2b641e70f09d3d78655f4f44c/lxml-6.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:390240baeb9f415a82eefc2e13285016f9c8b5ad71ec80574ae8fa9605093cd7", size = 5025457, upload-time = "2025-06-26T16:26:15.068Z" },
1864
+ { url = "https://files.pythonhosted.org/packages/69/f8/693b1a10a891197143c0673fcce5b75fc69132afa81a36e4568c12c8faba/lxml-6.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ca50bd612438258a91b5b3788c6621c1f05c8c478e7951899f492be42defc0da", size = 5257565, upload-time = "2025-06-26T16:26:17.906Z" },
1865
+ { url = "https://files.pythonhosted.org/packages/a8/96/e08ff98f2c6426c98c8964513c5dab8d6eb81dadcd0af6f0c538ada78d33/lxml-6.0.0-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:c24b8efd9c0f62bad0439283c2c795ef916c5a6b75f03c17799775c7ae3c0c9e", size = 4713390, upload-time = "2025-06-26T16:26:20.292Z" },
1866
+ { url = "https://files.pythonhosted.org/packages/a8/83/6184aba6cc94d7413959f6f8f54807dc318fdcd4985c347fe3ea6937f772/lxml-6.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:afd27d8629ae94c5d863e32ab0e1d5590371d296b87dae0a751fb22bf3685741", size = 5066103, upload-time = "2025-06-26T16:26:22.765Z" },
1867
+ { url = "https://files.pythonhosted.org/packages/ee/01/8bf1f4035852d0ff2e36a4d9aacdbcc57e93a6cd35a54e05fa984cdf73ab/lxml-6.0.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:54c4855eabd9fc29707d30141be99e5cd1102e7d2258d2892314cf4c110726c3", size = 4791428, upload-time = "2025-06-26T16:26:26.461Z" },
1868
+ { url = "https://files.pythonhosted.org/packages/5c/f7/5495829a864bc5f8b0798d2b52a807c89966523140f3d6fa3a58ab6720ea/lxml-6.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:36531f81c8214e293097cd2b7873f178997dae33d3667caaae8bdfb9666b76c0", size = 5281290, upload-time = "2025-06-26T16:26:29.406Z" },
1869
+ { url = "https://files.pythonhosted.org/packages/79/56/6b8edb79d9ed294ccc4e881f4db1023af56ba451909b9ce79f2a2cd7c532/lxml-6.0.0-cp312-cp312-win32.whl", hash = "sha256:690b20e3388a7ec98e899fd54c924e50ba6693874aa65ef9cb53de7f7de9d64a", size = 3613495, upload-time = "2025-06-26T16:26:31.588Z" },
1870
+ { url = "https://files.pythonhosted.org/packages/0b/1e/cc32034b40ad6af80b6fd9b66301fc0f180f300002e5c3eb5a6110a93317/lxml-6.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:310b719b695b3dd442cdfbbe64936b2f2e231bb91d998e99e6f0daf991a3eba3", size = 4014711, upload-time = "2025-06-26T16:26:33.723Z" },
1871
+ { url = "https://files.pythonhosted.org/packages/55/10/dc8e5290ae4c94bdc1a4c55865be7e1f31dfd857a88b21cbba68b5fea61b/lxml-6.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:8cb26f51c82d77483cdcd2b4a53cda55bbee29b3c2f3ddeb47182a2a9064e4eb", size = 3674431, upload-time = "2025-06-26T16:26:35.959Z" },
1872
+ { url = "https://files.pythonhosted.org/packages/79/21/6e7c060822a3c954ff085e5e1b94b4a25757c06529eac91e550f3f5cd8b8/lxml-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6da7cd4f405fd7db56e51e96bff0865b9853ae70df0e6720624049da76bde2da", size = 8414372, upload-time = "2025-06-26T16:26:39.079Z" },
1873
+ { url = "https://files.pythonhosted.org/packages/a4/f6/051b1607a459db670fc3a244fa4f06f101a8adf86cda263d1a56b3a4f9d5/lxml-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b34339898bb556a2351a1830f88f751679f343eabf9cf05841c95b165152c9e7", size = 4593940, upload-time = "2025-06-26T16:26:41.891Z" },
1874
+ { url = "https://files.pythonhosted.org/packages/8e/74/dd595d92a40bda3c687d70d4487b2c7eff93fd63b568acd64fedd2ba00fe/lxml-6.0.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:51a5e4c61a4541bd1cd3ba74766d0c9b6c12d6a1a4964ef60026832aac8e79b3", size = 5214329, upload-time = "2025-06-26T16:26:44.669Z" },
1875
+ { url = "https://files.pythonhosted.org/packages/52/46/3572761efc1bd45fcafb44a63b3b0feeb5b3f0066886821e94b0254f9253/lxml-6.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d18a25b19ca7307045581b18b3ec9ead2b1db5ccd8719c291f0cd0a5cec6cb81", size = 4947559, upload-time = "2025-06-28T18:47:31.091Z" },
1876
+ { url = "https://files.pythonhosted.org/packages/94/8a/5e40de920e67c4f2eef9151097deb9b52d86c95762d8ee238134aff2125d/lxml-6.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d4f0c66df4386b75d2ab1e20a489f30dc7fd9a06a896d64980541506086be1f1", size = 5102143, upload-time = "2025-06-28T18:47:33.612Z" },
1877
+ { url = "https://files.pythonhosted.org/packages/7c/4b/20555bdd75d57945bdabfbc45fdb1a36a1a0ff9eae4653e951b2b79c9209/lxml-6.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f4b481b6cc3a897adb4279216695150bbe7a44c03daba3c894f49d2037e0a24", size = 5021931, upload-time = "2025-06-26T16:26:47.503Z" },
1878
+ { url = "https://files.pythonhosted.org/packages/d4/dd/39c8507c16db6031f8c1ddf70ed95dbb0a6d466a40002a3522c128aba472/lxml-6.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ae06fbab4f1bb7db4f7c8ca9897dc8db4447d1a2b9bee78474ad403437bcc29", size = 5247467, upload-time = "2025-06-26T16:26:49.998Z" },
1879
+ { url = "https://files.pythonhosted.org/packages/4d/56/732d49def0631ad633844cfb2664563c830173a98d5efd9b172e89a4800d/lxml-6.0.0-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:1fa377b827ca2023244a06554c6e7dc6828a10aaf74ca41965c5d8a4925aebb4", size = 4720601, upload-time = "2025-06-26T16:26:52.564Z" },
1880
+ { url = "https://files.pythonhosted.org/packages/8f/7f/6b956fab95fa73462bca25d1ea7fc8274ddf68fb8e60b78d56c03b65278e/lxml-6.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1676b56d48048a62ef77a250428d1f31f610763636e0784ba67a9740823988ca", size = 5060227, upload-time = "2025-06-26T16:26:55.054Z" },
1881
+ { url = "https://files.pythonhosted.org/packages/97/06/e851ac2924447e8b15a294855caf3d543424364a143c001014d22c8ca94c/lxml-6.0.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:0e32698462aacc5c1cf6bdfebc9c781821b7e74c79f13e5ffc8bfe27c42b1abf", size = 4790637, upload-time = "2025-06-26T16:26:57.384Z" },
1882
+ { url = "https://files.pythonhosted.org/packages/52/03/0e764ce00b95e008d76b99d432f1807f3574fb2945b496a17807a1645dbd/lxml-6.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7488a43033c958637b1a08cddc9188eb06d3ad36582cebc7d4815980b47e27ef", size = 5272430, upload-time = "2025-06-26T16:27:00.031Z" },
1883
+ { url = "https://files.pythonhosted.org/packages/5f/01/d48cc141bc47bc1644d20fe97bbd5e8afb30415ec94f146f2f76d0d9d098/lxml-6.0.0-cp313-cp313-win32.whl", hash = "sha256:5fcd7d3b1d8ecb91445bd71b9c88bdbeae528fefee4f379895becfc72298d181", size = 3612896, upload-time = "2025-06-26T16:27:04.251Z" },
1884
+ { url = "https://files.pythonhosted.org/packages/f4/87/6456b9541d186ee7d4cb53bf1b9a0d7f3b1068532676940fdd594ac90865/lxml-6.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:2f34687222b78fff795feeb799a7d44eca2477c3d9d3a46ce17d51a4f383e32e", size = 4013132, upload-time = "2025-06-26T16:27:06.415Z" },
1885
+ { url = "https://files.pythonhosted.org/packages/b7/42/85b3aa8f06ca0d24962f8100f001828e1f1f1a38c954c16e71154ed7d53a/lxml-6.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:21db1ec5525780fd07251636eb5f7acb84003e9382c72c18c542a87c416ade03", size = 3672642, upload-time = "2025-06-26T16:27:09.888Z" },
1886
+ ]
1887
+
1888
+ [[package]]
1889
+ name = "lxml-html-clean"
1890
+ version = "0.4.2"
1891
+ source = { registry = "https://pypi.org/simple" }
1892
+ dependencies = [
1893
+ { name = "lxml" },
1894
+ ]
1895
+ sdist = { url = "https://files.pythonhosted.org/packages/79/b6/466e71db127950fb8d172026a8f0a9f0dc6f64c8e78e2ca79f252e5790b8/lxml_html_clean-0.4.2.tar.gz", hash = "sha256:91291e7b5db95430abf461bc53440964d58e06cc468950f9e47db64976cebcb3", size = 21622, upload-time = "2025-04-09T11:33:59.432Z" }
1896
+ wheels = [
1897
+ { url = "https://files.pythonhosted.org/packages/4e/0b/942cb7278d6caad79343ad2ddd636ed204a47909b969d19114a3097f5aa3/lxml_html_clean-0.4.2-py3-none-any.whl", hash = "sha256:74ccfba277adcfea87a1e9294f47dd86b05d65b4da7c5b07966e3d5f3be8a505", size = 14184, upload-time = "2025-04-09T11:33:57.988Z" },
1898
+ ]
1899
+
1900
  [[package]]
1901
  name = "mako"
1902
  version = "1.3.10"
 
1921
  { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528, upload-time = "2023-06-03T06:41:11.019Z" },
1922
  ]
1923
 
1924
+ [[package]]
1925
+ name = "markdownify"
1926
+ version = "1.1.0"
1927
+ source = { registry = "https://pypi.org/simple" }
1928
+ dependencies = [
1929
+ { name = "beautifulsoup4" },
1930
+ { name = "six" },
1931
+ ]
1932
+ sdist = { url = "https://files.pythonhosted.org/packages/2f/78/c48fed23c7aebc2c16049062e72de1da3220c274de59d28c942acdc9ffb2/markdownify-1.1.0.tar.gz", hash = "sha256:449c0bbbf1401c5112379619524f33b63490a8fa479456d41de9dc9e37560ebd", size = 17127, upload-time = "2025-03-05T11:54:40.574Z" }
1933
+ wheels = [
1934
+ { url = "https://files.pythonhosted.org/packages/64/11/b751af7ad41b254a802cf52f7bc1fca7cabe2388132f2ce60a1a6b9b9622/markdownify-1.1.0-py3-none-any.whl", hash = "sha256:32a5a08e9af02c8a6528942224c91b933b4bd2c7d078f9012943776fc313eeef", size = 13901, upload-time = "2025-03-05T11:54:39.454Z" },
1935
+ ]
1936
+
1937
  [[package]]
1938
  name = "markupsafe"
1939
  version = "3.0.2"
 
2129
  { url = "https://files.pythonhosted.org/packages/eb/8d/776adee7bbf76365fdd7f2552710282c79a4ead5d2a46408c9043a2b70ba/networkx-3.5-py3-none-any.whl", hash = "sha256:0030d386a9a06dee3565298b4a734b68589749a544acbb6c412dc9e2489ec6ec", size = 2034406, upload-time = "2025-05-29T11:35:04.961Z" },
2130
  ]
2131
 
2132
+ [[package]]
2133
+ name = "newspaper3k"
2134
+ version = "0.2.8"
2135
+ source = { registry = "https://pypi.org/simple" }
2136
+ dependencies = [
2137
+ { name = "beautifulsoup4" },
2138
+ { name = "cssselect" },
2139
+ { name = "feedfinder2" },
2140
+ { name = "feedparser" },
2141
+ { name = "jieba3k" },
2142
+ { name = "lxml" },
2143
+ { name = "nltk" },
2144
+ { name = "pillow" },
2145
+ { name = "python-dateutil" },
2146
+ { name = "pyyaml" },
2147
+ { name = "requests" },
2148
+ { name = "tinysegmenter" },
2149
+ { name = "tldextract" },
2150
+ ]
2151
+ sdist = { url = "https://files.pythonhosted.org/packages/ce/fb/8f8525be0cafa48926e85b0c06a7cb3e2a892d340b8036f8c8b1b572df1c/newspaper3k-0.2.8.tar.gz", hash = "sha256:9f1bd3e1fb48f400c715abf875cc7b0a67b7ddcd87f50c9aeeb8fcbbbd9004fb", size = 205685, upload-time = "2018-09-28T04:58:23.53Z" }
2152
+ wheels = [
2153
+ { url = "https://files.pythonhosted.org/packages/d7/b9/51afecb35bb61b188a4b44868001de348a0e8134b4dfa00ffc191567c4b9/newspaper3k-0.2.8-py3-none-any.whl", hash = "sha256:44a864222633d3081113d1030615991c3dbba87239f6bbf59d91240f71a22e3e", size = 211132, upload-time = "2018-09-28T04:58:18.847Z" },
2154
+ ]
2155
+
2156
  [[package]]
2157
  name = "nltk"
2158
  version = "3.9.1"
 
2589
  { url = "https://files.pythonhosted.org/packages/c2/28/f53038a5a72cc4fd0b56c1eafb4ef64aec9685460d5ac34de98ca78b6e29/orjson-3.10.18-cp313-cp313-win_arm64.whl", hash = "sha256:f54c1385a0e6aba2f15a40d703b858bedad36ded0491e55d35d905b2c34a4cc3", size = 131186, upload-time = "2025-04-29T23:29:41.922Z" },
2590
  ]
2591
 
2592
+ [[package]]
2593
+ name = "outcome"
2594
+ version = "1.3.0.post0"
2595
+ source = { registry = "https://pypi.org/simple" }
2596
+ dependencies = [
2597
+ { name = "attrs" },
2598
+ ]
2599
+ sdist = { url = "https://files.pythonhosted.org/packages/98/df/77698abfac98571e65ffeb0c1fba8ffd692ab8458d617a0eed7d9a8d38f2/outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8", size = 21060, upload-time = "2023-10-26T04:26:04.361Z" }
2600
+ wheels = [
2601
+ { url = "https://files.pythonhosted.org/packages/55/8b/5ab7257531a5d830fc8000c476e63c935488d74609b50f9384a643ec0a62/outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b", size = 10692, upload-time = "2023-10-26T04:26:02.532Z" },
2602
+ ]
2603
+
2604
+ [[package]]
2605
+ name = "oxylabs"
2606
+ version = "2.0.0"
2607
+ source = { registry = "https://pypi.org/simple" }
2608
+ dependencies = [
2609
+ { name = "aiohttp" },
2610
+ { name = "requests" },
2611
+ ]
2612
+ sdist = { url = "https://files.pythonhosted.org/packages/56/03/eb10466e12d2a7aba1ff1e70264c443dedeba0e5721a9a1be7e9ac9e9092/oxylabs-2.0.0.tar.gz", hash = "sha256:a6ee24140509c7ea7935ce4c878469558402dd43657718a1cae399740b66beb0", size = 29130, upload-time = "2025-03-28T13:54:16.285Z" }
2613
+ wheels = [
2614
+ { url = "https://files.pythonhosted.org/packages/b7/c1/88bf70a327c86f8529ad3a4ae35e92fcebf05295668fca7973279e189afe/oxylabs-2.0.0-py3-none-any.whl", hash = "sha256:3848d53bc47acdcea16ea829dc52416cdf96edae130e17bb3ac7146b012387d7", size = 34274, upload-time = "2025-03-28T13:54:15.188Z" },
2615
+ ]
2616
+
2617
  [[package]]
2618
  name = "packaging"
2619
  version = "24.2"
 
2717
  { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567, upload-time = "2025-05-07T22:47:40.376Z" },
2718
  ]
2719
 
2720
+ [[package]]
2721
+ name = "playwright"
2722
+ version = "1.53.0"
2723
+ source = { registry = "https://pypi.org/simple" }
2724
+ dependencies = [
2725
+ { name = "greenlet" },
2726
+ { name = "pyee" },
2727
+ ]
2728
+ wheels = [
2729
+ { url = "https://files.pythonhosted.org/packages/f5/e2/2f107be74419280749723bd1197c99351f4b8a0a25e974b9764affb940b2/playwright-1.53.0-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:48a1a15ce810f0ffe512b6050de9871ea193b41dd3cc1bbed87b8431012419ba", size = 40392498, upload-time = "2025-06-25T21:48:34.17Z" },
2730
+ { url = "https://files.pythonhosted.org/packages/ac/d5/e8c57a4f6fd46059fb2d51da2d22b47afc886b42400f06b742cd4a9ba131/playwright-1.53.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a701f9498a5b87e3f929ec01cea3109fbde75821b19c7ba4bba54f6127b94f76", size = 38647035, upload-time = "2025-06-25T21:48:38.414Z" },
2731
+ { url = "https://files.pythonhosted.org/packages/4d/f3/da18cd7c22398531316e58fd131243fd9156fe7765aae239ae542a5d07d2/playwright-1.53.0-py3-none-macosx_11_0_universal2.whl", hash = "sha256:f765498341c4037b4c01e742ae32dd335622f249488ccd77ca32d301d7c82c61", size = 40392502, upload-time = "2025-06-25T21:48:42.293Z" },
2732
+ { url = "https://files.pythonhosted.org/packages/92/32/5d871c3753fbee5113eefc511b9e44c0006a27f2301b4c6bffa4346fbd94/playwright-1.53.0-py3-none-manylinux1_x86_64.whl", hash = "sha256:db19cb5b58f3b15cad3e2419f4910c053e889202fc202461ee183f1530d1db60", size = 45848364, upload-time = "2025-06-25T21:48:45.849Z" },
2733
+ { url = "https://files.pythonhosted.org/packages/dc/6b/9942f86661ff41332f9299db4950623123e60ca71e4fb6e6942fc0212624/playwright-1.53.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9276c9c935fc062f51f4f5107e56420afd6d9a524348dc437793dc2e34c742e3", size = 45235174, upload-time = "2025-06-25T21:48:49.579Z" },
2734
+ { url = "https://files.pythonhosted.org/packages/51/63/28b3f2d36e6a95e88f033d2aa7af06083f6f4aa0d9764759d96033cd053e/playwright-1.53.0-py3-none-win32.whl", hash = "sha256:36eedec101724ff5a000cddab87dd9a72a39f9b3e65a687169c465484e667c06", size = 35415131, upload-time = "2025-06-25T21:48:53.403Z" },
2735
+ { url = "https://files.pythonhosted.org/packages/a9/b5/4ca25974a90d16cfd4a9a953ee5a666cf484a0bdacb4eed484e5cab49e66/playwright-1.53.0-py3-none-win_amd64.whl", hash = "sha256:d68975807a0fd997433537f1dcf2893cda95884a39dc23c6f591b8d5f691e9e8", size = 35415138, upload-time = "2025-06-25T21:48:57.082Z" },
2736
+ { url = "https://files.pythonhosted.org/packages/9a/81/b42ff2116df5d07ccad2dc4eeb20af92c975a1fbc7cd3ed37b678468b813/playwright-1.53.0-py3-none-win_arm64.whl", hash = "sha256:fcfd481f76568d7b011571160e801b47034edd9e2383c43d83a5fb3f35c67885", size = 31188568, upload-time = "2025-06-25T21:49:00.194Z" },
2737
+ ]
2738
+
2739
  [[package]]
2740
  name = "primp"
2741
  version = "0.15.0"
 
2992
  { url = "https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6", size = 32327, upload-time = "2021-03-10T02:09:53.503Z" },
2993
  ]
2994
 
2995
+ [[package]]
2996
+ name = "pyee"
2997
+ version = "13.0.0"
2998
+ source = { registry = "https://pypi.org/simple" }
2999
+ dependencies = [
3000
+ { name = "typing-extensions" },
3001
+ ]
3002
+ sdist = { url = "https://files.pythonhosted.org/packages/95/03/1fd98d5841cd7964a27d729ccf2199602fe05eb7a405c1462eb7277945ed/pyee-13.0.0.tar.gz", hash = "sha256:b391e3c5a434d1f5118a25615001dbc8f669cf410ab67d04c4d4e07c55481c37", size = 31250, upload-time = "2025-03-17T18:53:15.955Z" }
3003
+ wheels = [
3004
+ { url = "https://files.pythonhosted.org/packages/9b/4d/b9add7c84060d4c1906abe9a7e5359f2a60f7a9a4f67268b2766673427d8/pyee-13.0.0-py3-none-any.whl", hash = "sha256:48195a3cddb3b1515ce0695ed76036b5ccc2ef3a9f963ff9f77aec0139845498", size = 15730, upload-time = "2025-03-17T18:53:14.532Z" },
3005
+ ]
3006
+
3007
  [[package]]
3008
  name = "pygments"
3009
  version = "2.19.1"
 
3022
  { url = "https://files.pythonhosted.org/packages/71/8b/dc3a72d98c22be7a4cbd664ad14c5a3e6295c2dbdf572865ed61e24b5e38/pypdf-5.6.0-py3-none-any.whl", hash = "sha256:ca6bf446bfb0a2d8d71d6d6bb860798d864c36a29b3d9ae8d7fc7958c59f88e7", size = 304208, upload-time = "2025-06-01T12:19:38.003Z" },
3023
  ]
3024
 
3025
+ [[package]]
3026
+ name = "pysocks"
3027
+ version = "1.7.1"
3028
+ source = { registry = "https://pypi.org/simple" }
3029
+ sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload-time = "2019-09-20T02:07:35.714Z" }
3030
+ wheels = [
3031
+ { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload-time = "2019-09-20T02:06:22.938Z" },
3032
+ ]
3033
+
3034
  [[package]]
3035
  name = "python-dateutil"
3036
  version = "2.9.0.post0"
 
3178
  { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847, upload-time = "2025-06-09T16:43:05.728Z" },
3179
  ]
3180
 
3181
+ [[package]]
3182
+ name = "requests-file"
3183
+ version = "2.1.0"
3184
+ source = { registry = "https://pypi.org/simple" }
3185
+ dependencies = [
3186
+ { name = "requests" },
3187
+ ]
3188
+ sdist = { url = "https://files.pythonhosted.org/packages/72/97/bf44e6c6bd8ddbb99943baf7ba8b1a8485bcd2fe0e55e5708d7fee4ff1ae/requests_file-2.1.0.tar.gz", hash = "sha256:0f549a3f3b0699415ac04d167e9cb39bccfb730cb832b4d20be3d9867356e658", size = 6891, upload-time = "2024-05-21T16:28:00.24Z" }
3189
+ wheels = [
3190
+ { url = "https://files.pythonhosted.org/packages/d7/25/dd878a121fcfdf38f52850f11c512e13ec87c2ea72385933818e5b6c15ce/requests_file-2.1.0-py2.py3-none-any.whl", hash = "sha256:cf270de5a4c5874e84599fc5778303d496c10ae5e870bfa378818f35d21bda5c", size = 4244, upload-time = "2024-05-21T16:27:57.733Z" },
3191
+ ]
3192
+
3193
  [[package]]
3194
  name = "requests-toolbelt"
3195
  version = "1.0.0"
 
3340
  { url = "https://files.pythonhosted.org/packages/eb/c4/231cac7a8385394ebbbb4f1ca662203e9d8c332825ab4f36ffc3ead09a42/scipy-1.16.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f56296fefca67ba605fd74d12f7bd23636267731a72cb3947963e76b8c0a25db", size = 38515076, upload-time = "2025-06-22T16:21:45.694Z" },
3341
  ]
3342
 
3343
+ [[package]]
3344
+ name = "selenium"
3345
+ version = "4.32.0"
3346
+ source = { registry = "https://pypi.org/simple" }
3347
+ dependencies = [
3348
+ { name = "certifi" },
3349
+ { name = "trio" },
3350
+ { name = "trio-websocket" },
3351
+ { name = "typing-extensions" },
3352
+ { name = "urllib3", extra = ["socks"] },
3353
+ { name = "websocket-client" },
3354
+ ]
3355
+ sdist = { url = "https://files.pythonhosted.org/packages/54/2d/fafffe946099033ccf22bf89e12eede14c1d3c5936110c5f6f2b9830722c/selenium-4.32.0.tar.gz", hash = "sha256:b9509bef4056f4083772abb1ae19ff57247d617a29255384b26be6956615b206", size = 870997, upload-time = "2025-05-02T20:35:27.325Z" }
3356
+ wheels = [
3357
+ { url = "https://files.pythonhosted.org/packages/ea/37/d07ed9d13e571b2115d4ed6956d156c66816ceec0b03b2e463e80d09f572/selenium-4.32.0-py3-none-any.whl", hash = "sha256:c4d9613f8a45693d61530c9660560fadb52db7d730237bc788ddedf442391f97", size = 9369668, upload-time = "2025-05-02T20:35:24.726Z" },
3358
+ ]
3359
+
3360
  [[package]]
3361
  name = "semantic-version"
3362
  version = "2.10.0"
 
3375
  { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" },
3376
  ]
3377
 
3378
+ [[package]]
3379
+ name = "sgmllib3k"
3380
+ version = "1.0.0"
3381
+ source = { registry = "https://pypi.org/simple" }
3382
+ sdist = { url = "https://files.pythonhosted.org/packages/9e/bd/3704a8c3e0942d711c1299ebf7b9091930adae6675d7c8f476a7ce48653c/sgmllib3k-1.0.0.tar.gz", hash = "sha256:7868fb1c8bfa764c1ac563d3cf369c381d1325d36124933a726f29fcdaa812e9", size = 5750, upload-time = "2010-08-24T14:33:52.445Z" }
3383
+
3384
  [[package]]
3385
  name = "shellingham"
3386
  version = "1.5.4"
 
3408
  { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" },
3409
  ]
3410
 
3411
+ [[package]]
3412
+ name = "sortedcontainers"
3413
+ version = "2.4.0"
3414
+ source = { registry = "https://pypi.org/simple" }
3415
+ sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" }
3416
+ wheels = [
3417
+ { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" },
3418
+ ]
3419
+
3420
  [[package]]
3421
  name = "soupsieve"
3422
  version = "2.7"
 
3426
  { url = "https://files.pythonhosted.org/packages/e7/9c/0e6afc12c269578be5c0c1c9f4b49a8d32770a080260c333ac04cc1c832d/soupsieve-2.7-py3-none-any.whl", hash = "sha256:6e60cc5c1ffaf1cebcc12e8188320b72071e922c2e897f737cadce79ad5d30c4", size = 36677, upload-time = "2025-04-20T18:50:07.196Z" },
3427
  ]
3428
 
3429
+ [[package]]
3430
+ name = "spider-client"
3431
+ version = "0.0.27"
3432
+ source = { registry = "https://pypi.org/simple" }
3433
+ dependencies = [
3434
+ { name = "requests" },
3435
+ ]
3436
+ sdist = { url = "https://files.pythonhosted.org/packages/70/fc/a2a4cc112c467f89921328d005c0ac2df9c81f62c8a6d445f747252f5856/spider-client-0.0.27.tar.gz", hash = "sha256:c3feaf5c491bd9a6c509efa0c8789452497073d9f68e70fc90e7626a6a8365aa", size = 5755, upload-time = "2024-06-18T23:51:42.33Z" }
3437
+
3438
  [[package]]
3439
  name = "sqlalchemy"
3440
  version = "2.0.41"
 
3607
  { url = "https://files.pythonhosted.org/packages/de/a8/8f499c179ec900783ffe133e9aab10044481679bb9aad78436d239eee716/tiktoken-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:5ea0edb6f83dc56d794723286215918c1cde03712cbbafa0348b33448faf5b95", size = 894669, upload-time = "2025-02-14T06:02:47.341Z" },
3608
  ]
3609
 
3610
+ [[package]]
3611
+ name = "tinysegmenter"
3612
+ version = "0.3"
3613
+ source = { registry = "https://pypi.org/simple" }
3614
+ sdist = { url = "https://files.pythonhosted.org/packages/17/82/86982e4b6d16e4febc79c2a1d68ee3b707e8a020c5d2bc4af8052d0f136a/tinysegmenter-0.3.tar.gz", hash = "sha256:ed1f6d2e806a4758a73be589754384cbadadc7e1a414c81a166fc9adf2d40c6d", size = 16893, upload-time = "2017-07-23T11:18:29.85Z" }
3615
+
3616
+ [[package]]
3617
+ name = "tldextract"
3618
+ version = "5.3.0"
3619
+ source = { registry = "https://pypi.org/simple" }
3620
+ dependencies = [
3621
+ { name = "filelock" },
3622
+ { name = "idna" },
3623
+ { name = "requests" },
3624
+ { name = "requests-file" },
3625
+ ]
3626
+ sdist = { url = "https://files.pythonhosted.org/packages/97/78/182641ea38e3cfd56e9c7b3c0d48a53d432eea755003aa544af96403d4ac/tldextract-5.3.0.tar.gz", hash = "sha256:b3d2b70a1594a0ecfa6967d57251527d58e00bb5a91a74387baa0d87a0678609", size = 128502, upload-time = "2025-04-22T06:19:37.491Z" }
3627
+ wheels = [
3628
+ { url = "https://files.pythonhosted.org/packages/67/7c/ea488ef48f2f544566947ced88541bc45fae9e0e422b2edbf165ee07da99/tldextract-5.3.0-py3-none-any.whl", hash = "sha256:f70f31d10b55c83993f55e91ecb7c5d84532a8972f22ec578ecfbe5ea2292db2", size = 107384, upload-time = "2025-04-22T06:19:36.304Z" },
3629
+ ]
3630
+
3631
  [[package]]
3632
  name = "tokenizers"
3633
  version = "0.21.1"
 
3758
  { name = "torch" },
3759
  ]
3760
 
3761
+ [[package]]
3762
+ name = "trio"
3763
+ version = "0.30.0"
3764
+ source = { registry = "https://pypi.org/simple" }
3765
+ dependencies = [
3766
+ { name = "attrs" },
3767
+ { name = "cffi", marker = "implementation_name != 'pypy' and os_name == 'nt'" },
3768
+ { name = "idna" },
3769
+ { name = "outcome" },
3770
+ { name = "sniffio" },
3771
+ { name = "sortedcontainers" },
3772
+ ]
3773
+ sdist = { url = "https://files.pythonhosted.org/packages/01/c1/68d582b4d3a1c1f8118e18042464bb12a7c1b75d64d75111b297687041e3/trio-0.30.0.tar.gz", hash = "sha256:0781c857c0c81f8f51e0089929a26b5bb63d57f927728a5586f7e36171f064df", size = 593776, upload-time = "2025-04-21T00:48:19.507Z" }
3774
+ wheels = [
3775
+ { url = "https://files.pythonhosted.org/packages/69/8e/3f6dfda475ecd940e786defe6df6c500734e686c9cd0a0f8ef6821e9b2f2/trio-0.30.0-py3-none-any.whl", hash = "sha256:3bf4f06b8decf8d3cf00af85f40a89824669e2d033bb32469d34840edcfc22a5", size = 499194, upload-time = "2025-04-21T00:48:17.167Z" },
3776
+ ]
3777
+
3778
+ [[package]]
3779
+ name = "trio-websocket"
3780
+ version = "0.12.2"
3781
+ source = { registry = "https://pypi.org/simple" }
3782
+ dependencies = [
3783
+ { name = "outcome" },
3784
+ { name = "trio" },
3785
+ { name = "wsproto" },
3786
+ ]
3787
+ sdist = { url = "https://files.pythonhosted.org/packages/d1/3c/8b4358e81f2f2cfe71b66a267f023a91db20a817b9425dd964873796980a/trio_websocket-0.12.2.tar.gz", hash = "sha256:22c72c436f3d1e264d0910a3951934798dcc5b00ae56fc4ee079d46c7cf20fae", size = 33549, upload-time = "2025-02-25T05:16:58.947Z" }
3788
+ wheels = [
3789
+ { url = "https://files.pythonhosted.org/packages/c7/19/eb640a397bba49ba49ef9dbe2e7e5c04202ba045b6ce2ec36e9cadc51e04/trio_websocket-0.12.2-py3-none-any.whl", hash = "sha256:df605665f1db533f4a386c94525870851096a223adcb97f72a07e8b4beba45b6", size = 21221, upload-time = "2025-02-25T05:16:57.545Z" },
3790
+ ]
3791
+
3792
  [[package]]
3793
  name = "triton"
3794
  version = "3.0.0"
 
3887
  { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" },
3888
  ]
3889
 
3890
+ [package.optional-dependencies]
3891
+ socks = [
3892
+ { name = "pysocks" },
3893
+ ]
3894
+
3895
  [[package]]
3896
  name = "uvicorn"
3897
  version = "0.34.3"
 
3914
  { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" },
3915
  ]
3916
 
3917
+ [[package]]
3918
+ name = "websocket-client"
3919
+ version = "1.8.0"
3920
+ source = { registry = "https://pypi.org/simple" }
3921
+ sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648, upload-time = "2024-04-23T22:16:16.976Z" }
3922
+ wheels = [
3923
+ { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826, upload-time = "2024-04-23T22:16:14.422Z" },
3924
+ ]
3925
+
3926
  [[package]]
3927
  name = "websockets"
3928
  version = "15.0.1"
 
4006
  { url = "https://files.pythonhosted.org/packages/2d/82/f56956041adef78f849db6b289b282e72b55ab8045a75abad81898c28d19/wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8", size = 23594, upload-time = "2025-01-14T10:35:44.018Z" },
4007
  ]
4008
 
4009
+ [[package]]
4010
+ name = "wsproto"
4011
+ version = "1.2.0"
4012
+ source = { registry = "https://pypi.org/simple" }
4013
+ dependencies = [
4014
+ { name = "h11" },
4015
+ ]
4016
+ sdist = { url = "https://files.pythonhosted.org/packages/c9/4a/44d3c295350d776427904d73c189e10aeae66d7f555bb2feee16d1e4ba5a/wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065", size = 53425, upload-time = "2022-08-23T19:58:21.447Z" }
4017
+ wheels = [
4018
+ { url = "https://files.pythonhosted.org/packages/78/58/e860788190eba3bcce367f74d29c4675466ce8dddfba85f7827588416f01/wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736", size = 24226, upload-time = "2022-08-23T19:58:19.96Z" },
4019
+ ]
4020
+
4021
  [[package]]
4022
  name = "yarl"
4023
  version = "1.20.1"