webscout 7.5__py3-none-any.whl → 7.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 (118) hide show
  1. webscout/AIauto.py +5 -53
  2. webscout/AIutel.py +8 -318
  3. webscout/DWEBS.py +460 -489
  4. webscout/Extra/YTToolkit/YTdownloader.py +14 -53
  5. webscout/Extra/YTToolkit/transcriber.py +12 -13
  6. webscout/Extra/YTToolkit/ytapi/video.py +0 -1
  7. webscout/Extra/__init__.py +0 -1
  8. webscout/Extra/autocoder/autocoder_utiles.py +0 -4
  9. webscout/Extra/autocoder/rawdog.py +13 -41
  10. webscout/Extra/gguf.py +652 -428
  11. webscout/Extra/weather.py +178 -156
  12. webscout/Extra/weather_ascii.py +70 -17
  13. webscout/Litlogger/core/logger.py +1 -2
  14. webscout/Litlogger/handlers/file.py +1 -1
  15. webscout/Litlogger/styles/formats.py +0 -2
  16. webscout/Litlogger/utils/detectors.py +0 -1
  17. webscout/Provider/AISEARCH/DeepFind.py +0 -1
  18. webscout/Provider/AISEARCH/ISou.py +1 -1
  19. webscout/Provider/AISEARCH/felo_search.py +0 -1
  20. webscout/Provider/AllenAI.py +24 -9
  21. webscout/Provider/C4ai.py +29 -11
  22. webscout/Provider/ChatGPTGratis.py +24 -56
  23. webscout/Provider/DeepSeek.py +25 -17
  24. webscout/Provider/Deepinfra.py +115 -48
  25. webscout/Provider/Gemini.py +1 -1
  26. webscout/Provider/Glider.py +25 -8
  27. webscout/Provider/HF_space/qwen_qwen2.py +2 -2
  28. webscout/Provider/HeckAI.py +23 -7
  29. webscout/Provider/Jadve.py +20 -5
  30. webscout/Provider/Netwrck.py +42 -19
  31. webscout/Provider/PI.py +4 -2
  32. webscout/Provider/Perplexitylabs.py +26 -6
  33. webscout/Provider/PizzaGPT.py +10 -51
  34. webscout/Provider/TTI/AiForce/async_aiforce.py +4 -37
  35. webscout/Provider/TTI/AiForce/sync_aiforce.py +41 -38
  36. webscout/Provider/TTI/FreeAIPlayground/__init__.py +9 -9
  37. webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +206 -206
  38. webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +192 -192
  39. webscout/Provider/TTI/MagicStudio/__init__.py +2 -0
  40. webscout/Provider/TTI/MagicStudio/async_magicstudio.py +111 -0
  41. webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +109 -0
  42. webscout/Provider/TTI/PollinationsAI/async_pollinations.py +5 -24
  43. webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +2 -22
  44. webscout/Provider/TTI/__init__.py +2 -3
  45. webscout/Provider/TTI/aiarta/async_aiarta.py +14 -14
  46. webscout/Provider/TTI/aiarta/sync_aiarta.py +52 -21
  47. webscout/Provider/TTI/fastflux/__init__.py +22 -0
  48. webscout/Provider/TTI/fastflux/async_fastflux.py +257 -0
  49. webscout/Provider/TTI/fastflux/sync_fastflux.py +247 -0
  50. webscout/Provider/TTS/__init__.py +2 -2
  51. webscout/Provider/TTS/deepgram.py +12 -39
  52. webscout/Provider/TTS/elevenlabs.py +14 -40
  53. webscout/Provider/TTS/gesserit.py +11 -35
  54. webscout/Provider/TTS/murfai.py +13 -39
  55. webscout/Provider/TTS/parler.py +17 -40
  56. webscout/Provider/TTS/speechma.py +180 -0
  57. webscout/Provider/TTS/streamElements.py +17 -44
  58. webscout/Provider/TextPollinationsAI.py +39 -59
  59. webscout/Provider/Venice.py +25 -8
  60. webscout/Provider/WiseCat.py +27 -5
  61. webscout/Provider/Youchat.py +64 -37
  62. webscout/Provider/__init__.py +0 -6
  63. webscout/Provider/akashgpt.py +20 -5
  64. webscout/Provider/flowith.py +20 -5
  65. webscout/Provider/freeaichat.py +32 -45
  66. webscout/Provider/koala.py +20 -5
  67. webscout/Provider/llamatutor.py +1 -1
  68. webscout/Provider/llmchat.py +30 -8
  69. webscout/Provider/multichat.py +65 -9
  70. webscout/Provider/talkai.py +1 -0
  71. webscout/Provider/turboseek.py +3 -0
  72. webscout/Provider/tutorai.py +2 -0
  73. webscout/Provider/typegpt.py +154 -64
  74. webscout/Provider/x0gpt.py +3 -1
  75. webscout/Provider/yep.py +102 -20
  76. webscout/__init__.py +3 -0
  77. webscout/cli.py +4 -40
  78. webscout/conversation.py +1 -10
  79. webscout/litagent/__init__.py +2 -2
  80. webscout/litagent/agent.py +351 -20
  81. webscout/litagent/constants.py +34 -5
  82. webscout/litprinter/__init__.py +0 -3
  83. webscout/models.py +181 -0
  84. webscout/optimizers.py +1 -1
  85. webscout/prompt_manager.py +2 -8
  86. webscout/scout/core/scout.py +1 -4
  87. webscout/scout/core/search_result.py +1 -1
  88. webscout/scout/core/text_utils.py +1 -1
  89. webscout/scout/core.py +2 -5
  90. webscout/scout/element.py +1 -1
  91. webscout/scout/parsers/html_parser.py +1 -1
  92. webscout/scout/utils.py +0 -1
  93. webscout/swiftcli/__init__.py +1 -3
  94. webscout/tempid.py +1 -1
  95. webscout/update_checker.py +1 -3
  96. webscout/version.py +1 -1
  97. webscout/webscout_search_async.py +1 -2
  98. webscout/yep_search.py +297 -297
  99. {webscout-7.5.dist-info → webscout-7.6.dist-info}/LICENSE.md +4 -4
  100. {webscout-7.5.dist-info → webscout-7.6.dist-info}/METADATA +101 -390
  101. {webscout-7.5.dist-info → webscout-7.6.dist-info}/RECORD +104 -110
  102. webscout/Extra/autollama.py +0 -231
  103. webscout/Provider/Amigo.py +0 -274
  104. webscout/Provider/Bing.py +0 -243
  105. webscout/Provider/DiscordRocks.py +0 -253
  106. webscout/Provider/TTI/blackbox/__init__.py +0 -4
  107. webscout/Provider/TTI/blackbox/async_blackbox.py +0 -212
  108. webscout/Provider/TTI/blackbox/sync_blackbox.py +0 -199
  109. webscout/Provider/TTI/deepinfra/__init__.py +0 -4
  110. webscout/Provider/TTI/deepinfra/async_deepinfra.py +0 -227
  111. webscout/Provider/TTI/deepinfra/sync_deepinfra.py +0 -199
  112. webscout/Provider/TTI/imgninza/__init__.py +0 -4
  113. webscout/Provider/TTI/imgninza/async_ninza.py +0 -214
  114. webscout/Provider/TTI/imgninza/sync_ninza.py +0 -209
  115. webscout/Provider/TTS/voicepod.py +0 -117
  116. {webscout-7.5.dist-info → webscout-7.6.dist-info}/WHEEL +0 -0
  117. {webscout-7.5.dist-info → webscout-7.6.dist-info}/entry_points.txt +0 -0
  118. {webscout-7.5.dist-info → webscout-7.6.dist-info}/top_level.txt +0 -0
