webscout 7.5__py3-none-any.whl → 7.7__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.
- webscout/AIauto.py +5 -53
- webscout/AIutel.py +8 -318
- webscout/DWEBS.py +460 -489
- webscout/Extra/YTToolkit/YTdownloader.py +14 -53
- webscout/Extra/YTToolkit/transcriber.py +12 -13
- webscout/Extra/YTToolkit/ytapi/video.py +0 -1
- webscout/Extra/__init__.py +0 -1
- webscout/Extra/autocoder/__init__.py +9 -9
- webscout/Extra/autocoder/autocoder_utiles.py +193 -199
- webscout/Extra/autocoder/rawdog.py +789 -677
- webscout/Extra/gguf.py +682 -428
- webscout/Extra/weather.py +178 -156
- webscout/Extra/weather_ascii.py +70 -17
- webscout/Litlogger/core/logger.py +1 -2
- webscout/Litlogger/handlers/file.py +1 -1
- webscout/Litlogger/styles/formats.py +0 -2
- webscout/Litlogger/utils/detectors.py +0 -1
- webscout/Provider/AISEARCH/DeepFind.py +0 -1
- webscout/Provider/AISEARCH/ISou.py +1 -22
- webscout/Provider/AISEARCH/felo_search.py +0 -1
- webscout/Provider/AllenAI.py +28 -30
- webscout/Provider/C4ai.py +29 -11
- webscout/Provider/ChatGPTClone.py +226 -0
- webscout/Provider/ChatGPTGratis.py +24 -56
- webscout/Provider/DeepSeek.py +25 -17
- webscout/Provider/Deepinfra.py +115 -48
- webscout/Provider/Gemini.py +1 -1
- webscout/Provider/Glider.py +33 -12
- webscout/Provider/HF_space/qwen_qwen2.py +2 -2
- webscout/Provider/HeckAI.py +23 -7
- webscout/Provider/Hunyuan.py +272 -0
- webscout/Provider/Jadve.py +20 -5
- webscout/Provider/LambdaChat.py +391 -0
- webscout/Provider/Netwrck.py +42 -19
- webscout/Provider/OLLAMA.py +256 -32
- webscout/Provider/PI.py +4 -2
- webscout/Provider/Perplexitylabs.py +26 -6
- webscout/Provider/PizzaGPT.py +10 -51
- webscout/Provider/TTI/AiForce/async_aiforce.py +4 -37
- webscout/Provider/TTI/AiForce/sync_aiforce.py +41 -38
- webscout/Provider/TTI/FreeAIPlayground/__init__.py +9 -9
- webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +179 -206
- webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +180 -192
- webscout/Provider/TTI/MagicStudio/__init__.py +2 -0
- webscout/Provider/TTI/MagicStudio/async_magicstudio.py +111 -0
- webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +109 -0
- webscout/Provider/TTI/PollinationsAI/async_pollinations.py +5 -24
- webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +2 -22
- webscout/Provider/TTI/__init__.py +2 -3
- webscout/Provider/TTI/aiarta/async_aiarta.py +14 -14
- webscout/Provider/TTI/aiarta/sync_aiarta.py +52 -21
- webscout/Provider/TTI/artbit/async_artbit.py +3 -32
- webscout/Provider/TTI/artbit/sync_artbit.py +3 -31
- webscout/Provider/TTI/fastflux/__init__.py +22 -0
- webscout/Provider/TTI/fastflux/async_fastflux.py +261 -0
- webscout/Provider/TTI/fastflux/sync_fastflux.py +252 -0
- webscout/Provider/TTI/piclumen/__init__.py +22 -22
- webscout/Provider/TTI/piclumen/sync_piclumen.py +232 -232
- webscout/Provider/TTS/__init__.py +2 -2
- webscout/Provider/TTS/deepgram.py +12 -39
- webscout/Provider/TTS/elevenlabs.py +14 -40
- webscout/Provider/TTS/gesserit.py +11 -35
- webscout/Provider/TTS/murfai.py +13 -39
- webscout/Provider/TTS/parler.py +17 -40
- webscout/Provider/TTS/speechma.py +180 -0
- webscout/Provider/TTS/streamElements.py +17 -44
- webscout/Provider/TextPollinationsAI.py +39 -59
- webscout/Provider/Venice.py +25 -8
- webscout/Provider/WebSim.py +227 -0
- webscout/Provider/WiseCat.py +27 -5
- webscout/Provider/Youchat.py +64 -37
- webscout/Provider/__init__.py +12 -7
- webscout/Provider/akashgpt.py +20 -5
- webscout/Provider/flowith.py +33 -7
- webscout/Provider/freeaichat.py +32 -45
- webscout/Provider/koala.py +20 -5
- webscout/Provider/labyrinth.py +239 -0
- webscout/Provider/learnfastai.py +28 -15
- webscout/Provider/llamatutor.py +1 -1
- webscout/Provider/llmchat.py +30 -8
- webscout/Provider/multichat.py +65 -9
- webscout/Provider/sonus.py +208 -0
- webscout/Provider/talkai.py +1 -0
- webscout/Provider/turboseek.py +3 -0
- webscout/Provider/tutorai.py +2 -0
- webscout/Provider/typegpt.py +155 -65
- webscout/Provider/uncovr.py +297 -0
- webscout/Provider/x0gpt.py +3 -1
- webscout/Provider/yep.py +102 -20
- webscout/__init__.py +3 -0
- webscout/cli.py +53 -40
- webscout/conversation.py +1 -10
- webscout/litagent/__init__.py +2 -2
- webscout/litagent/agent.py +356 -20
- webscout/litagent/constants.py +34 -5
- webscout/litprinter/__init__.py +0 -3
- webscout/models.py +181 -0
- webscout/optimizers.py +1 -1
- webscout/prompt_manager.py +2 -8
- webscout/scout/core/scout.py +1 -4
- webscout/scout/core/search_result.py +1 -1
- webscout/scout/core/text_utils.py +1 -1
- webscout/scout/core.py +2 -5
- webscout/scout/element.py +1 -1
- webscout/scout/parsers/html_parser.py +1 -1
- webscout/scout/utils.py +0 -1
- webscout/swiftcli/__init__.py +1 -3
- webscout/tempid.py +1 -1
- webscout/update_checker.py +1 -3
- webscout/version.py +1 -1
- webscout/webscout_search_async.py +1 -2
- webscout/yep_search.py +297 -297
- {webscout-7.5.dist-info → webscout-7.7.dist-info}/LICENSE.md +4 -4
- {webscout-7.5.dist-info → webscout-7.7.dist-info}/METADATA +127 -405
- {webscout-7.5.dist-info → webscout-7.7.dist-info}/RECORD +118 -117
- webscout/Extra/autollama.py +0 -231
- webscout/Provider/Amigo.py +0 -274
- webscout/Provider/Bing.py +0 -243
- webscout/Provider/DiscordRocks.py +0 -253
- webscout/Provider/TTI/blackbox/__init__.py +0 -4
- webscout/Provider/TTI/blackbox/async_blackbox.py +0 -212
- webscout/Provider/TTI/blackbox/sync_blackbox.py +0 -199
- webscout/Provider/TTI/deepinfra/__init__.py +0 -4
- webscout/Provider/TTI/deepinfra/async_deepinfra.py +0 -227
- webscout/Provider/TTI/deepinfra/sync_deepinfra.py +0 -199
- webscout/Provider/TTI/imgninza/__init__.py +0 -4
- webscout/Provider/TTI/imgninza/async_ninza.py +0 -214
- webscout/Provider/TTI/imgninza/sync_ninza.py +0 -209
- webscout/Provider/TTS/voicepod.py +0 -117
- {webscout-7.5.dist-info → webscout-7.7.dist-info}/WHEEL +0 -0
- {webscout-7.5.dist-info → webscout-7.7.dist-info}/entry_points.txt +0 -0
- {webscout-7.5.dist-info → webscout-7.7.dist-info}/top_level.txt +0 -0
webscout/litagent/constants.py
CHANGED
|
@@ -6,7 +6,9 @@ BROWSERS = {
|
|
|
6
6
|
"firefox": (48, 121),
|
|
7
7
|
"safari": (605, 617),
|
|
8
8
|
"edge": (79, 120),
|
|
9
|
-
"opera": (48, 104)
|
|
9
|
+
"opera": (48, 104),
|
|
10
|
+
"brave": (100, 120),
|
|
11
|
+
"vivaldi": (5, 6)
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
# OS versions
|
|
@@ -15,7 +17,8 @@ OS_VERSIONS = {
|
|
|
15
17
|
"mac": ["10_15_7", "11_0", "12_0", "13_0", "14_0"],
|
|
16
18
|
"linux": ["x86_64", "i686"],
|
|
17
19
|
"android": ["10", "11", "12", "13", "14"],
|
|
18
|
-
"ios": ["14_0", "15_0", "16_0", "17_0"]
|
|
20
|
+
"ios": ["14_0", "15_0", "16_0", "17_0"],
|
|
21
|
+
"chrome_os": ["13.0", "14.0", "15.0"]
|
|
19
22
|
}
|
|
20
23
|
|
|
21
24
|
# Device types
|
|
@@ -25,7 +28,33 @@ DEVICES = {
|
|
|
25
28
|
"OnePlus", "Xiaomi", "Huawei", "OPPO", "Vivo"
|
|
26
29
|
],
|
|
27
30
|
"desktop": ["Windows PC", "MacBook", "iMac", "Linux Desktop"],
|
|
28
|
-
"tablet": ["iPad", "Samsung Galaxy Tab", "Microsoft Surface"],
|
|
29
|
-
"console": ["PlayStation 5", "Xbox Series X", "Nintendo Switch"],
|
|
30
|
-
"tv": ["Samsung Smart TV", "LG WebOS", "Android TV", "Apple TV"]
|
|
31
|
+
"tablet": ["iPad", "Samsung Galaxy Tab", "Microsoft Surface", "Huawei MatePad", "Lenovo Tab"],
|
|
32
|
+
"console": ["PlayStation 5", "Xbox Series X", "Nintendo Switch", "PlayStation 4", "Xbox One"],
|
|
33
|
+
"tv": ["Samsung Smart TV", "LG WebOS", "Android TV", "Apple TV", "Sony Bravia"],
|
|
34
|
+
"wearable": ["Apple Watch", "Samsung Galaxy Watch", "Fitbit", "Garmin"]
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# Browser fingerprinting components
|
|
38
|
+
FINGERPRINTS = {
|
|
39
|
+
"accept_language": [
|
|
40
|
+
"en-US,en;q=0.9",
|
|
41
|
+
"en-GB,en;q=0.8,en-US;q=0.6",
|
|
42
|
+
"es-ES,es;q=0.9,en;q=0.8",
|
|
43
|
+
"fr-FR,fr;q=0.9,en;q=0.8",
|
|
44
|
+
"de-DE,de;q=0.9,en;q=0.8"
|
|
45
|
+
],
|
|
46
|
+
"accept": [
|
|
47
|
+
"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
|
|
48
|
+
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
49
|
+
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"
|
|
50
|
+
],
|
|
51
|
+
"sec_ch_ua": {
|
|
52
|
+
"chrome": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"{}\", \"Google Chrome\";v=\"{}\"",
|
|
53
|
+
"edge": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"{}\", \"Microsoft Edge\";v=\"{}\"",
|
|
54
|
+
"firefox": "\"Firefox\";v=\"{}\", \"Not;A=Brand\";v=\"8\"",
|
|
55
|
+
"safari": "\"Safari\";v=\"{}\", \"Not;A=Brand\";v=\"99\""
|
|
56
|
+
},
|
|
57
|
+
"platforms": [
|
|
58
|
+
"Windows", "macOS", "Linux", "Android", "iOS"
|
|
59
|
+
]
|
|
31
60
|
}
|
webscout/litprinter/__init__.py
CHANGED
|
@@ -5,11 +5,8 @@ import time
|
|
|
5
5
|
import threading
|
|
6
6
|
import re
|
|
7
7
|
from typing import Any, Optional, TextIO, Union, Sequence, Dict, List
|
|
8
|
-
from datetime import datetime
|
|
9
8
|
import textwrap
|
|
10
|
-
from collections import defaultdict
|
|
11
9
|
import shutil
|
|
12
|
-
import inspect
|
|
13
10
|
from .colors import Colors
|
|
14
11
|
import ctypes
|
|
15
12
|
|
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
webscout/prompt_manager.py
CHANGED
|
@@ -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
|
|
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()
|
webscout/scout/core/scout.py
CHANGED
|
@@ -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
|
|
9
|
+
from typing import List, Dict, Optional, Any
|
|
13
10
|
|
|
14
11
|
from ..parsers import ParserRegistry
|
|
15
12
|
from ..element import Tag, NavigableString
|
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
|
|
19
|
-
from typing import Union, List, Dict, Optional, Callable, Any,
|
|
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
|
@@ -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
|
|
8
|
+
from typing import List
|
|
9
9
|
|
|
10
10
|
from ..element import Tag, NavigableString
|
|
11
11
|
|
webscout/scout/utils.py
CHANGED
webscout/swiftcli/__init__.py
CHANGED
|
@@ -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,
|
|
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
webscout/update_checker.py
CHANGED
|
@@ -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
|
|
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.
|
|
1
|
+
__version__ = "7.7"
|
|
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
|
-
|
|
28
|
+
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
class AsyncWEBS:
|