webscout 5.9__py3-none-any.whl → 6.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (57) hide show
  1. webscout/Agents/Onlinesearcher.py +22 -10
  2. webscout/Agents/functioncall.py +2 -2
  3. webscout/Bard.py +21 -21
  4. webscout/Local/__init__.py +6 -7
  5. webscout/Local/formats.py +404 -194
  6. webscout/Local/model.py +1074 -477
  7. webscout/Local/samplers.py +108 -144
  8. webscout/Local/thread.py +251 -410
  9. webscout/Local/ui.py +401 -0
  10. webscout/Local/utils.py +308 -131
  11. webscout/Provider/Amigo.py +5 -3
  12. webscout/Provider/ChatHub.py +209 -0
  13. webscout/Provider/Chatify.py +3 -3
  14. webscout/Provider/Cloudflare.py +3 -3
  15. webscout/Provider/DARKAI.py +1 -1
  16. webscout/Provider/Deepinfra.py +95 -389
  17. webscout/Provider/Deepseek.py +4 -6
  18. webscout/Provider/DiscordRocks.py +3 -3
  19. webscout/Provider/Free2GPT.py +3 -3
  20. webscout/Provider/NinjaChat.py +200 -0
  21. webscout/Provider/OLLAMA.py +4 -4
  22. webscout/Provider/RUBIKSAI.py +3 -3
  23. webscout/Provider/TTI/Nexra.py +3 -3
  24. webscout/Provider/TTI/__init__.py +2 -1
  25. webscout/Provider/TTI/aiforce.py +2 -2
  26. webscout/Provider/TTI/imgninza.py +136 -0
  27. webscout/Provider/Youchat.py +4 -5
  28. webscout/Provider/__init__.py +13 -6
  29. webscout/Provider/ai4chat.py +3 -2
  30. webscout/Provider/aimathgpt.py +193 -0
  31. webscout/Provider/bagoodex.py +145 -0
  32. webscout/Provider/bixin.py +3 -3
  33. webscout/Provider/cleeai.py +3 -3
  34. webscout/Provider/elmo.py +2 -5
  35. webscout/Provider/felo_search.py +1 -1
  36. webscout/Provider/gaurish.py +168 -0
  37. webscout/Provider/geminiprorealtime.py +160 -0
  38. webscout/Provider/julius.py +10 -40
  39. webscout/Provider/llamatutor.py +2 -2
  40. webscout/Provider/prefind.py +3 -3
  41. webscout/Provider/promptrefine.py +3 -3
  42. webscout/Provider/turboseek.py +1 -1
  43. webscout/Provider/twitterclone.py +25 -41
  44. webscout/Provider/upstage.py +3 -3
  45. webscout/Provider/x0gpt.py +6 -6
  46. webscout/exceptions.py +5 -1
  47. webscout/utils.py +3 -0
  48. webscout/version.py +1 -1
  49. webscout/webscout_search.py +154 -123
  50. {webscout-5.9.dist-info → webscout-6.1.dist-info}/METADATA +132 -157
  51. {webscout-5.9.dist-info → webscout-6.1.dist-info}/RECORD +55 -49
  52. {webscout-5.9.dist-info → webscout-6.1.dist-info}/WHEEL +1 -1
  53. webscout/Local/rawdog.py +0 -946
  54. webscout/Provider/Poe.py +0 -208
  55. {webscout-5.9.dist-info → webscout-6.1.dist-info}/LICENSE.md +0 -0
  56. {webscout-5.9.dist-info → webscout-6.1.dist-info}/entry_points.txt +0 -0
  57. {webscout-5.9.dist-info → webscout-6.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: webscout
3
- Version: 5.9
3
+ Version: 6.1
4
4
  Summary: Search for anything using Google, DuckDuckGo, phind.com, Contains AI models, can transcribe yt videos, temporary email and phone number generation, has TTS support, webai (terminal gpt and open interpreter) and offline LLMs and more
5
5
  Author: OEvortex
6
6
  Author-email: helpingai5@gmail.com
@@ -28,15 +28,14 @@ Requires-Dist: docstring-inheritance
28
28
  Requires-Dist: click
29
29
  Requires-Dist: curl-cffi
30
30
  Requires-Dist: nest-asyncio
31
- Requires-Dist: g4f >=0.2.2.3
31
+ Requires-Dist: g4f>=0.2.2.3
32
32
  Requires-Dist: g4f[webdriver]
33
33
  Requires-Dist: rich
34
34
  Requires-Dist: beautifulsoup4
35
35
  Requires-Dist: markdownify
36
- Requires-Dist: pydantic
37
36
  Requires-Dist: requests
38
37
  Requires-Dist: google-generativeai
39
- Requires-Dist: lxml >=5.2.2
38
+ Requires-Dist: lxml>=5.2.2
40
39
  Requires-Dist: termcolor
41
40
  Requires-Dist: orjson
42
41
  Requires-Dist: PyYAML
@@ -44,8 +43,6 @@ Requires-Dist: appdirs
44
43
  Requires-Dist: tls-client
45
44
  Requires-Dist: clipman
46
45
  Requires-Dist: playsound
47
- Requires-Dist: poe-api-wrapper
48
- Requires-Dist: pyreqwest-impersonate
49
46
  Requires-Dist: ollama
50
47
  Requires-Dist: pyfiglet
51
48
  Requires-Dist: pillow
@@ -56,14 +53,22 @@ Requires-Dist: emoji
56
53
  Requires-Dist: openai
57
54
  Requires-Dist: prompt-toolkit
58
55
  Requires-Dist: fake-useragent
56
+ Requires-Dist: primp
57
+ Requires-Dist: pyreqwest-impersonate
58
+ Requires-Dist: lxml-html-clean
59
+ Requires-Dist: gradio-client
60
+ Requires-Dist: psutil
61
+ Requires-Dist: colorlog
62
+ Requires-Dist: yaspin
59
63
  Provides-Extra: dev
60
- Requires-Dist: ruff >=0.1.6 ; extra == 'dev'
61
- Requires-Dist: pytest >=7.4.2 ; extra == 'dev'
64
+ Requires-Dist: ruff>=0.1.6; extra == "dev"
65
+ Requires-Dist: pytest>=7.4.2; extra == "dev"
62
66
  Provides-Extra: local
63
- Requires-Dist: llama-cpp-python ; extra == 'local'
64
- Requires-Dist: colorama ; extra == 'local'
65
- Requires-Dist: numpy ; extra == 'local'
66
- Requires-Dist: huggingface-hub[cli] ; extra == 'local'
67
+ Requires-Dist: llama-cpp-python; extra == "local"
68
+ Requires-Dist: colorama; extra == "local"
69
+ Requires-Dist: numpy; extra == "local"
70
+ Requires-Dist: huggingface-hub[cli]; extra == "local"
71
+ Requires-Dist: unicorn; extra == "local"
67
72
 
68
73
  <div align="center">
69
74
  <!-- Replace `#` with your actual links -->
@@ -108,7 +113,7 @@ Requires-Dist: huggingface-hub[cli] ; extra == 'local'
108
113
  * **Text-to-Speech (TTS):** Convert text into natural-sounding speech using various TTS providers.
109
114
  * **WebAI:** Experience the power of terminal-based GPT and an open interpreter for code execution and more.
110
115
  * **Offline LLMs:** Utilize powerful language models offline with GGUF support.
111
- * **Extensive Provider Ecosystem:** Explore a vast collection of providers, including Poe, BasedGPT, DeepSeek, and many others.
116
+ * **Extensive Provider Ecosystem:** Explore a vast collection of providers, including BasedGPT, DeepSeek, and many others.
112
117
  * **Local LLM Execution:** Run GGUF models locally with minimal configuration.
113
118
  * **Rawdog Scripting:** Execute Python scripts directly within your terminal using the `rawdog` feature.
114
119
  * **GGUF Conversion & Quantization:** Convert and quantize Hugging Face models to GGUF format.
@@ -871,7 +876,7 @@ print(result)
871
876
  ___
872
877
  </details>
873
878
 
874
- ### 🖼️ Text to Images - DeepInfraImager, PollinationsAI, BlackboxAIImager, AiForceimagger, NexraImager, HFimager, ArtbitImager
879
+ ### 🖼️ Text to Images - DeepInfraImager, PollinationsAI, BlackboxAIImager, AiForceimager, NexraImager, HFimager, ArtbitImager, NinjaImager, WebSimAI, AmigoImager
875
880
 
876
881
  **Every TTI provider has the same usage code, you just need to change the import.**
877
882
 
@@ -900,7 +905,7 @@ voicepods.play_audio(audio_file)
900
905
 
901
906
  ```python
902
907
  from webscout import WEBS as w
903
- R = w().chat("Who are you", model='gpt-4o-mini') # GPT-3.5 Turbo, mixtral-8x7b, llama-3-70b, claude-3-haiku, gpt-4o-mini
908
+ R = w().chat("Who are you", model='gpt-4o-mini') # mixtral-8x7b, llama-3.1-70b, claude-3-haiku, gpt-4o-mini
904
909
  print(R)
905
910
  ```
906
911
 
@@ -1128,10 +1133,6 @@ response_str = a.chat(prompt)
1128
1133
  print(response_str)
1129
1134
  ```
1130
1135
 
1131
- ### `Poe` - Chat with Poe
1132
-
1133
- Usage code is similar to other providers.
1134
-
1135
1136
  ### `BasedGPT` - Chat with GPT
1136
1137
 
1137
1138
  ```python
@@ -1210,27 +1211,6 @@ message = ai.get_message(response)
1210
1211
  print(message)
1211
1212
  ```
1212
1213
 
1213
- ### `Deepinfra` - VLM
1214
-
1215
- ```python
1216
- from webscout.Provider import VLM
1217
-
1218
- # Load your image
1219
- image_path = r"C:\Users\koula\OneDrive\Desktop\Webscout\photo_2024-03-25_19-23-40.jpg"
1220
-
1221
- vlm_instance = VLM(model="llava-hf/llava-1.5-7b-hf", is_conversation=True, max_tokens=600, timeout=30, system_prompt="You are a Helpful AI.")
1222
- image_base64 = vlm_instance.encode_image_to_base64(image_path)
1223
-
1224
- prompt = {
1225
- "content": "What is in this image?",
1226
- "image": image_base64
1227
- }
1228
-
1229
- # Generate a response
1230
- response = vlm_instance.chat(prompt)
1231
- print(response)
1232
-
1233
- ```
1234
1214
 
1235
1215
  ### `GROQ`
1236
1216
 
@@ -1344,117 +1324,120 @@ print(a.chat("HelpingAI-9B"))
1344
1324
  ```python
1345
1325
  import json
1346
1326
  import logging
1347
- from webscout import LLAMA3, WEBS
1327
+ from webscout import Julius, WEBS
1348
1328
  from webscout.Agents.functioncall import FunctionCallingAgent
1329
+ from rich import print
1349
1330
 
1350
- # Define tools that the agent can use
1351
- tools = [
1352
- {
1353
- "type": "function",
1354
- "function": {
1355
- "name": "UserDetail",
1356
- "parameters": {
1357
- "type": "object",
1358
- "title": "UserDetail",
1359
- "properties": {
1360
- "name": {
1361
- "title": "Name",
1362
- "type": "string"
1331
+ class FunctionExecutor:
1332
+ def __init__(self, llama):
1333
+ self.llama = llama
1334
+
1335
+ def execute_web_search(self, arguments):
1336
+ query = arguments.get("query")
1337
+ if not query:
1338
+ return "Please provide a search query."
1339
+ with WEBS() as webs:
1340
+ search_results = webs.text(query, max_results=5)
1341
+ prompt = (
1342
+ f"Based on the following search results:\n\n{search_results}\n\n"
1343
+ f"Question: {query}\n\n"
1344
+ "Please provide a comprehensive answer to the question based on the search results above. "
1345
+ "Include relevant webpage URLs in your answer when appropriate. "
1346
+ "If the search results don't contain relevant information, please state that and provide the best answer you can based on your general knowledge."
1347
+ )
1348
+ return self.llama.chat(prompt)
1349
+
1350
+ def execute_general_ai(self, arguments):
1351
+ question = arguments.get("question")
1352
+ if not question:
1353
+ return "Please provide a question."
1354
+ return self.llama.chat(question)
1355
+
1356
+ def execute_UserDetail(self, arguments):
1357
+ name = arguments.get("name")
1358
+ age = arguments.get("age")
1359
+ return f"User details - Name: {name}, Age: {age}"
1360
+
1361
+ def main():
1362
+ tools = [
1363
+ {
1364
+ "type": "function",
1365
+ "function": {
1366
+ "name": "UserDetail",
1367
+ "parameters": {
1368
+ "type": "object",
1369
+ "properties": {
1370
+ "name": {"title": "Name", "type": "string"},
1371
+ "age": {"title": "Age", "type": "integer"}
1363
1372
  },
1364
- "age": {
1365
- "title": "Age",
1366
- "type": "integer"
1367
- }
1368
- },
1369
- "required": ["name", "age"]
1373
+ "required": ["name", "age"]
1374
+ }
1370
1375
  }
1371
- }
1372
- },
1373
- {
1374
- "type": "function",
1375
- "function": {
1376
- "name": "web_search",
1377
- "description": "Search query on google",
1378
- "parameters": {
1379
- "type": "object",
1380
- "properties": {
1381
- "query": {
1382
- "type": "string",
1383
- "description": "web search query"
1384
- }
1385
- },
1386
- "required": ["query"]
1376
+ },
1377
+ {
1378
+ "type": "function",
1379
+ "function": {
1380
+ "name": "web_search",
1381
+ "description": "Search the web for information using Google Search.",
1382
+ "parameters": {
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "query": {
1386
+ "type": "string",
1387
+ "description": "The search query to be executed."
1388
+ }
1389
+ },
1390
+ "required": ["query"]
1391
+ }
1387
1392
  }
1388
- }
1389
- },
1390
- { # New general AI tool
1391
- "type": "function",
1392
- "function": {
1393
- "name": "general_ai",
1394
- "description": "Use general AI knowledge to answer the question",
1395
- "parameters": {
1396
- "type": "object",
1397
- "properties": {
1398
- "question": {
1399
- "type": "string",
1400
- "description": "The question to answer"
1401
- }
1402
- },
1403
- "required": ["question"]
1393
+ },
1394
+ {
1395
+ "type": "function",
1396
+ "function": {
1397
+ "name": "general_ai",
1398
+ "description": "Use general AI knowledge to answer the question",
1399
+ "parameters": {
1400
+ "type": "object",
1401
+ "properties": {
1402
+ "question": {"type": "string", "description": "The question to answer"}
1403
+ },
1404
+ "required": ["question"]
1405
+ }
1404
1406
  }
1405
1407
  }
1406
- }
1407
- ]
1408
+ ]
1408
1409
 
1409
- # Initialize the FunctionCallingAgent with the specified tools
1410
- agent = FunctionCallingAgent(tools=tools)
1411
- llama = LLAMA3()
1412
- from rich import print
1413
- # Input message from the user
1414
- user = input(">>> ")
1415
- message = user
1416
- function_call_data = agent.function_call_handler(message)
1417
- print(f"Function Call Data: {function_call_data}")
1418
-
1419
- # Check for errors in the function call data
1420
- if "error" not in function_call_data:
1421
- function_name = function_call_data.get("tool_name") # Use 'tool_name' instead of 'name'
1422
- if function_name == "web_search":
1423
- arguments = function_call_data.get("tool_input", {}) # Get tool input arguments
1424
- query = arguments.get("query")
1425
- if query:
1426
- with WEBS() as webs:
1427
- search_results = webs.text(query, max_results=5)
1428
- prompt = (
1429
- f"Based on the following search results:\n\n{search_results}\n\n"
1430
- f"Question: {user}\n\n"
1431
- "Please provide a comprehensive answer to the question based on the search results above. "
1432
- "Include relevant webpage URLs in your answer when appropriate. "
1433
- "If the search results don't contain relevant information, please state that and provide the best answer you can based on your general knowledge."
1434
- )
1435
- response = llama.chat(prompt)
1436
- for c in response:
1437
- print(c, end="", flush=True)
1410
+ agent = FunctionCallingAgent(tools=tools)
1411
+ llama = Julius()
1412
+ function_executor = FunctionExecutor(llama)
1438
1413
 
1414
+ user_input = input(">>> ")
1415
+ function_call_data = agent.function_call_handler(user_input)
1416
+ print(f"Function Call Data: {function_call_data}")
1417
+
1418
+ try:
1419
+ if "error" not in function_call_data:
1420
+ function_name = function_call_data.get("tool_name")
1421
+ arguments = function_call_data.get("tool_input", {})
1422
+
1423
+ execute_function = getattr(function_executor, f"execute_{function_name}", None)
1424
+ if execute_function:
1425
+ result = execute_function(arguments)
1426
+ print("Function Execution Result:")
1427
+ for c in result:
1428
+ print(c, end="", flush=True)
1429
+ else:
1430
+ print(f"Unknown function: {function_name}")
1439
1431
  else:
1440
- print("Please provide a search query.")
1441
- elif function_name == "general_ai": # Handle general AI tool
1442
- arguments = function_call_data.get("tool_input", {})
1443
- question = arguments.get("question")
1444
- if question:
1445
- response = llama.chat(question) # Use LLM directly
1446
- for c in response:
1447
- print(c, end="", flush=True)
1448
- else:
1449
- print("Please provide a question.")
1450
- else:
1451
- result = agent.execute_function(function_call_data)
1452
- print(f"Function Execution Result: {result}")
1453
- else:
1454
- print(f"Error: {function_call_data['error']}")
1432
+ print(f"Error: {function_call_data['error']}")
1433
+ except Exception as e:
1434
+ print(f"An error occurred: {str(e)}")
1435
+
1436
+ if __name__ == "__main__":
1437
+ main()
1455
1438
  ```
1456
1439
 
1457
- ### LLAMA3, pizzagpt, RUBIKSAI, Koala, Darkai, AI4Chat, Farfalle, PIAI, Felo, XDASH, Julius, YouChat, YEPCHAT, Cloudflare, TurboSeek, Editee, AI21, Chatify, Cerebras, X0GPT, Lepton, GEMINIAPI, Cleeai, Elmo, Genspark, Upstage, Free2GPT, Bing, DiscordRocks, GPTWeb, AIGameIO, LlamaTutor, PromptRefine, AIUncensored, TutorAI, Bixin, ChatGPTES
1440
+ ### LLAMA3, pizzagpt, RUBIKSAI, Koala, Darkai, AI4Chat, Farfalle, PIAI, Felo, XDASH, Julius, YouChat, YEPCHAT, Cloudflare, TurboSeek, Editee, AI21, Chatify, Cerebras, X0GPT, Lepton, GEMINIAPI, Cleeai, Elmo, Genspark, Upstage, Free2GPT, Bing, DiscordRocks, GPTWeb, AIGameIO, LlamaTutor, PromptRefine, AIUncensored, TutorAI, Bixin, ChatGPTES, Bagoodex, ChatHub, AmigoChat, AIMathGPT, GaurishCerebras, NinjaChat, GeminiPro
1458
1441
 
1459
1442
  Code is similar to other providers.
1460
1443
 
@@ -1493,24 +1476,16 @@ Webscout can now run GGUF models locally. You can download and run your favorite
1493
1476
  **Example:**
1494
1477
 
1495
1478
  ```python
1496
- from webscout.Local.utils import download_model
1497
- from webscout.Local.model import Model
1498
- from webscout.Local.thread import Thread
1499
- from webscout.Local import formats
1500
-
1501
- # 1. Download the model
1502
- repo_id = "microsoft/Phi-3-mini-4k-instruct-gguf" # Replace with the desired Hugging Face repo
1503
- filename = "Phi-3-mini-4k-instruct-q4.gguf" # Replace with the correct filename
1504
- model_path = download_model(repo_id, filename, token="")
1505
-
1506
- # 2. Load the model
1507
- model = Model(model_path, n_gpu_layers=4)
1508
-
1509
- # 3. Create a Thread for conversation
1510
- thread = Thread(model, formats.phi3)
1511
-
1512
- # 4. Start interacting with the model
1513
- thread.interact()
1479
+ from webscout.Local import *
1480
+ model_path = download_model("Qwen/Qwen2.5-0.5B-Instruct-GGUF", "qwen2.5-0.5b-instruct-q2_k.gguf", token=None)
1481
+ model = Model(model_path, n_gpu_layers=0, context_length=2048)
1482
+ thread = Thread(model, format=chatml)
1483
+ # print(thread.send("hi")) #send a single msg to ai
1484
+
1485
+ # thread.interact() # interact with the model in terminal
1486
+ # start webui
1487
+ # webui = WebUI(thread)
1488
+ # webui.start(host="0.0.0.0", port=8080, ssl=True) #Use ssl=True and make cert and key for https
1514
1489
  ```
1515
1490
 
1516
1491
  ## 🐶 Local-rawdog
@@ -1,7 +1,7 @@
1
1
  webscout/AIauto.py,sha256=C92j0QtSmxG978fELezsgzxjq75VjQ5ld6Ybp4go1SU,11765
2
2
  webscout/AIbase.py,sha256=vv0N8sDYaZKkKD9fkLpK1CA51ksZl0_PQ82tB431c-4,9215
3
3
  webscout/AIutel.py,sha256=JLA3wqfSZJC_DMmI5Kjj8AxvQTMvs3F9MgqSn3koiZ4,38580
4
- webscout/Bard.py,sha256=8XkV_j0gJ-krYYR7bd5UORWMk7VlyTd3z66RPYBtdxg,13134
4
+ webscout/Bard.py,sha256=CmDhKC67Ki2xA8Rkme6EC-gLmq3PhAAAGd5tcpJ0KJo,13234
5
5
  webscout/Bing_search.py,sha256=8pW3ZxFDfVsrtayEoAsAAoXoOCAGv2Jk_-HvOBNfCV4,6228
6
6
  webscout/DWEBS.py,sha256=xB3L_u47vu9KZCFNUb_H6WX5OLeL068Er9t9Mbss9YU,7895
7
7
  webscout/LLM.py,sha256=LbGCZdJf8A5dwfoGS4tyy39tAh5BDdhMZP0ScKaaQfU,4184
@@ -9,110 +9,116 @@ webscout/YTdownloader.py,sha256=qVROwMmRpHy95NsbzZvpidEKuqMwFTCi7bW4jJgbl44,3915
9
9
  webscout/__init__.py,sha256=scVR3GK70Ds0x5fDB_PxbZUH3cUBG4Pgw1Tac5bvKro,1328
10
10
  webscout/__main__.py,sha256=ZtTRgsRjUi2JOvYFLF1ZCh55Sdoz94I-BS-TlJC7WDU,126
11
11
  webscout/cli.py,sha256=RlBKeS9CSIsiBMqlzxevWtKjbY9htkZvA7J0bM_hHE8,14999
12
- webscout/exceptions.py,sha256=jqrZvxV2JnZFqvmCsKG1lQRd6fYQh7qk3ceA7m7-k9k,611
12
+ webscout/exceptions.py,sha256=b9P7Sp3CEFigHAeTQli2DPLBZ-3sh8L-UWUd2-2RcVY,793
13
13
  webscout/g4f.py,sha256=NNcnlOtIWV9R93UsBN4jBGBEJ9sJ-Np1WbgjkGVDcYc,24487
14
14
  webscout/models.py,sha256=5iQIdtedT18YuTZ3npoG7kLMwcrKwhQ7928dl_7qZW0,692
15
15
  webscout/requestsHTMLfix.py,sha256=LZ9uynkwpGqVS2uFB5bMjdh6gLjSMerHPEqzVCvICIs,27961
16
16
  webscout/tempid.py,sha256=2a_YDFUCZy3TJVfqEPSLyMvHBjDk9gp5FiFCvJwsOaw,7984
17
17
  webscout/transcriber.py,sha256=kRymTd69zCjXdduCf7Gabt93Kz1l5ubsCwfwqs-pHl8,22334
18
- webscout/utils.py,sha256=2O8_lftBKsv5OEvVaXCN-h0sipup0m3jxzhFdWQrdY8,2873
19
- webscout/version.py,sha256=0qCEhMIDlvSH6Er40hcseC9YSDak1CWWY0waSfvrjJk,44
18
+ webscout/utils.py,sha256=LVW7U0XcGYqigqxV6D5YXeGMrc_mt7PnNG_YnKf9bBM,3059
19
+ webscout/version.py,sha256=2nDWOp3vhJrfUeqqJJsf8o0xLdjDq_72L5_WdV-5CWY,44
20
20
  webscout/webai.py,sha256=MzDWMFv8oI3wmeL3SwvxUrZdBRyh9MMn97kNTvgL5T4,87744
21
- webscout/webscout_search.py,sha256=AOHkaMLmFvM1mS--wVyLiPrDAb5BPLaURBHjleWOi4w,43743
21
+ webscout/webscout_search.py,sha256=HHdO9XLToC_9nIMM_SaTOKKfzdhrKjb7o8Zi3ZD1O7Y,44744
22
22
  webscout/webscout_search_async.py,sha256=2-RCa9Deahhw3Bti78kXfVaX8y3Aygy4L7HeCaITk9M,14519
23
23
  webscout/websx_search.py,sha256=5hfkkmGFhyQzojUpvMzIOJ3DBZIBNS90UReaacsfu6s,521
24
- webscout/Agents/Onlinesearcher.py,sha256=O6mPSUK9nLEnQzwtJ1s2l9tQAp7W_37dvu3Tz0gJT7M,7733
24
+ webscout/Agents/Onlinesearcher.py,sha256=dzb08Bz9QMMeP1mQTxIK2mkpwthhNJJND7TIRmM3dwA,7942
25
25
  webscout/Agents/__init__.py,sha256=qJXx2Q1yAupE0FJabXvs49Nxwm3IsREyuMWp8Q1VYiE,60
26
- webscout/Agents/functioncall.py,sha256=aOyYu_CdZlZEC1XYI73aSCdJoj1IR--o_Do9NNzfO8g,7615
26
+ webscout/Agents/functioncall.py,sha256=n9KOv0mWcCew5WI_xbI-zGe8hgTj-zNb73bAkZxrJfA,7609
27
27
  webscout/Extra/__init__.py,sha256=GG1qUwS-HspT4TeeAIT4qFpM8PaO1ZdQhpelctaM7Rs,99
28
28
  webscout/Extra/autollama.py,sha256=qM8alxlWzg10BGIYKZBUtIEAXrkvEOWBwSxdPp3zq9I,6226
29
29
  webscout/Extra/gguf.py,sha256=RvSp7xuaD6epAA9iAzthUnAQ3HA5N-svMyKUadAVnw8,7009
30
30
  webscout/Extra/weather.py,sha256=wdSrQxZRpbNfyaux0BeLdaDWyde5KwxZjSUM13820X0,2460
31
31
  webscout/Extra/weather_ascii.py,sha256=Aed-_EUzvTEjBXbOpNRxkJBLa6fXsclknXP06HnQD18,808
32
- webscout/Local/__init__.py,sha256=RN6klpbabPGNX2YzPm_hdeUcQvieUwvJt22uAO2RKSM,238
32
+ webscout/Local/__init__.py,sha256=Mte7RYlelBND2yof_HJ3MMZYBVeTISNFU2-LiFKSbU4,228
33
33
  webscout/Local/_version.py,sha256=jk6j7Rb0VWezDG1ZFhgYJpZiyL5rCivaiA86_jJecmk,139
34
- webscout/Local/formats.py,sha256=BiZZSoN3e8S6-S-ykBL9ogSUs0vK11GaZ3ghc9U8GRk,18994
35
- webscout/Local/model.py,sha256=T_bzNNrxEyOyLyhp6fKwiuVBBkXC2a37LzJVCxFIxOU,30710
36
- webscout/Local/rawdog.py,sha256=ojY_O8Vb1KvR34OwWdfLgllgaAK_7HMf64ElMATvCXs,36689
37
- webscout/Local/samplers.py,sha256=qXwU4eLXER-2aCYzcJcTgA6BeFmi5GMpTDUX1C9pTN4,4372
38
- webscout/Local/thread.py,sha256=Lyf_N2CaGAn2usSWSiUXLPAgpWub8vUu_tgFgtnvZVA,27408
39
- webscout/Local/utils.py,sha256=CSt9IqHhVGk_nJEnKvSFbLhC5nNf01e0MtwpgMmF9pA,6197
34
+ webscout/Local/formats.py,sha256=aSyTDn4-K6IvoVEMo0MSMxFueY2gUH2j36da48krQMg,26573
35
+ webscout/Local/model.py,sha256=49k61kfzGhBbA38ul2yqdrmFd6YPOipJ37vCXOWIxaM,50987
36
+ webscout/Local/samplers.py,sha256=6khEmMiMqIRO-qssjv8PEVomNG2yoLhDM6Wa9YBRbuI,6769
37
+ webscout/Local/thread.py,sha256=ctnoJtkOpKbpdlqCjsnyM2sI-3_AKg9PzNwS3QAIifQ,23603
38
+ webscout/Local/ui.py,sha256=FhqBcC7SVHwRfvrnTduoa7gpQNWYzrSc7OGm89ErNPY,15064
39
+ webscout/Local/utils.py,sha256=SpSs8tGUClnrSVNr7hp9NoaT1bl8V28c0vZ9m6R5d0k,12417
40
40
  webscout/Provider/AI21.py,sha256=JBh-xnspxTZNMcl-Gd0Cgseqht9gTM64TUv9I4Imc9k,6218
41
- webscout/Provider/Amigo.py,sha256=KCYzUkBtLIY8-_Nf1woPuc9IAgseqbC5YGNhn3Yty8c,11295
41
+ webscout/Provider/Amigo.py,sha256=rGzprs37Bdbg-wj2clan1YYjfjyCWiZxDv25lpjk16U,11613
42
42
  webscout/Provider/Andi.py,sha256=mKhrnN_TR3rVEBy-oZosEcujF83hISiFeBVM1mHYz2k,10107
43
43
  webscout/Provider/BasedGPT.py,sha256=u1s72bQ33iuBqf5u7SWdez8_Eu7MTCM_iZoEW91t9CI,8309
44
44
  webscout/Provider/Bing.py,sha256=zxIzq7dlqaLskx9LsYppbMJuwfGtYid3Uh0gIhZ0hps,9001
45
45
  webscout/Provider/Blackboxai.py,sha256=ioEhw03eiM65tPvgyZKOCGFzqOT8la59W7HydNGILIw,16815
46
46
  webscout/Provider/ChatGPTES.py,sha256=t_Qjn1ShNX0uYp5dJzv6Y7DPQM8HUTgvcBauhFz0-Io,8815
47
- webscout/Provider/Chatify.py,sha256=CL3fJuCOHkS9fEDcKaEKaiNkuHpRJsS3ioJvGL3sBw0,6333
48
- webscout/Provider/Cloudflare.py,sha256=018DBwjEpMYp7UeMF1A0Ec7a329GWis-bqicTG3gPbk,10768
47
+ webscout/Provider/ChatHub.py,sha256=lM82-FH5fMQcNmKAaQUGfwwX2kMaBZtkCdMALMYYa6w,7343
48
+ webscout/Provider/Chatify.py,sha256=QYgZAEmhLkEnR7oyr-qUs6OSHoNJm2BgMr41f84Ntbg,6370
49
+ webscout/Provider/Cloudflare.py,sha256=KZ2aZj-K5se_Xn8GPozJ3xRx2lJhf36uIu0Tyx-jH54,10801
49
50
  webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
50
- webscout/Provider/DARKAI.py,sha256=Iv2ulI1voGfmsHzoS1PmzBupruKUNbCn6gtrYRlzPp8,9072
51
- webscout/Provider/Deepinfra.py,sha256=yycDPi1do63vs_u_fR0GlT-6ml0AVFR2zFVVosHMvk0,18420
52
- webscout/Provider/Deepseek.py,sha256=jp8cZhbmscDjlXLCGI8MhDGORkbbxyeUlCqu5Z5GGSI,9210
53
- webscout/Provider/DiscordRocks.py,sha256=SF--1fCfVKKUgIcrKUNpParNyqvTysQIcK9BKZv-Acg,11342
51
+ webscout/Provider/DARKAI.py,sha256=bogR9SikV0MuYBkyWWvbqV2oeJVSV5oiMrpwiG0HBcw,9061
52
+ webscout/Provider/Deepinfra.py,sha256=djm8LSDj6aummNSym4HrJHZD2CCVJ_er1oxiFLiq1N4,6389
53
+ webscout/Provider/Deepseek.py,sha256=B3ph24Xmv__o3eyyUonFsVQgouO0i4ydIqp5oTe5aXc,9113
54
+ webscout/Provider/DiscordRocks.py,sha256=fRkVBCyDMZf0SoaNPK7KXAsh8mQj0JWDb7ifYpL9PQQ,11372
54
55
  webscout/Provider/EDITEE.py,sha256=cGMTQiMROo7ohSBTOzs2vZneUs1Usjh_7ZFQ61JtD-k,7734
55
56
  webscout/Provider/Farfalle.py,sha256=eVmSB4Dq6P2epo8dd6CyCtyxvOMFwvk6f0Ikb9nZ2d0,9017
56
- webscout/Provider/Free2GPT.py,sha256=qj21ViMIz06kw1A91scGtohPjQVgF_kb5xj37uv9Sho,8985
57
+ webscout/Provider/Free2GPT.py,sha256=Lf8dd9iacry_GRr6CT86Cjcp-oNzLyw1O_TWIPDFDxk,9037
57
58
  webscout/Provider/GPTWeb.py,sha256=egVGQ8cptr4wlCfrCNA2DM0oXYqhRcje9zxYK5txb2s,7429
58
59
  webscout/Provider/Gemini.py,sha256=Vg2MLqQ_qxHkcN7Zikife1dyVK-y94ik8y6MAu-VzUI,7801
59
60
  webscout/Provider/Groq.py,sha256=iqyewnxWwN7fMG-dqAR_SyUqImfyZS880lO5iaXso9c,28636
60
61
  webscout/Provider/Koboldai.py,sha256=gpRgyDe4OQWwNqT7MWnNrJx4dnFmCW23KUx0Ezjgchk,15185
61
62
  webscout/Provider/Llama.py,sha256=N01p3ZVD1HgRnNNxhjRhBVD4m_qiextdyF1KDfJlqbE,7703
62
63
  webscout/Provider/Llama3.py,sha256=9jXo8k4ReFGkF01InzaBgUCKUJ0O5Zix3A0pHWRGtJU,7617
63
- webscout/Provider/OLLAMA.py,sha256=mFkwjnKNS1AL6Qhgq_JuUInTRzF8IFPPHNwoBpynEkc,7016
64
+ webscout/Provider/NinjaChat.py,sha256=hxffMI9VShu91raY4k7eq9JtU0ReNHoPFVoxc0yq17M,8633
65
+ webscout/Provider/OLLAMA.py,sha256=NO23OqRcVj0RhU5bnd4y21m_Yfh6JYxc3azxHgzKvmg,7017
64
66
  webscout/Provider/Openai.py,sha256=32uxZmZOovzshMQmqDcJ39If7N_UW4B3EeYmaxP_GwE,19983
65
67
  webscout/Provider/PI.py,sha256=IodVvGR_RIZpGJ0ypFF4U6NBMZAZ5O1BlRFMelot8so,8364
66
68
  webscout/Provider/Perplexity.py,sha256=vcTjwFPi2WC-ck91V3QE_EtmCwFcWaQHku4aAzMoPPM,21461
67
69
  webscout/Provider/Phind.py,sha256=NA_b3B4h-kutX6wdoEg4THPfZggl2UeXPbramzZ6oiU,19297
68
70
  webscout/Provider/PizzaGPT.py,sha256=tEuEJAGbv-mTd479i3EgaqHd4NwgkrmMW0fpSsGm_N0,7207
69
- webscout/Provider/Poe.py,sha256=ObUxa-Fa2Dq7sJcV0hc65m09StS9uWsB2-bR2rSjXDY,7510
70
- webscout/Provider/RUBIKSAI.py,sha256=uJlJfnX6kDU2mXhmmRZIn3U_y_bSntwmPuXmXH66W_8,8484
71
+ webscout/Provider/RUBIKSAI.py,sha256=fHCOAFWGXIESA05Bmuqtx6ZChnWomHOMwndfTLv1Hg8,8517
71
72
  webscout/Provider/Reka.py,sha256=RZG1YZ5rd7WWmOTGoM_2IpEAKn1MzemHWYad4US4Q8s,8258
72
73
  webscout/Provider/TeachAnything.py,sha256=0pQfktjnzM_7UElYVxWTIiHU2WvgNs57CxEuu89F5aw,6776
73
- webscout/Provider/Youchat.py,sha256=WQz19_CBkL4eh-S6qO5Vq8torp607LFf2mMuTrtespA,9012
74
- webscout/Provider/__init__.py,sha256=_Gce12_bz4Qv0IA8gimY-a6sMQK6FJ8j7NRglaYcLmM,2779
75
- webscout/Provider/ai4chat.py,sha256=ewUcqjr3hrd27fgcvj6ijvoWVnSjdoA1iK0c8dn2VJo,8067
74
+ webscout/Provider/Youchat.py,sha256=G6I4TqjZuX3refFF3SkOgl_YXY57hjsMg_wRjPgqWIE,9014
75
+ webscout/Provider/__init__.py,sha256=BhRT9si6wgPvwxm-yTBG9hR3mFudHwVpTm4zzT_-6No,2939
76
+ webscout/Provider/ai4chat.py,sha256=av96iS4QPt9IzhcswowmDY2F8IUSLl1YVHZ4bAbfO-s,8140
76
77
  webscout/Provider/aigames.py,sha256=vGiGYNLvVBfwwsBSWwDKZbvJsFy8SYsFWRKqx7U7ALY,8083
77
- webscout/Provider/bixin.py,sha256=eRh8cinC4Cpkbt10zLTe2KEdTcSxFZyRrg5l7f1Las4,10547
78
+ webscout/Provider/aimathgpt.py,sha256=BdXNxEHQP11p6m0wl2Q-uben46A6lMKOg89utV1S7aI,7320
79
+ webscout/Provider/bagoodex.py,sha256=OdYIyvypX-Vkok9zAr6F5NwFQx_z0bKhiw8U4tTFw5o,5023
80
+ webscout/Provider/bixin.py,sha256=tBelpS34RYFwXwe2XSnlnlskEw6o2sPOFWoN-MJN6hE,10577
78
81
  webscout/Provider/cerebras.py,sha256=N9Z7wY9pQRhh7chMSDirgHd1GV8Jwjeb3RmYB1pcww4,7302
79
- webscout/Provider/cleeai.py,sha256=9XRS48ZnBYCttiiTOSxk7tZIuQucELtas7dw3L2QRPg,7998
80
- webscout/Provider/elmo.py,sha256=jLpIT7w1t8zFthSyvbHXMKsrKgTuOAJ91dg7zkeSjmY,9384
81
- webscout/Provider/felo_search.py,sha256=7yQ4YpjCrlzdb4IENrVATiWoJqYTxR7QduUZK_klDWY,6842
82
+ webscout/Provider/cleeai.py,sha256=NCivTCZU_BU3umuF-rHweNhdlnJE9Hwsd5A3611bFTM,8050
83
+ webscout/Provider/elmo.py,sha256=6C-j8xLfgyMjmv8jdjey0BPzl_UwEFpMEbBtYobfPd0,9387
84
+ webscout/Provider/felo_search.py,sha256=cGuSVTwLiCleUWs4OEQhEYUjL2D8z87Km47cRogI7aQ,6879
85
+ webscout/Provider/gaurish.py,sha256=OUiMlTlrPqRqokckR2WyxDljWLN-DhvsoMhi3LKijAo,6244
82
86
  webscout/Provider/geminiapi.py,sha256=sGg7AncRShMacLTBwn39CzG4zsRz9JSBwVO4LlUdt6g,7869
87
+ webscout/Provider/geminiprorealtime.py,sha256=OrpUtmmv__7bgoLfyY3IUosTWW_3MDw5eUP-iMKLYr0,5867
83
88
  webscout/Provider/genspark.py,sha256=h1dTcs50EsDH2-aioYKcPggh28kaJnwHOM7gG4s0FTY,8727
84
- webscout/Provider/julius.py,sha256=DS2jsEz_McEb_Ma57ji6w9hRMoYycOGxfjFkh9ZUXLw,9883
89
+ webscout/Provider/julius.py,sha256=1JANcowWAn2zI7wCpAJWg5KW3cQNcMTfnWXwk9oblNM,8563
85
90
  webscout/Provider/koala.py,sha256=qBtqjTvhoMQdDE8qUH0XuNa_x2bic77d7CUjIVboask,10106
86
91
  webscout/Provider/learnfastai.py,sha256=j2hYwCVNpWZM4rN_4my9R0IfStNoAsIXjkvr_CRYcA0,9790
87
92
  webscout/Provider/lepton.py,sha256=4RiQ4YNJljX558yhSUqws6pf1Yhf7pWIesa4SRQCry8,7590
88
- webscout/Provider/llamatutor.py,sha256=xO9XpiCRf_PzR_o-yCvs6AFqjI584d0OXT_lU0G0y1k,8844
93
+ webscout/Provider/llamatutor.py,sha256=DijA4Y1CVDz-Ks8pACTSb6hnOxdQD2IHw-_ztRqhyPQ,8871
89
94
  webscout/Provider/meta.py,sha256=TpoStt2nTUTCYxx4GI3IOQ7gX_Mi36pL7HhtjPvLtZQ,30717
90
- webscout/Provider/prefind.py,sha256=3SoSfZ9CVDMDNP4Topne5dwF7YJVuSWYUmjEIjFKgd4,9289
91
- webscout/Provider/promptrefine.py,sha256=av_8ywl5Bez-uDfm7bO705rOHHaIZqyRXws66xE901g,7434
92
- webscout/Provider/turboseek.py,sha256=msIDtdi7-7UbjdTyzXFZgpOt0_MAWRpEac8O7N0SsB8,8539
95
+ webscout/Provider/prefind.py,sha256=msw_kXO59Xz-xG5f72O3WIww-HVyUAj-WpByeLiCB1U,9306
96
+ webscout/Provider/promptrefine.py,sha256=_8NEk376wXuB2ws51GGBegmkv-oz4dG7Ll5nHPCdd8c,7460
97
+ webscout/Provider/turboseek.py,sha256=N7Sn9UyMMAfwjz7RUaW8XfihlQO2YTF00YIlDuCFvaY,8571
93
98
  webscout/Provider/tutorai.py,sha256=lnuZJ9rN-sYjTXOBTkUuKsjO6LErrBkh-bDhziEGZB8,14743
94
- webscout/Provider/twitterclone.py,sha256=6XD0dK6K9DygfSIU5MJLMnQhJkJR-ChZvQ5TZtdXcnc,9825
95
- webscout/Provider/upstage.py,sha256=D2QSj7LcBsKyjp230LYdGwY6eO2j__wtK9d-8swjSW0,9204
96
- webscout/Provider/x0gpt.py,sha256=jxQWGE0E1KjJCZas2BkRmNRWrijXbFAsE2amkPExcVw,6504
99
+ webscout/Provider/twitterclone.py,sha256=xqPcMOIkRLpzs4E1e3vNo_kJt55KfUuYZf_g0cjEePk,9248
100
+ webscout/Provider/upstage.py,sha256=rdH94hIwR98HKfar576WzVmgdB1DU2H8qaChUmJFtPc,9237
101
+ webscout/Provider/x0gpt.py,sha256=Z8U4MQIRfhHpdarHO6_BZ27veXMDEAneguJ7uFSD_HU,6478
97
102
  webscout/Provider/xdash.py,sha256=wyn1tBLwe4lo8LBqEFrr0hFDPj84z2p8PONdyzsj5f4,7369
98
103
  webscout/Provider/yep.py,sha256=ge7a3cK02G6tbT0_q9glH7ujCx3QlgrqwBuHasQVYfQ,20581
99
- webscout/Provider/TTI/Nexra.py,sha256=0zyf0nKJEPjOQd4z_2eNur14hfO9Z2JwHILLj9urdJI,4589
104
+ webscout/Provider/TTI/Nexra.py,sha256=4-ktIYnyWWLb8KHuyzzHV_docjpBukVwjLTICoindyA,4619
100
105
  webscout/Provider/TTI/PollinationsAI.py,sha256=ELMc92hYXzS1uFZtRB-tbFb39C3YqpxnfM8dVcucPE0,5485
101
106
  webscout/Provider/TTI/WebSimAI.py,sha256=tbUjvu945M35HOINLLuwvKZB_xUOmHuF69K75KiKDwU,5223
102
- webscout/Provider/TTI/__init__.py,sha256=g_2ADXF3Y5fbwdLJCKMXjLupEZNB2_f_MHk_yMBW2GA,229
103
- webscout/Provider/TTI/aiforce.py,sha256=20QCCJeNUjjeYpts2ROYoI0BAwzjEXlYJnLN3khCIwg,6265
107
+ webscout/Provider/TTI/__init__.py,sha256=mexrCwXr-JMcA_KbDvAbdKX_4fX-s7vaiK92YnXC-Jk,254
108
+ webscout/Provider/TTI/aiforce.py,sha256=LIt7cZU1W2LBEGk-QyUYO3cvyPjlxODWYF28kQ6xzZI,6263
104
109
  webscout/Provider/TTI/amigo.py,sha256=m5X0nlUdROHNalqkBP8A7ZZQlr7XmIWbdd7qEBWsAtw,5830
105
110
  webscout/Provider/TTI/artbit.py,sha256=59rclp-Ker6CeIG6w0Kdte0gwgN5OUcDXi-AhbPnTeo,5077
106
111
  webscout/Provider/TTI/blackboximage.py,sha256=P3P8lg4-CCcDB1sPhVaP5oB9hqEhiErOTs2IX_Pv4ro,5848
107
112
  webscout/Provider/TTI/deepinfra.py,sha256=4x3knEeQnjhan5Y6uogK3dXFVa3r8UjN51n91Wm7Qfg,5975
108
113
  webscout/Provider/TTI/huggingface.py,sha256=bowc61na8BR941Ux4_PJh_wiuzGPwnmWp_VCZ5cGacY,6268
114
+ webscout/Provider/TTI/imgninza.py,sha256=87-FIQlf7i0MwxQ5gO5ovbEEDlsjQN2bCvLB4DySHBs,5472
109
115
  webscout/Provider/TTS/__init__.py,sha256=uGhNvQUrElyPfxoXs5V9xJpLuIyShe3yKHif5MaERxA,77
110
116
  webscout/Provider/TTS/parler.py,sha256=NbS2IGhyZiTNQ3jNG3v1XWyVioHuBdsP0MIvQq7BKOg,3805
111
117
  webscout/Provider/TTS/streamElements.py,sha256=aaE55W_bAzvL3-pl7tHs_xU7dSZB5_V7ix-usoe-4aM,7398
112
118
  webscout/Provider/TTS/voicepod.py,sha256=wAAnpcpDyej72UjIRhEnEmcoJnUqp1lPCLiiwJMYJic,4343
113
- webscout-5.9.dist-info/LICENSE.md,sha256=9P0imsudI7MEvZe2pOcg8rKBn6E5FGHQ-riYozZI-Bk,2942
114
- webscout-5.9.dist-info/METADATA,sha256=atP7_c-HoMmGZ828xnoEQBYvadbwVDmV9n0wLviDxLU,50768
115
- webscout-5.9.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
116
- webscout-5.9.dist-info/entry_points.txt,sha256=Hh4YIIjvkqB9SVxZ2ri4DZUkgEu_WF_5_r_nZDIvfG8,73
117
- webscout-5.9.dist-info/top_level.txt,sha256=nYIw7OKBQDr_Z33IzZUKidRD3zQEo8jOJYkMVMeN334,9
118
- webscout-5.9.dist-info/RECORD,,
119
+ webscout-6.1.dist-info/LICENSE.md,sha256=9P0imsudI7MEvZe2pOcg8rKBn6E5FGHQ-riYozZI-Bk,2942
120
+ webscout-6.1.dist-info/METADATA,sha256=2O-psmg3Xk8GQlazW1g2HGLXOyiXOJINg5YkEgH2ZpA,50386
121
+ webscout-6.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
122
+ webscout-6.1.dist-info/entry_points.txt,sha256=Hh4YIIjvkqB9SVxZ2ri4DZUkgEu_WF_5_r_nZDIvfG8,73
123
+ webscout-6.1.dist-info/top_level.txt,sha256=nYIw7OKBQDr_Z33IzZUKidRD3zQEo8jOJYkMVMeN334,9
124
+ webscout-6.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.1.0)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5