webscout/models.py ADDED
@@ -0,0 +1,181 @@
1
+ import importlib
2
+ import pkgutil
3
+ from typing import Dict, List, Any, Union
4
+ from webscout.AIbase import Provider, TTSProvider
5
+
6
+ class _LLMModels:
7
+ """
8
+ A class for managing LLM provider models in the webscout package.
9
+ """
10
+
11
+ def list(self) -> Dict[str, List[str]]:
12
+ """
13
+ Gets all available models from each provider that has an AVAILABLE_MODELS attribute.
14
+
15
+ Returns:
16
+ Dictionary mapping provider names to their available models
17
+ """
18
+ return self._get_provider_models()
19
+
20
+ def get(self, provider_name: str) -> List[str]:
21
+ """
22
+ Gets all available models for a specific provider.
23
+
24
+ Args:
25
+ provider_name: The name of the provider
26
+
27
+ Returns:
28
+ List of available models for the provider
29
+ """
30
+ all_models = self._get_provider_models()
31
+ return all_models.get(provider_name, [])
32
+
33
+ def summary(self) -> Dict[str, int]:
34
+ """
35
+ Returns a summary of available providers and models.
36
+
37
+ Returns:
38
+ Dictionary with provider and model counts
39
+ """
40
+ provider_models = self._get_provider_models()
41
+ total_providers = len(provider_models)
42
+ total_models = sum(len(models) if isinstance(models, (list, tuple, set))
43
+ else 1 for models in provider_models.values())
44
+
45
+ return {
46
+ "providers": total_providers,
47
+ "models": total_models,
48
+ "provider_model_counts": {
49
+ provider: len(models) if isinstance(models, (list, tuple, set)) else 1
50
+ for provider, models in provider_models.items()
51
+ }
52
+ }
53
+
54
+ def _get_provider_models(self) -> Dict[str, List[str]]:
55
+ """
56
+ Internal method to get all available models from each provider.
57
+
58
+ Returns:
59
+ Dictionary mapping provider names to their available models
60
+ """
61
+ provider_models = {}
62
+ provider_package = importlib.import_module("webscout.Provider")
63
+
64
+ for _, module_name, _ in pkgutil.iter_modules(provider_package.__path__):
65
+ try:
66
+ module = importlib.import_module(f"webscout.Provider.{module_name}")
67
+ for attr_name in dir(module):
68
+ attr = getattr(module, attr_name)
69
+ if isinstance(attr, type) and issubclass(attr, Provider) and attr != Provider:
70
+ if hasattr(attr, 'AVAILABLE_MODELS'):
71
+ # Convert any sets to lists to ensure serializability
72
+ models = attr.AVAILABLE_MODELS
73
+ if isinstance(models, set):
74
+ models = list(models)
75
+ provider_models[attr_name] = models
76
+ except Exception:
77
+ pass
78
+
79
+ return provider_models
80
+
81
+ class _TTSModels:
82
+ """
83
+ A class for managing TTS provider voices in the webscout package.
84
+ """
85
+
86
+ def list(self) -> Dict[str, List[str]]:
87
+ """
88
+ Gets all available voices from each TTS provider that has an all_voices attribute.
89
+
90
+ Returns:
91
+ Dictionary mapping TTS provider names to their available voices
92
+ """
93
+ return self._get_tts_voices()
94
+
95
+ def get(self, provider_name: str) -> Union[List[str], Dict[str, str]]:
96
+ """
97
+ Gets all available voices for a specific TTS provider.
98
+
99
+ Args:
100
+ provider_name: The name of the TTS provider
101
+
102
+ Returns:
103
+ List or Dictionary of available voices for the provider
104
+ """
105
+ all_voices = self._get_tts_voices()
106
+ return all_voices.get(provider_name, [])
107
+
108
+ def summary(self) -> Dict[str, Any]:
109
+ """
110
+ Returns a summary of available TTS providers and voices.
111
+
112
+ Returns:
113
+ Dictionary with provider and voice counts
114
+ """
115
+ provider_voices = self._get_tts_voices()
116
+ total_providers = len(provider_voices)
117
+
118
+ # Count voices, handling both list and dict formats
119
+ total_voices = 0
120
+ provider_voice_counts = {}
121
+
122
+ for provider, voices in provider_voices.items():
123
+ if isinstance(voices, dict):
124
+ count = len(voices)
125
+ elif isinstance(voices, (list, tuple, set)):
126
+ count = len(voices)
127
+ else:
128
+ count = 1
129
+
130
+ total_voices += count
131
+ provider_voice_counts[provider] = count
132
+
133
+ return {
134
+ "providers": total_providers,
135
+ "voices": total_voices,
136
+ "provider_voice_counts": provider_voice_counts
137
+ }
138
+
139
+ def _get_tts_voices(self) -> Dict[str, Union[List[str], Dict[str, str]]]:
140
+ """
141
+ Internal method to get all available voices from each TTS provider.
142
+
143
+ Returns:
144
+ Dictionary mapping TTS provider names to their available voices
145
+ """
146
+ provider_voices = {}
147
+
148
+ try:
149
+ # Import the TTS package specifically
150
+ tts_package = importlib.import_module("webscout.Provider.TTS")
151
+
152
+ # Iterate through TTS modules
153
+ for _, module_name, _ in pkgutil.iter_modules(tts_package.__path__):
154
+ try:
155
+ module = importlib.import_module(f"webscout.Provider.TTS.{module_name}")
156
+ for attr_name in dir(module):
157
+ attr = getattr(module, attr_name)
158
+ if isinstance(attr, type) and issubclass(attr, TTSProvider) and attr != TTSProvider:
159
+ # TTS providers typically use 'all_voices' instead of 'AVAILABLE_MODELS'
160
+ if hasattr(attr, 'all_voices'):
161
+ voices = attr.all_voices
162
+ provider_voices[attr_name] = voices
163
+ except Exception as e:
164
+ pass
165
+ except Exception as e:
166
+ pass
167
+
168
+ return provider_voices
169
+
170
+ # Create singleton instances
171
+ llm = _LLMModels()
172
+ tts = _TTSModels()
173
+
174
+ # Container class for all model types
175
+ class Models:
176
+ def __init__(self):
177
+ self.llm = llm
178
+ self.tts = tts
179
+
180
+ # Create a singleton instance
181
+ model = Models()
webscout/optimizers.py CHANGED
@@ -3,7 +3,7 @@
3
3
  import os
