webscout 8.2.5__py3-none-any.whl → 8.2.6__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 (45) hide show
  1. webscout/AIauto.py +112 -22
  2. webscout/AIutel.py +240 -344
  3. webscout/Extra/autocoder/autocoder.py +66 -5
  4. webscout/Provider/AISEARCH/scira_search.py +2 -1
  5. webscout/Provider/GizAI.py +6 -4
  6. webscout/Provider/Nemotron.py +218 -0
  7. webscout/Provider/OPENAI/scirachat.py +2 -1
  8. webscout/Provider/TeachAnything.py +8 -5
  9. webscout/Provider/WiseCat.py +1 -1
  10. webscout/Provider/WrDoChat.py +370 -0
  11. webscout/Provider/__init__.py +4 -6
  12. webscout/Provider/ai4chat.py +5 -3
  13. webscout/Provider/akashgpt.py +59 -66
  14. webscout/Provider/freeaichat.py +57 -43
  15. webscout/Provider/scira_chat.py +2 -1
  16. webscout/Provider/scnet.py +4 -1
  17. webscout/__init__.py +0 -1
  18. webscout/conversation.py +305 -446
  19. webscout/swiftcli/__init__.py +80 -794
  20. webscout/swiftcli/core/__init__.py +7 -0
  21. webscout/swiftcli/core/cli.py +297 -0
  22. webscout/swiftcli/core/context.py +104 -0
  23. webscout/swiftcli/core/group.py +241 -0
  24. webscout/swiftcli/decorators/__init__.py +28 -0
  25. webscout/swiftcli/decorators/command.py +221 -0
  26. webscout/swiftcli/decorators/options.py +220 -0
  27. webscout/swiftcli/decorators/output.py +252 -0
  28. webscout/swiftcli/exceptions.py +21 -0
  29. webscout/swiftcli/plugins/__init__.py +9 -0
  30. webscout/swiftcli/plugins/base.py +135 -0
  31. webscout/swiftcli/plugins/manager.py +262 -0
  32. webscout/swiftcli/utils/__init__.py +59 -0
  33. webscout/swiftcli/utils/formatting.py +252 -0
  34. webscout/swiftcli/utils/parsing.py +267 -0
  35. webscout/version.py +1 -1
  36. {webscout-8.2.5.dist-info → webscout-8.2.6.dist-info}/METADATA +1 -1
  37. {webscout-8.2.5.dist-info → webscout-8.2.6.dist-info}/RECORD +41 -28
  38. webscout/LLM.py +0 -442
  39. webscout/Provider/PizzaGPT.py +0 -228
  40. webscout/Provider/promptrefine.py +0 -193
  41. webscout/Provider/tutorai.py +0 -270
  42. {webscout-8.2.5.dist-info → webscout-8.2.6.dist-info}/WHEEL +0 -0
  43. {webscout-8.2.5.dist-info → webscout-8.2.6.dist-info}/entry_points.txt +0 -0
  44. {webscout-8.2.5.dist-info → webscout-8.2.6.dist-info}/licenses/LICENSE.md +0 -0
  45. {webscout-8.2.5.dist-info → webscout-8.2.6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,267 @@
1
+ """Utility functions for parsing and validating command-line arguments."""
2
+
3
+ import os
4
+ import json
5
+ import yaml
6
+ from pathlib import Path
7
+ from typing import Any, Dict, List, Optional, Union, Type
8
+
9
+ from ..exceptions import BadParameter, UsageError
10
+
11
+ def parse_args(args: List[str]) -> Dict[str, Any]:
12
+ """
13
+ Parse command line arguments into a dictionary.
14
+
15
+ Args:
16
+ args: List of command line arguments
17
+
18
+ Returns:
19
+ Dictionary of parsed arguments
20
+
21
+ Example:
22
+ >>> parse_args(['--name', 'test', '--flag', '-n', '42'])
23
+ {'name': 'test', 'flag': True, 'n': '42'}
24
+ """
25
+ parsed = {}
26
+ i = 0
27
+ while i < len(args):
28
+ arg = args[i]
29
+
30
+ # Handle flags/options
31
+ if arg.startswith('-'):
32
+ key = arg.lstrip('-').replace('-', '_')
33
+
34
+ # Check if next arg is a value or another flag
35
+ if i + 1 >= len(args) or args[i + 1].startswith('-'):
36
+ parsed[key] = True # Flag without value
37
+ else:
38
+ parsed[key] = args[i + 1]
39
+ i += 1
40
+ else:
41
+ # Positional argument
42
+ parsed[f'arg{len([k for k in parsed.keys() if k.startswith("arg")])}'] = arg
43
+
44
+ i += 1
45
+
46
+ return parsed
47
+
48
+ def validate_required(
49
+ params: Dict[str, Any],
50
+ required: List[str]
51
+ ) -> None:
52
+ """
53
+ Validate required parameters are present.
54
+
55
+ Args:
56
+ params: Parameter dictionary
57
+ required: List of required parameter names
58
+
59
+ Raises:
60
+ UsageError: If required parameter is missing
61
+ """
62
+ missing = [p for p in required if p not in params]
63
+ if missing:
64
+ raise UsageError(f"Missing required parameters: {', '.join(missing)}")
65
+
66
+ def convert_type(
67
+ value: str,
68
+ type_: Type,
69
+ param_name: str
70
+ ) -> Any:
71
+ """
72
+ Convert string value to specified type.
73
+
74
+ Args:
75
+ value: String value to convert
76
+ type_: Target type
77
+ param_name: Parameter name for error messages
78
+
79
+ Returns:
80
+ Converted value
81
+
82
+ Raises:
83
+ BadParameter: If conversion fails
84
+ """
85
+ try:
86
+ if type_ == bool:
87
+ return value.lower() in ('true', 't', 'yes', 'y', '1')
88
+ return type_(value)
89
+ except (ValueError, TypeError):
90
+ raise BadParameter(
91
+ f"Invalid value for {param_name}: {value} (expected {type_.__name__})"
92
+ )
93
+
94
+ def validate_choice(
95
+ value: Any,
96
+ choices: List[Any],
97
+ param_name: str,
98
+ case_sensitive: bool = True
99
+ ) -> None:
100
+ """
101
+ Validate value is one of allowed choices.
102
+
103
+ Args:
104
+ value: Value to validate
105
+ choices: List of allowed choices
106
+ param_name: Parameter name for error messages
107
+ case_sensitive: Whether to do case-sensitive comparison
108
+
109
+ Raises:
110
+ BadParameter: If value not in choices
111
+ """
112
+ if not case_sensitive and isinstance(value, str):
113
+ if value.lower() not in [str(c).lower() for c in choices]:
114
+ raise BadParameter(
115
+ f"Invalid choice for {param_name}: {value} "
116
+ f"(choose from {', '.join(str(c) for c in choices)})"
117
+ )
118
+ elif value not in choices:
119
+ raise BadParameter(
120
+ f"Invalid choice for {param_name}: {value} "
121
+ f"(choose from {', '.join(str(c) for c in choices)})"
122
+ )
123
+
124
+ def load_config_file(
125
+ path: Union[str, Path],
126
+ format: str = 'auto',
127
+ required: bool = True
128
+ ) -> Dict[str, Any]:
129
+ """
130
+ Load configuration from file.
131
+
132
+ Args:
133
+ path: Path to config file
134
+ format: File format (json, yaml, or auto)
135
+ required: Whether file is required
136
+
137
+ Returns:
138
+ Configuration dictionary
139
+
140
+ Raises:
141
+ UsageError: If required file not found or invalid format
142
+ """
143
+ path = Path(os.path.expanduser(path))
144
+
145
+ if not path.exists():
146
+ if required:
147
+ raise UsageError(f"Config file not found: {path}")
148
+ return {}
149
+
150
+ # Auto-detect format from extension
151
+ if format == 'auto':
152
+ format = path.suffix.lstrip('.').lower()
153
+ if format not in ('json', 'yaml', 'yml'):
154
+ raise UsageError(f"Unsupported config format: {format}")
155
+
156
+ try:
157
+ with open(path) as f:
158
+ if format == 'json':
159
+ return json.load(f)
160
+ elif format in ('yaml', 'yml'):
161
+ return yaml.safe_load(f)
162
+ else:
163
+ raise UsageError(f"Unsupported config format: {format}")
164
+ except Exception as e:
165
+ raise UsageError(f"Error loading config file: {str(e)}")
166
+
167
+ def parse_key_value(
168
+ value: str,
169
+ separator: str = '='
170
+ ) -> tuple:
171
+ """
172
+ Parse key-value string.
173
+
174
+ Args:
175
+ value: String in format "key=value"
176
+ separator: Key-value separator
177
+
178
+ Returns:
179
+ Tuple of (key, value)
180
+
181
+ Raises:
182
+ BadParameter: If string not in key=value format
183
+ """
184
+ try:
185
+ key, value = value.split(separator, 1)
186
+ return key.strip(), value.strip()
187
+ except ValueError:
188
+ raise BadParameter(
189
+ f"Invalid key-value pair: {value} (expected format: key{separator}value)"
190
+ )
191
+
192
+ def parse_list(
193
+ value: str,
194
+ separator: str = ','
195
+ ) -> List[str]:
196
+ """
197
+ Parse comma-separated list.
198
+
199
+ Args:
200
+ value: Comma-separated string
201
+ separator: List item separator
202
+
203
+ Returns:
204
+ List of strings
205
+ """
206
+ return [x.strip() for x in value.split(separator) if x.strip()]
207
+
208
+ def parse_dict(
209
+ value: str,
210
+ item_separator: str = ',',
211
+ key_value_separator: str = '='
212
+ ) -> Dict[str, str]:
213
+ """
214
+ Parse dictionary string.
215
+
216
+ Args:
217
+ value: String in format "key1=value1,key2=value2"
218
+ item_separator: Separator between items
219
+ key_value_separator: Separator between keys and values
220
+
221
+ Returns:
222
+ Dictionary of key-value pairs
223
+
224
+ Example:
225
+ >>> parse_dict("name=test,count=42")
226
+ {'name': 'test', 'count': '42'}
227
+ """
228
+ result = {}
229
+ if not value:
230
+ return result
231
+
232
+ items = parse_list(value, item_separator)
233
+ for item in items:
234
+ key, value = parse_key_value(item, key_value_separator)
235
+ result[key] = value
236
+
237
+ return result
238
+
239
+ def get_env_var(
240
+ name: str,
241
+ type_: Type = str,
242
+ required: bool = False,
243
+ default: Any = None
244
+ ) -> Any:
245
+ """
246
+ Get and validate environment variable.
247
+
248
+ Args:
249
+ name: Environment variable name
250
+ type_: Expected type
251
+ required: Whether variable is required
252
+ default: Default value if not set
253
+
254
+ Returns:
255
+ Environment variable value
256
+
257
+ Raises:
258
+ UsageError: If required variable not set
259
+ """
260
+ value = os.environ.get(name)
261
+
262
+ if value is None:
263
+ if required:
264
+ raise UsageError(f"Required environment variable not set: {name}")
265
+ return default
266
+
267
+ return convert_type(value, type_, name)
webscout/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "8.2.5"
1
+ __version__ = "8.2.6"
2
2
  __prog__ = "webscout"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webscout
3
- Version: 8.2.5
3
+ Version: 8.2.6
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
@@ -1,13 +1,12 @@
1
- webscout/AIauto.py,sha256=7zf3YHvSItQwKvfbS3Nl1sGdaqha5mjaQOizdFNcMlQ,4928
1
+ webscout/AIauto.py,sha256=SvOhkz1irK67s-SHKUnGp6NHirejr51xV4qg5ZNdQMY,9276
2
2
  webscout/AIbase.py,sha256=ejzsyXAK82eo-2Cg8epljxlxrcHnQeeLt6SKurePOVY,9272
3
- webscout/AIutel.py,sha256=HpdGTFT1P7zx9v_2KZAnHf4B1WQTCm8xKmL2WTX8atI,15125
3
+ webscout/AIutel.py,sha256=pSTzcY8-RwE9CoPYGQ3aIgCsZES1g98w-dQcwUswfk0,8816
4
4
  webscout/Bard.py,sha256=T4X1aQczWU8XyvWqVLvp_JxnHHz5GTbdrM9RRK9Bq5Y,41046
5
5
  webscout/DWEBS.py,sha256=OnoKtIkrlNtYlGL_CCPsLet8cj2wKxqquFB8RdBxXfk,18621
6
- webscout/LLM.py,sha256=p8Zq5P8lCcg98R1b6YQeUIzmf0b6pJDX_QDjwOXl870,16788
7
- webscout/__init__.py,sha256=Ce-d49C2BuIRwp4I_Cwl9D0AZxfHFZkYXZqBUkw44NI,1060
6
+ webscout/__init__.py,sha256=vOmNYCYC0bJ2mSMCIqrFl3E7gwMudGj0kELPcTwZz7M,1033
8
7
  webscout/__main__.py,sha256=qtkMZK5jzQ79ZkFAuZBxMgayuhmw3aRDj1F8Pt06NW4,108
9
8
  webscout/cli.py,sha256=kn-HoPlgzyWns0cCCMXncB1UsqChE0DYSQgWcJPysHw,21300
10
- webscout/conversation.py,sha256=qzeH8vuh34yGZLyJeQgA76VAG5vCusu4WNhMIbNavrs,22876
9
+ webscout/conversation.py,sha256=8pKCbU5bObVrzGCFhSnFnFOpNFzyjeD-oWk4ON3621A,16881
11
10
  webscout/exceptions.py,sha256=cj0BDCZhB46g_vJ0r2PH0U_T35dqZro-rWu6tvtIZ3c,12833
12
11
  webscout/models.py,sha256=C7QY-KDkqFCI698t9pvTHQ27rYadPIvwaYHJ3-AOCJI,6566
13
12
  webscout/optimizers.py,sha256=NlnxWCav7cTyjfeLHuq2pUCgqgW1pljWbMTklHYMGwo,9954
@@ -15,7 +14,7 @@ webscout/prompt_manager.py,sha256=j4MLYx3SpeeTxzsbgUGAHWLtJ1HAF6eaWOzJCAiGND4,10
15
14
  webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
16
15
  webscout/update_checker.py,sha256=5FCr6p1zLVASXcXkxKEgR7bFvICbpzJdgRTr3teKFCs,4217
17
16
  webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
18
- webscout/version.py,sha256=VQc2-DJrRA5QLyn2jnaTkTZTKtELKDpOiucRFH8k7c8,46
17
+ webscout/version.py,sha256=0fdHrafxIpAxox27aIkP_gidiFmTTcAyFJLe96xef7M,46
19
18
  webscout/webscout_search.py,sha256=aEv6_wcwFWomfUGUm-udHdMKULcMbv6SR3Gxhx8ycdQ,56691
20
19
  webscout/webscout_search_async.py,sha256=SS6hLvlMRQT_KNuqZUfSuL7Tz-KTEDIXCn97yXSsNeI,35870
21
20
  webscout/yep_search.py,sha256=gCXleUK_1Gy6B6fMPZ8MurwboPiMmbft3bhk1qISCdQ,12295
@@ -44,7 +43,7 @@ webscout/Extra/YTToolkit/ytapi/stream.py,sha256=yjIrAFgSNN0Ba8JxwN3M85EgrAMnknZp
44
43
  webscout/Extra/YTToolkit/ytapi/utils.py,sha256=mmmUCDMXy3TKauPj6T7PWfEYBAcQ8WiR13xspmlT_SM,2028
45
44
  webscout/Extra/YTToolkit/ytapi/video.py,sha256=rP4dGzi6QkdB7oHaQU_HGb_auKW8NnuMq2diaBCkSzE,8912
46
45
  webscout/Extra/autocoder/__init__.py,sha256=Py5-Lq6xLwzp4odeJdGVJ91EgKpPLRMcNyX6jAZpOvQ,230
47
- webscout/Extra/autocoder/autocoder.py,sha256=ifyaG0uf5ahOZ-2jBpsj19yf55xiEvU6SXKsnJD1N7I,33332
46
+ webscout/Extra/autocoder/autocoder.py,sha256=rs_kOMXAMkR2qy3bJqb4Xp-VjJJacUojo_BpP_k8f9w,35323
48
47
  webscout/Extra/autocoder/autocoder_utiles.py,sha256=JNdeuoo6SmfH5KOOOvklb1jdfNNTmJ8tTyQhRnEtHdM,20574
49
48
  webscout/Extra/tempmail/__init__.py,sha256=lyTR6X-ybgg7uRa62f2uFOmqeiW3sHK35Zx2byYN-k0,641
50
49
  webscout/Extra/tempmail/async_utils.py,sha256=2IB6OY8NcfYPTqjWd_RLOk1lzYsuzWeJHlmbtWA-E10,4415
@@ -86,7 +85,7 @@ webscout/Provider/Free2GPT.py,sha256=FJLn2Ho5oC1bJ2syDfIVvMpMwyFJu32S0ls1rAyr-R0
86
85
  webscout/Provider/GPTWeb.py,sha256=PcgGByR1juWxjGfwT914RcXM2vTPZ5g5JQsiKbxLId4,10962
87
86
  webscout/Provider/Gemini.py,sha256=fLT6PRt_uYb2vr-S5nniUzYGITG9mS-HCU6T04l5iG4,6637
88
87
  webscout/Provider/GithubChat.py,sha256=1m07jmX80TAgAlJNRhn2Z3EyjpZrUZ-XKj0F-xXlRpY,14638
89
- webscout/Provider/GizAI.py,sha256=ZxWCQ7fRAMF2fjR5gWmRTMY3lzthonfKBIjtpODpD_E,10437
88
+ webscout/Provider/GizAI.py,sha256=2k4G8RTWi8TpuQHNleX2V-62kc0495dqsSR5D2gN5rc,10523
90
89
  webscout/Provider/Glider.py,sha256=BQ47Ejp5NUdw608vRhfA9sbAyCM0W-5x2eV3fz0z918,9168
91
90
  webscout/Provider/Groq.py,sha256=V6nDhue-AEOJLc1-BP6ZOwsUxpjXP1SqBLTG07dhwWc,36880
92
91
  webscout/Provider/HeckAI.py,sha256=U_w__SIJC7E_c2glOqnIIBxCwvL-ko5MkHljnGLAct0,10891
@@ -98,30 +97,31 @@ webscout/Provider/LambdaChat.py,sha256=J1XoD0YjcHFozlvMbZapyvC2mEV6DPSK6LNsdbTYT
98
97
  webscout/Provider/Llama3.py,sha256=9f-7ha23OdvUthKUqLwBpSBBZzWPmadJPESyDOUKbC0,10770
99
98
  webscout/Provider/MCPCore.py,sha256=q_rN7gkrt6Fc-sNMVXvaRzmz-KvFllaFtmTmFO9fQPw,12545
100
99
  webscout/Provider/Marcus.py,sha256=c1ICdb-QAfYb8ppvoXt9sLmExCg7qV71KIaszqh3JSo,8803
100
+ webscout/Provider/Nemotron.py,sha256=_hCFLNhynRX-rMtKXKRpKzrKKFzyWGlQ8uQC-8v0l6w,7948
101
101
  webscout/Provider/Netwrck.py,sha256=Fstf8bK5dnE4fRLKDumbdFsiF0EIW147AEgsbzezM6A,11812
102
102
  webscout/Provider/OLLAMA.py,sha256=k8EbK_EqH02xiTtqubViKsHebyJFLUwug5zeP1HkDa4,15155
103
103
  webscout/Provider/OpenGPT.py,sha256=YGC9i8eWsjJKTy4_e44Z16ZJrAsLqTfzPCNKgHOCYsI,8868
104
104
  webscout/Provider/Openai.py,sha256=TC4BkezoLqimaqOwzX-nYC9w7hXbDCajm-bzkdyl-gA,20433
105
105
  webscout/Provider/PI.py,sha256=UvVNenB2M3mbR3xcQTWcWmd9ck-iZXBJTjLB6cMATWM,18584
106
106
  webscout/Provider/Perplexitylabs.py,sha256=e0k7tuh99dedBTkQxytvfwPS6x6hlaFVpZyrpvy4_Xs,16621
107
- webscout/Provider/PizzaGPT.py,sha256=JF9xrzG2lL4ATQ4YPSYm_Wl9eWOP6cRV9eetjo7FTvE,9206
108
107
  webscout/Provider/QwenLM.py,sha256=lxnSF38wrupb1e7XhN8f0py8v6efwOndFh2SwvIy7Sc,10430
109
108
  webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
110
109
  webscout/Provider/StandardInput.py,sha256=N9sgXqXxI9DlsIpHji5VTf8ryAKGTR2rCLOB0BuKBBY,14177
111
- webscout/Provider/TeachAnything.py,sha256=F64dPHyjOMtp1SxhOPjy3qm2xJXF_wWNynOKMgTF7YE,10078
110
+ webscout/Provider/TeachAnything.py,sha256=Z99im2wjq-AU2djvO-SwVHf1AqFqxUE351UF1IDwWaI,10191
112
111
  webscout/Provider/TextPollinationsAI.py,sha256=5bNhch1Z0jx-BXD87Hn842Y17ijF0nnWH4kqBooFFBU,12494
113
112
  webscout/Provider/TwoAI.py,sha256=2P3PDjr3DiVdDrvhR-bC7bB97n6shoIOrZbF_9hQANo,11552
114
113
  webscout/Provider/TypliAI.py,sha256=lfOyX2mGZBsmqqB4GafAzAhiV0U0C9RJf9I--hTw9Ik,11919
115
114
  webscout/Provider/Venice.py,sha256=Ggo2lAp4soViM6Z_LU9d9_cbadcpfrzOZ-3KreTEFxA,11044
116
115
  webscout/Provider/VercelAI.py,sha256=4gNSfkI28mdeg6G0YUry6N3SNEfuobEpDqPMbelpl3Q,9571
117
- webscout/Provider/WiseCat.py,sha256=0D7ibaBcD7vDn2TrAduYLUxQVpnZolCBF8tgozTlpNo,9217
116
+ webscout/Provider/WiseCat.py,sha256=TgsGFi6nSTls1_9yuGY-iITB5y2LobHoi5zvWZ8yWlY,9217
117
+ webscout/Provider/WrDoChat.py,sha256=Idjrg0IEmeRU6V2qm8SGuqkNowSh5iVsC9N3krPP-l4,13902
118
118
  webscout/Provider/Writecream.py,sha256=b1ccXW-0c39Fi-kgnrQtdmyWOk8iZaEjrDXY8-6Ix3k,8809
119
119
  webscout/Provider/WritingMate.py,sha256=fOZ5Tu1A-PKFpl10ekheEy0h0qclSoO__KkBrci_aiI,12332
120
120
  webscout/Provider/Youchat.py,sha256=JQbERXdlLu-JzMCiqhKZlo4DRwsuLvHoYPFDomV5cTE,12728
121
- webscout/Provider/__init__.py,sha256=9VrEl2eRhtWmYhJLPUxQC5sQplSCvAxX7AtK-EdWT5M,3970
122
- webscout/Provider/ai4chat.py,sha256=OJ3J6slQrMDTGtL2HGCk7zasbzh4AmTt9vibmZCnqKg,8429
121
+ webscout/Provider/__init__.py,sha256=FeR5WlSAYbbp8D0YBEwtlRT6_kBAld9OLlVd02Cn8kU,3936
122
+ webscout/Provider/ai4chat.py,sha256=rn6IROyFM7DGvLM88YtShm9VQ6HXKQbY3c1FaFuT37Y,8564
123
123
  webscout/Provider/aimathgpt.py,sha256=X1dPGdJ-Jc-6nQOnm-Bivzlo0B_n_j2A5cQK1bNrDlA,7176
124
- webscout/Provider/akashgpt.py,sha256=fswzQktBU2dnD0b-kZjlB_yygFxk3xSIWnrSk_8Nino,13087
124
+ webscout/Provider/akashgpt.py,sha256=iJke-aCmTT_8RmrJbSAZayhtIimum1h680diJwBxdOI,13045
125
125
  webscout/Provider/asksteve.py,sha256=60PxdUMEeTZofnz_fAoZ2tP43-RnpfO1xz77OPpEcqw,8752
126
126
  webscout/Provider/bagoodex.py,sha256=XOmIvOn_P7dpNBgylCveaCIXpAU6awGkvEphZZHrYCM,5063
127
127
  webscout/Provider/cerebras.py,sha256=10yD70w_v9oZgJn2elTyBSLFwIqiX7V6GcSr-n-COYU,11298
@@ -129,7 +129,7 @@ webscout/Provider/chatglm.py,sha256=CBiRhxe1yznhvyOaQPDf9Qu0SSfFvJ6LhTJCtHxsS0Q,
129
129
  webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7981
130
130
  webscout/Provider/copilot.py,sha256=MhDpo1ZHs-Uf-CEIYDB6J3t2rPeI9pP6QDCGffsBoIg,18844
131
131
  webscout/Provider/elmo.py,sha256=PiiRLwkyHsPmAY8uydd_TuWe2qVXbs_wfW5u4Ytbqp8,12875
132
- webscout/Provider/freeaichat.py,sha256=waRu1GiRTUDJFmpsesknqU8Fk7omUIIiNh_QS3KlLGY,9744
132
+ webscout/Provider/freeaichat.py,sha256=yKTGYYrv_v3xoOcsXc83F0qTBv5rjFKPuZQLX-vRhIQ,9963
133
133
  webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
134
134
  webscout/Provider/geminiprorealtime.py,sha256=2ThViylzCGgKl7UfdFQoPdcsYJKIvf4t4wU0cXXQ43I,5775
135
135
  webscout/Provider/granite.py,sha256=EodpTbTkAGZUq7cVEe0UHqJCyWZvhKw9MhwDaYTye3I,10771
@@ -142,15 +142,13 @@ webscout/Provider/llmchat.py,sha256=PgAV72p4WNvbk6XbUYjz6IePjwlI9E4yBC65Uio57UQ,
142
142
  webscout/Provider/llmchatco.py,sha256=xW6ZtlYUVbiUsYIFixFDup2lIZgzhzjZM2bl2C-N6Ns,12638
143
143
  webscout/Provider/meta.py,sha256=JID7SufkLTrnKDqFblKlhT-I9_hOgJDJSYF05D3ccIo,30554
144
144
  webscout/Provider/multichat.py,sha256=3ZxV7C7KG4T6sKttHf0jO83eGjgaPlRszVZnZBR2JI8,15043
145
- webscout/Provider/promptrefine.py,sha256=et8bNFf74Bn06SG0-3o8XNE5cJC_mRr5tTI3dqZAbE8,7731
146
- webscout/Provider/scira_chat.py,sha256=SF7tzhmRPnDmr-GOoCkhIwf8oMz8A5OJ-KriE0avq5c,12284
147
- webscout/Provider/scnet.py,sha256=ISpcw-1mLyDLTg_oHI7Rq1kjDQeeXDfC70Ch-fOTgCQ,11094
145
+ webscout/Provider/scira_chat.py,sha256=7EJnDPRyuAjG1v-nA26I8pgrYnifnyY7g6tRTA59M6g,12334
146
+ webscout/Provider/scnet.py,sha256=Nwibdm1LV96QOjqVVIgX_Qro70MVdRDVBF4gLXcevnI,11358
148
147
  webscout/Provider/searchchat.py,sha256=AMKFIMhAfnmIYCHtKmePf_rUvcbboDoi65H4WOCdInw,12464
149
148
  webscout/Provider/sonus.py,sha256=OaXzLYC7RndmVV4rDbBThhOhmOpAq3EYDG11NdYEgV8,11300
150
149
  webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7613
151
150
  webscout/Provider/toolbaz.py,sha256=jvL1OtnNlfv5ZV2QN6eCAbz7fcTC4vETotpDvGCfGsU,14493
152
151
  webscout/Provider/turboseek.py,sha256=wVWiTRvvlLHXynEISAAO4gxY-BDIyiR1fs2mhNnFc0U,11666
153
- webscout/Provider/tutorai.py,sha256=s5VY_OA54Aq-BMMHLYyrrDVQO3dglI5dnGtyQ61Lj5Q,12175
154
152
  webscout/Provider/typefully.py,sha256=rfRvIHFPax-oyLCA1QqZ--84X6VB65iIJ-y8JGTvkho,13802
155
153
  webscout/Provider/typegpt.py,sha256=V4JdfP_Rdhzt0BIjdfVEsCE-QzL3xn8gJstfCWWqExo,12379
156
154
  webscout/Provider/uncovr.py,sha256=1nnzeECixl-Grrm8LAbs6TwmPTNHlMoNNeQQAFHFz40,15936
@@ -165,7 +163,7 @@ webscout/Provider/AISEARCH/genspark_search.py,sha256=dtI_8RHVncWWCbKgbXxwqrFKGsJ
165
163
  webscout/Provider/AISEARCH/hika_search.py,sha256=S5BvPjhIRm_HsHay4yl1XHnONwzeYjau2roqRhhxTAY,6874
166
164
  webscout/Provider/AISEARCH/iask_search.py,sha256=np0QsK34E7S6AH2LPO9rEb0P-XLlQn6YsAXuCMeSj9U,17752
167
165
  webscout/Provider/AISEARCH/monica_search.py,sha256=G8buO5HfKTt_Yj5CQ6RGzhCtifYF17ocK7_PcdbFD-c,9217
168
- webscout/Provider/AISEARCH/scira_search.py,sha256=h-HZGiCsL7zV_NA1EaubLHRtvtDPeuTP1z6TKLlHN-I,11364
166
+ webscout/Provider/AISEARCH/scira_search.py,sha256=jHWOT7nk0Rmy60ftb5PTNO2LsBWw-Q-KRPte5HU2HfY,11413
169
167
  webscout/Provider/AISEARCH/webpilotai_search.py,sha256=sgxlknhIU90A_yyaq67udZTmuC5xftG0iDa_D2DVZCs,11904
170
168
  webscout/Provider/HF_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
169
  webscout/Provider/HF_space/qwen_qwen2.py,sha256=IulE7bAMSbR530pFTanWzMFb4UJ9qF_NKoGiHkXxcjc,7612
@@ -188,7 +186,7 @@ webscout/Provider/OPENAI/mcpcore.py,sha256=rFzrLMrjKadbyE2Hw7dBOI6BU5HS92Ej3ZJU2
188
186
  webscout/Provider/OPENAI/multichat.py,sha256=Ko0dstfMdwONjpBoDQ1AV0-VZfXKQoqQLDahLqOvZe8,13696
189
187
  webscout/Provider/OPENAI/netwrck.py,sha256=96nfIeL9Quf-FxVjFOq62CEtUuNstZpF61b7v8ygllI,12281
190
188
  webscout/Provider/OPENAI/opkfc.py,sha256=m_GROHDoTW_bPmBmceM3yl66c4X59w431rynDxdhrbs,20322
191
- webscout/Provider/OPENAI/scirachat.py,sha256=3-nFpEYGuTbvYQ54SVrCujUQjgFZJSS41-TPGlTVb1g,17618
189
+ webscout/Provider/OPENAI/scirachat.py,sha256=6cWVEStCM1St0tpObSVP_UD37-onF9199c3TTfbXuvY,17667
192
190
  webscout/Provider/OPENAI/sonus.py,sha256=xoLhgN8kuIgjA01a4ripT4KqZz7RVB5DqINibo472pk,10198
193
191
  webscout/Provider/OPENAI/standardinput.py,sha256=EIwF6-4UkUqxmryRmyNrgiWb8v58xyRfaPZ8fwhISzE,18257
194
192
  webscout/Provider/OPENAI/textpollinations.py,sha256=XlE4GbMszZH0Ys3FMVeSH_5dOGZJX12W3xnjSZxxFUE,12097
@@ -270,12 +268,27 @@ webscout/scout/parsers/__init__.py,sha256=ljOJkxv1j6c0CNlBO02n_4510dGycYXgKWcrAU
270
268
  webscout/scout/parsers/html5lib_parser.py,sha256=lMg8yA7xrpwszbDrA0MKrKAmn5XUp9bdMCOa_efDbI4,5799
271
269
  webscout/scout/parsers/html_parser.py,sha256=RSHfRJOo_XSwgIb65uexn_pWWqVCo4E52-Ilb6kioDs,7028
272
270
  webscout/scout/parsers/lxml_parser.py,sha256=UefEW5TQJcmrLCHOceI1lbyT3bY8gawxuoiPVmrP_aw,6231
273
- webscout/swiftcli/__init__.py,sha256=TMUv-6rWhpzG6hIBnubnqe_2ObOaGLSzP_Zu13_tiKY,28530
271
+ webscout/swiftcli/__init__.py,sha256=FAC7D0Yu4KN2WGSpNSIVgGSJ9DlAVzqFLjbyUpxCwmc,1864
272
+ webscout/swiftcli/exceptions.py,sha256=yd50TpIjxjL4pzgnEIJUThh6F6brI-jmajjuxqgH9EE,529
273
+ webscout/swiftcli/core/__init__.py,sha256=IZfEWpDaV7_Lo5T0_ryp4ZRrH6egXrCJgdO3g1hGx5k,161
274
+ webscout/swiftcli/core/cli.py,sha256=sNBdF8lmkuMrW_MijUYQI4TUv4BMZ6OXuFUn12b287Q,10030
275
+ webscout/swiftcli/core/context.py,sha256=QTPkxk1HOZ128OFYC7W99ey1GoNi3n4YqjkqCjBjjiY,3043
276
+ webscout/swiftcli/core/group.py,sha256=moOcP7ec0u80cxpw1bKW9eBti4sgwjJVmGLiU1OwKz0,7605
277
+ webscout/swiftcli/decorators/__init__.py,sha256=YHsLyXnh4Rvn_hwg28y9lkTq2Hh4QVx4ohHfY3r-Wbw,648
278
+ webscout/swiftcli/decorators/command.py,sha256=W-LFpXVOB2xbVg8f36phFxCoQFtQ7cwjqeaJ60OsVk8,6291
279
+ webscout/swiftcli/decorators/options.py,sha256=6K6Ea8EoP98sDO-ia7Kx4GoK5OmRkFfsMPFIJxveByY,6608
280
+ webscout/swiftcli/decorators/output.py,sha256=ZoX_Sb97cYiSvyGnNfllmahEya2HOxWkCugF5vkG2kU,7756
281
+ webscout/swiftcli/plugins/__init__.py,sha256=1lKYyhzaZuOEwFiA4SjV8tnaxD2MuegkeR0LV0xKGmI,153
282
+ webscout/swiftcli/plugins/base.py,sha256=mnyEfMD_Cqa_nWuHWZZ9F5YEZgSZK3yiCCRbl93c5Eg,3754
283
+ webscout/swiftcli/plugins/manager.py,sha256=fsn9adYkAyNr4RtTOonCUogydAdbBCraEWVi_786DZc,8674
284
+ webscout/swiftcli/utils/__init__.py,sha256=1pavZ73vUG7pMbzqCaYUAjCI3bqta07chQRZuwROGiU,1114
285
+ webscout/swiftcli/utils/formatting.py,sha256=iDqcLqxDgjKVrFP9cI9Pu1xMijPSGotNy77f2bcNjPo,5613
286
+ webscout/swiftcli/utils/parsing.py,sha256=vtgpXLqS1br01meFyE0537k--jzZhhblSdMuAh_54pY,7293
274
287
  webscout/zeroart/__init__.py,sha256=Lw6_a19qm19rEHwIdpj5_tOHuWvWn2_PcACodyXDIrQ,1362
275
288
  webscout/zeroart/base.py,sha256=l5h6ll_GdaeV5Stbif8EA940XlgQbV1ealIZMg3Y_Yc,1983
276
289
  webscout/zeroart/effects.py,sha256=2zlII7zoxEM1-5LGzEDCmz4IC3maus5c7qxzCuoJJLc,3032
277
290
  webscout/zeroart/fonts.py,sha256=Ers0ZA0Qi8rBgsqG-pfHhQAvpbyUAof6S6k0vYG84ZE,25659
278
- webscout-8.2.5.dist-info/licenses/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
291
+ webscout-8.2.6.dist-info/licenses/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
279
292
  webstoken/__init__.py,sha256=gYti7T7sIqjyrOT9q_tHvBVJPDzs4z04uIMhEmNQl9o,804
280
293
  webstoken/classifier.py,sha256=vedEHO4ZOvIQBd86lzBu2D94vA9HAwOuiJqARob05ng,7652
281
294
  webstoken/keywords.py,sha256=dGYe8-K46ohuQV_mmAV_wCAmw2CRaOU7OpLHjU7Hyzo,8478
@@ -287,8 +300,8 @@ webstoken/sentiment.py,sha256=yHtaHXJNS_sH1UTHZsOIgyhdijr8oi1pMlg_QE2wtxw,8202
287
300
  webstoken/stemmer.py,sha256=VXWkBpPaH328WEQxw9e9ff-p2e27xDdbpVSy0nTnXYE,2624
288
301
  webstoken/tagger.py,sha256=p4ScFnxn5sShYDVRoHK5pn_mzaDTsEtx3EHRvuvOlfE,2306
289
302
  webstoken/tokenizer.py,sha256=XJ-d1MFRp0Trw6gtOtZ8_wAcaSQidnSCHLNpV1-OFJc,6016
290
- webscout-8.2.5.dist-info/METADATA,sha256=wYtI4md5EmaDCHBbCkS5rdKjth8_qNPBXKuMD3m1ET0,29611
291
- webscout-8.2.5.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
292
- webscout-8.2.5.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
293
- webscout-8.2.5.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
294
- webscout-8.2.5.dist-info/RECORD,,
303
+ webscout-8.2.6.dist-info/METADATA,sha256=0AljsqEnewLM_RSn1GIiEgTgLj7vBOySs7ajIO4mSoQ,29611
304
+ webscout-8.2.6.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
305
+ webscout-8.2.6.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
306
+ webscout-8.2.6.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
307
+ webscout-8.2.6.dist-info/RECORD,,