4
4
  import platform
5
5
  import subprocess
6
- from typing import Literal, Optional, Tuple, Callable, Dict, Any
6
+ from typing import Optional
7
7
  class Optimizers:
8
8
  """
9
9
  >>> Optimizers.code("write a hello world")
@@ -1,17 +1,11 @@
1
- """
2
- HAI's Awesome Prompts! 🔥
3
- The most fire prompts collection you'll ever see! 💯
4
- Created by the legendary HAI squad! 👑
5
- """
1
+ # -*- coding: utf-8 -*-
6
2
 
7
3
  import os
8
4
  import json
9
- import logging
10
5
  import requests
11
- from typing import Optional, Dict, Union, List
6
+ from typing import Optional, Dict, Union
12
7
  from rich.console import Console
13
8
  from rich.table import Table
14
- from rich.panel import Panel
15
9
  from datetime import datetime
16
10
 
17
11
  console = Console()
@@ -1,15 +1,12 @@
1
1
  """
2
2
  Scout Main Module - HTML Parsing and Traversal
3
3
  """
4
- import sys
5
4
  import re
6
- import warnings
7
5
  import json
8
6
  import hashlib
9
7
  import unicodedata
10
- import os
11
8
  import urllib.parse
12
- from typing import Union, List, Dict, Optional, Callable, Any, Tuple
9
+ from typing import List, Dict, Optional, Any
13
10
 
14
11
  from ..parsers import ParserRegistry
15
12
  from ..element import Tag, NavigableString
@@ -2,7 +2,7 @@
2
2
  Scout Search Result Module
3
3
  """
4
4
 
5
- from typing import List, Union, Callable, Any, Dict, Iterator, Set
5
+ from typing import List, Union, Callable, Any, Dict, Iterator
6
6
  from ..element import Tag
7
7
  from .text_analyzer import ScoutTextAnalyzer
8
8
 
@@ -1,4 +1,4 @@
1
- from typing import List, Dict, Tuple, Set, Optional, Pattern
1
+ from typing import List, Dict, Tuple, Set, Pattern
2
2
  import re
3
3
 
4
4
 
webscout/scout/core.py CHANGED
@@ -4,19 +4,16 @@ A powerful, flexible, and performant HTML parsing library.
4
4
  Enhanced with advanced features and intelligent parsing.
5
5
  """
6
6
 
7
- import sys
8
7
  import re
9
- import warnings
10
8
  import json
11
9
  import hashlib
12
10
  import unicodedata
13
- import os
14
11
  import requests
15
12
  from markdownify import MarkdownConverter
16
13
  import concurrent.futures
17
14
  import urllib.parse
18
- from collections import Counter, defaultdict
19
- from typing import Union, List, Dict, Optional, Callable, Any, Tuple, Iterator, Set
15
+ from collections import Counter
16
+ from typing import Union, List, Dict, Optional, Callable, Any, Iterator, Set
20
17
 
21
18
  from .parsers.html_parser import HTMLParser
22
19
  from .parsers.lxml_parser import LXMLParser
webscout/scout/element.py CHANGED
@@ -3,7 +3,7 @@ Scout Element Module - Advanced HTML Element Representation
3
3
  """
4
4
 
5
5
  import re
6
- from typing import Optional, List, Dict, Union, Any, Callable, Iterable
6
+ from typing import Optional, List, Dict, Union, Any
7
7
 
8
8
  class NavigableString(str):
9
9
  """
@@ -5,7 +5,7 @@ Scout HTML Parser - Advanced HTML Parsing with Python's Built-in Parser
5
5
  import html
6
6
  import re
7
7
  from html.parser import HTMLParser as StdHTMLParser
8
- from typing import List, Optional, Dict, Any, Union
8
+ from typing import List
9
9
 
10
10
  from ..element import Tag, NavigableString
11
11
 
webscout/scout/utils.py CHANGED
@@ -2,7 +2,6 @@
2
2
  Utility functions - making life easier! 🛠️
3
3
  """
4
4
 
5
- import re
6
5
  from typing import Union, Optional
7
6
 
8
7
  def decode_markup(markup: Union[str, bytes], encoding: Optional[str] = None) -> str:
@@ -30,15 +30,13 @@ For more examples, check out the documentation!
30
30
  import importlib
31
31
  import os
32
32
  import sys
33
- import json
34
33
  import inspect
35
- from typing import Any, Dict, List, Optional, Type, Union, Callable
34
+ from typing import Any, Dict, List, Optional, Callable
36
35
  from functools import wraps
37
36
  from pathlib import Path
38
37
  from rich.console import Console
39
38
  from rich.table import Table
40
39
  from rich.progress import Progress, SpinnerColumn, TextColumn
41
- from rich.theme import Theme
42
40
 
43
41
  # Console setup
44
42
  console = Console()
webscout/tempid.py CHANGED
@@ -1,6 +1,6 @@
1
1
  import aiohttp
2
2
  from dataclasses import dataclass
3
- from typing import ClassVar, NoReturn, List, Dict, Any
3
+ from typing import NoReturn, List, Dict, Any
4
4
  import requests
5
5
 
6
6
  @dataclass
@@ -6,9 +6,7 @@ Webscout Update Checker
6
6
  'New Webscout version available: 2.0.0 - Update with: pip install --upgrade webscout'
7
7
  """
8
8
 
9
- import sys
10
- import os
11
- from typing import Optional, Tuple, Dict, Any, Literal, Union
9
+ from typing import Optional, Dict, Any, Literal
12
10
 
13
11
  import requests
14
12
  from packaging import version
webscout/version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "7.5"
1
+ __version__ = "7.6"
2
2
  __prog__ = "webscout"
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import asyncio
4
- import logging
5
4
  import os
6
5
  import warnings
7
6
  from datetime import datetime, timezone
@@ -26,7 +25,7 @@ from .utils import (
26
25
  json_loads,
27
26
  )
28
27
 
29
- logger = logging.getLogger("webscout.AsyncWEBS")
28
+
30
29
 
31
30
 
32
31
  class AsyncWEBS: