webscout 7.7__tar.gz → 7.9__tar.gz
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-7.7/webscout.egg-info → webscout-7.9}/PKG-INFO +92 -64
- {webscout-7.7 → webscout-7.9}/README.md +90 -61
- {webscout-7.7 → webscout-7.9}/setup.py +1 -5
- {webscout-7.7 → webscout-7.9}/webscout/AIutel.py +2 -1
- {webscout-7.7 → webscout-7.9}/webscout/Bard.py +12 -29
- webscout-7.9/webscout/DWEBS.py +477 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/__init__.py +2 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/autocoder/__init__.py +9 -9
- webscout-7.7/webscout/Extra/autocoder/rawdog.py → webscout-7.9/webscout/Extra/autocoder/autocoder.py +849 -790
- webscout-7.9/webscout/Extra/autocoder/autocoder_utiles.py +332 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/gguf.py +682 -682
- webscout-7.9/webscout/Extra/tempmail/__init__.py +26 -0
- webscout-7.9/webscout/Extra/tempmail/async_utils.py +141 -0
- webscout-7.9/webscout/Extra/tempmail/base.py +156 -0
- webscout-7.9/webscout/Extra/tempmail/cli.py +187 -0
- webscout-7.9/webscout/Extra/tempmail/mail_tm.py +361 -0
- webscout-7.9/webscout/Extra/tempmail/temp_mail_io.py +292 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AI21.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AISEARCH/DeepFind.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AISEARCH/ISou.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AISEARCH/felo_search.py +6 -6
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AISEARCH/genspark_search.py +1 -1
- webscout-7.9/webscout/Provider/Aitopia.py +292 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AllenAI.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Andi.py +3 -3
- {webscout-7.7 → webscout-7.9}/webscout/Provider/C4ai.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/ChatGPTES.py +3 -5
- {webscout-7.7 → webscout-7.9}/webscout/Provider/ChatGPTGratis.py +4 -4
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Chatify.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Cloudflare.py +3 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/DeepSeek.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Deepinfra.py +288 -286
- webscout-7.9/webscout/Provider/ElectronHub.py +709 -0
- webscout-7.9/webscout/Provider/ExaChat.py +325 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Free2GPT.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Gemini.py +167 -179
- {webscout-7.7 → webscout-7.9}/webscout/Provider/GithubChat.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Glider.py +4 -4
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Groq.py +41 -27
- {webscout-7.7 → webscout-7.9}/webscout/Provider/HF_space/qwen_qwen2.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/HeckAI.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/HuggingFaceChat.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Hunyuan.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Jadve.py +3 -3
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Koboldai.py +3 -3
- {webscout-7.7 → webscout-7.9}/webscout/Provider/LambdaChat.py +3 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Llama.py +3 -5
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Llama3.py +4 -12
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Marcus.py +3 -3
- {webscout-7.7 → webscout-7.9}/webscout/Provider/OLLAMA.py +8 -8
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Openai.py +7 -3
- {webscout-7.7 → webscout-7.9}/webscout/Provider/PI.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Perplexitylabs.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Phind.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/PizzaGPT.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/QwenLM.py +4 -7
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +3 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +3 -3
- webscout-7.9/webscout/Provider/TTI/ImgSys/__init__.py +23 -0
- webscout-7.9/webscout/Provider/TTI/ImgSys/async_imgsys.py +202 -0
- webscout-7.9/webscout/Provider/TTI/ImgSys/sync_imgsys.py +195 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/__init__.py +3 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/artbit/async_artbit.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/artbit/sync_artbit.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/huggingface/async_huggingface.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/huggingface/sync_huggingface.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/piclumen/__init__.py +22 -22
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/piclumen/sync_piclumen.py +232 -232
- webscout-7.9/webscout/Provider/TTI/pixelmuse/__init__.py +4 -0
- webscout-7.9/webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +249 -0
- webscout-7.9/webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +182 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/talkai/sync_talkai.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/utils.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TeachAnything.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TextPollinationsAI.py +232 -230
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TwoAI.py +1 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Venice.py +4 -2
- webscout-7.9/webscout/Provider/VercelAI.py +234 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/WebSim.py +3 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/WiseCat.py +10 -12
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Youchat.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/__init__.py +10 -4
- {webscout-7.7 → webscout-7.9}/webscout/Provider/ai4chat.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/aimathgpt.py +2 -6
- {webscout-7.7 → webscout-7.9}/webscout/Provider/akashgpt.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/askmyai.py +4 -4
- webscout-7.9/webscout/Provider/asksteve.py +203 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/bagoodex.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/cerebras.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/chatglm.py +4 -4
- {webscout-7.7 → webscout-7.9}/webscout/Provider/cleeai.py +1 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/copilot.py +21 -9
- {webscout-7.7 → webscout-7.9}/webscout/Provider/elmo.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/flowith.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/freeaichat.py +64 -31
- {webscout-7.7 → webscout-7.9}/webscout/Provider/gaurish.py +3 -5
- {webscout-7.7 → webscout-7.9}/webscout/Provider/geminiprorealtime.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/granite.py +4 -4
- {webscout-7.7 → webscout-7.9}/webscout/Provider/hermes.py +5 -5
- {webscout-7.7 → webscout-7.9}/webscout/Provider/julius.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/koala.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/lepton.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/llama3mitril.py +4 -4
- {webscout-7.7 → webscout-7.9}/webscout/Provider/llamatutor.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/llmchat.py +3 -3
- {webscout-7.7 → webscout-7.9}/webscout/Provider/meta.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/multichat.py +10 -10
- {webscout-7.7 → webscout-7.9}/webscout/Provider/promptrefine.py +1 -1
- webscout-7.9/webscout/Provider/searchchat.py +293 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/sonus.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/talkai.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/Provider/turboseek.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/tutorai.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/typegpt.py +5 -42
- {webscout-7.7 → webscout-7.9}/webscout/Provider/uncovr.py +312 -297
- {webscout-7.7 → webscout-7.9}/webscout/Provider/x0gpt.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/Provider/yep.py +64 -12
- {webscout-7.7 → webscout-7.9}/webscout/__init__.py +3 -1
- {webscout-7.7 → webscout-7.9}/webscout/cli.py +59 -98
- webscout-7.9/webscout/conversation.py +565 -0
- webscout-7.9/webscout/litprinter/__init__.py +59 -0
- {webscout-7.7 → webscout-7.9}/webscout/optimizers.py +419 -419
- {webscout-7.7 → webscout-7.9}/webscout/tempid.py +11 -11
- {webscout-7.7 → webscout-7.9}/webscout/update_checker.py +14 -12
- {webscout-7.7 → webscout-7.9}/webscout/utils.py +2 -2
- {webscout-7.7 → webscout-7.9}/webscout/version.py +1 -1
- {webscout-7.7 → webscout-7.9}/webscout/webscout_search.py +146 -87
- {webscout-7.7 → webscout-7.9}/webscout/webscout_search_async.py +148 -27
- {webscout-7.7 → webscout-7.9/webscout.egg-info}/PKG-INFO +92 -64
- {webscout-7.7 → webscout-7.9}/webscout.egg-info/SOURCES.txt +18 -4
- {webscout-7.7 → webscout-7.9}/webscout.egg-info/requires.txt +0 -2
- webscout-7.7/webscout/DWEBS.py +0 -461
- webscout-7.7/webscout/Extra/autocoder/autocoder_utiles.py +0 -194
- webscout-7.7/webscout/Provider/DARKAI.py +0 -224
- webscout-7.7/webscout/Provider/EDITEE.py +0 -192
- webscout-7.7/webscout/Provider/ElectronHub.py +0 -634
- webscout-7.7/webscout/conversation.py +0 -232
- webscout-7.7/webscout/litprinter/__init__.py +0 -667
- webscout-7.7/webscout/litprinter/colors.py +0 -54
- {webscout-7.7 → webscout-7.9}/LICENSE.md +0 -0
- {webscout-7.7 → webscout-7.9}/setup.cfg +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/AIauto.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/AIbase.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/transcriber.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/weather.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Extra/weather_ascii.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/LLM.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/core/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/core/level.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/core/logger.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/handlers/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/handlers/console.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/handlers/file.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/handlers/network.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/styles/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/styles/colors.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/styles/formats.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/styles/text.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/utils/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/utils/detectors.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Litlogger/utils/formatters.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/AISEARCH/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Blackboxai.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/ChatGPTClone.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Cohere.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/GPTWeb.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/HF_space/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Netwrck.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/Reka.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/AiForce/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/MagicStudio/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/Nexra/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/Nexra/async_nexra.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/aiarta/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/aiarta/async_aiarta.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/artbit/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/fastflux/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/fastflux/async_fastflux.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/huggingface/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/piclumen/async_piclumen.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/talkai/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTI/talkai/async_talkai.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/deepgram.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/elevenlabs.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/gesserit.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/murfai.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/parler.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/speechma.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/TTS/streamElements.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/geminiapi.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/labyrinth.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/Provider/learnfastai.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/__main__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/exceptions.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/litagent/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/litagent/agent.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/litagent/constants.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/models.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/prompt_manager.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/crawler.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/scout.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/search_result.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/text_analyzer.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/text_utils.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core/web_analyzer.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/core.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/element.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/parsers/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/parsers/html5lib_parser.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/parsers/html_parser.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/parsers/lxml_parser.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/scout/utils.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/swiftcli/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/yep_search.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/zeroart/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/zeroart/base.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/zeroart/effects.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout/zeroart/fonts.py +0 -0
- {webscout-7.7 → webscout-7.9}/webscout.egg-info/dependency_links.txt +0 -0
- {webscout-7.7 → webscout-7.9}/webscout.egg-info/entry_points.txt +0 -0
- {webscout-7.7 → webscout-7.9}/webscout.egg-info/top_level.txt +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/__init__.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/classifier.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/keywords.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/language.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/ner.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/normalizer.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/processor.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/sentiment.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/stemmer.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/tagger.py +0 -0
- {webscout-7.7 → webscout-7.9}/webstoken/tokenizer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.9
|
|
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
|
|
@@ -13,7 +13,6 @@ Classifier: Intended Audience :: Developers
|
|
|
13
13
|
Classifier: License :: Other/Proprietary License
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -22,43 +21,45 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
22
21
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
23
22
|
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
24
23
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
-
Requires-Python: >=3.
|
|
24
|
+
Requires-Python: >=3.9
|
|
26
25
|
Description-Content-Type: text/markdown
|
|
27
26
|
Provides-Extra: dev
|
|
28
27
|
License-File: LICENSE.md
|
|
29
28
|
|
|
30
|
-
<div align="center">
|
|
31
|
-
<!-- Replace `#` with your actual links -->
|
|
32
|
-
<a href="https://t.me/PyscoutAI"><img alt="Telegram" src="https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
|
|
33
|
-
<a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
|
|
34
|
-
<a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
|
|
35
|
-
<a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
<div align="center">
|
|
39
|
-
<!-- Replace `#` with your actual links -->
|
|
40
|
-
<a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
|
|
41
|
-
</div>
|
|
42
|
-
<div align="center">
|
|
43
|
-
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
|
|
44
|
-
</div>
|
|
45
|
-
<div align="center">
|
|
46
|
-
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
<p align="center">
|
|
50
|
-
<strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
|
|
51
|
-
<br>
|
|
52
|
-
Discover insights with Yep.com, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; and much more!
|
|
53
|
-
</p>
|
|
54
29
|
|
|
55
30
|
<div align="center">
|
|
56
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
31
|
+
<a href="https://github.com/OEvortex/Webscout">
|
|
32
|
+
<!-- Consider adding a dedicated Webscout logo here if you have one -->
|
|
33
|
+
<img src="https://img.shields.io/badge/WebScout-Ultimate%20Toolkit-blue?style=for-the-badge&logo=python&logoColor=white" alt="WebScout Logo">
|
|
34
|
+
</a>
|
|
35
|
+
<br/>
|
|
36
|
+
<h1>Webscout</h1>
|
|
37
|
+
<p><strong>Your All-in-One Python Toolkit for Web Search, AI Interaction, Digital Utilities, and More.</strong></p>
|
|
38
|
+
<p>
|
|
39
|
+
Access diverse search engines, cutting-edge AI models, temporary communication tools, media utilities, developer helpers, and powerful CLI interfaces – all through one unified library.
|
|
40
|
+
</p>
|
|
41
|
+
|
|
42
|
+
<!-- Badges -->
|
|
43
|
+
<p>
|
|
44
|
+
<a href="https://pypi.org/project/webscout/"><img src="https://img.shields.io/pypi/v/webscout.svg?style=flat-square&logo=pypi&label=PyPI" alt="PyPI Version"></a>
|
|
45
|
+
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
|
|
46
|
+
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
|
|
47
|
+
<a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
|
|
48
|
+
<!-- Add License Badge if applicable: <a href="LICENSE"><img src="https://img.shields.io/pypi/l/webscout?style=flat-square" alt="License"></a> -->
|
|
49
|
+
<!-- Add Build Status Badge if applicable -->
|
|
50
|
+
</p>
|
|
51
|
+
|
|
52
|
+
<!-- Social/Support Links -->
|
|
53
|
+
<div>
|
|
54
|
+
<a href="https://t.me/PyscoutAI"><img alt="Telegram Group" src="https://img.shields.io/badge/Telegram%20Group-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
|
|
55
|
+
<a href="https://t.me/ANONYMOUS_56788"><img alt="Developer Telegram" src="https://img.shields.io/badge/Developer%20Contact-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
|
|
56
|
+
<a href="https://youtube.com/@OEvortex"><img alt="YouTube" src="https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white"></a>
|
|
57
|
+
<a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
|
|
58
|
+
<a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
|
|
59
|
+
<a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
|
|
60
|
+
</div>
|
|
59
61
|
</div>
|
|
60
62
|
|
|
61
|
-
---
|
|
62
63
|
|
|
63
64
|
## 🚀 Features
|
|
64
65
|
|
|
@@ -66,7 +67,7 @@ License-File: LICENSE.md
|
|
|
66
67
|
* **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
|
|
67
68
|
* **[YouTube Toolkit](webscout/Extra/YTToolkit):** Advanced YouTube video and transcript management with multi-language support, versatile downloading, and intelligent data extraction
|
|
68
69
|
* **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit for seamless repository and user information retrieval, featuring commit tracking, issue management, and comprehensive user analytics - all without authentication requirements for public data
|
|
69
|
-
* **Tempmail & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
|
|
70
|
+
* **[Tempmail](webscout/Extra/tempmail/README.md) & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
|
|
70
71
|
* **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers like ElevenLabs, StreamElements, and Voicepods.
|
|
71
72
|
* **GGUF Conversion & Quantization:** Convert and quantize Hugging Face models to GGUF format.
|
|
72
73
|
* **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework that makes it easy to create beautiful command-line interfaces.
|
|
@@ -94,6 +95,7 @@ python -m webscout --help
|
|
|
94
95
|
| Command | Description |
|
|
95
96
|
|-------------------------------------------|-------------------------------------------------------------------------------------------------------|
|
|
96
97
|
| python -m webscout answers -k Text | CLI function to perform an answers search using Webscout. |
|
|
98
|
+
| python -m webscout chat | Interactive AI chat using DuckDuckGo's AI. |
|
|
97
99
|
| python -m webscout images -k Text | CLI function to perform an images search using Webscout. |
|
|
98
100
|
| python -m webscout maps -k Text | CLI function to perform a maps search using Webscout. |
|
|
99
101
|
| python -m webscout news -k Text | CLI function to perform a news search using Webscout. |
|
|
@@ -102,9 +104,7 @@ python -m webscout --help
|
|
|
102
104
|
| python -m webscout translate -k Text | CLI function to perform translate using Webscout. |
|
|
103
105
|
| python -m webscout version | A command-line interface command that prints and returns the version of the program. |
|
|
104
106
|
| python -m webscout videos -k Text | CLI function to perform a videos search using DuckDuckGo API. |
|
|
105
|
-
| python -m webscout weather -
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
| python -m webscout weather -l qazigund | CLI function to get weather information for a location using Webscout. |
|
|
108
108
|
|
|
109
109
|
## ✉️ TempMail and VNEngine
|
|
110
110
|
|
|
@@ -123,13 +123,13 @@ async def main():
|
|
|
123
123
|
if numbers:
|
|
124
124
|
number = numbers[0]['full_number']
|
|
125
125
|
inbox = vn.get_number_inbox(country, number)
|
|
126
|
-
|
|
126
|
+
|
|
127
127
|
# Serialize inbox data to JSON string
|
|
128
128
|
json_data = json.dumps(inbox, ensure_ascii=False, indent=4)
|
|
129
|
-
|
|
129
|
+
|
|
130
130
|
# Print with UTF-8 encoding
|
|
131
131
|
print(json_data)
|
|
132
|
-
|
|
132
|
+
|
|
133
133
|
async with TempMail() as client:
|
|
134
134
|
domains = await client.get_domains()
|
|
135
135
|
print("Available Domains:", domains)
|
|
@@ -182,15 +182,53 @@ suggestions = yep.suggestions("hist")
|
|
|
182
182
|
print(suggestions)
|
|
183
183
|
```
|
|
184
184
|
|
|
185
|
-
## 🔍
|
|
185
|
+
## 🔍 GoogleSearch (formerly DWEBS)
|
|
186
186
|
|
|
187
187
|
```python
|
|
188
|
-
from webscout import
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
from webscout import GoogleSearch
|
|
189
|
+
|
|
190
|
+
# Initialize GoogleSearch
|
|
191
|
+
google = GoogleSearch(
|
|
192
|
+
timeout=10, # Optional: Set custom timeout
|
|
193
|
+
proxies=None, # Optional: Use proxies
|
|
194
|
+
verify=True # Optional: SSL verification
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
# Text Search
|
|
198
|
+
text_results = google.text(
|
|
199
|
+
keywords="artificial intelligence",
|
|
200
|
+
region="us", # Optional: Region for results
|
|
201
|
+
safesearch="moderate", # Optional: "on", "moderate", "off"
|
|
202
|
+
max_results=10 # Optional: Limit number of results
|
|
203
|
+
)
|
|
204
|
+
for result in text_results:
|
|
205
|
+
print(f"Title: {result.title}")
|
|
206
|
+
print(f"URL: {result.url}")
|
|
207
|
+
print(f"Description: {result.description}")
|
|
208
|
+
print("---")
|
|
209
|
+
|
|
210
|
+
# News Search
|
|
211
|
+
news_results = google.news(
|
|
212
|
+
keywords="technology trends",
|
|
213
|
+
region="us",
|
|
214
|
+
safesearch="moderate",
|
|
215
|
+
max_results=5
|
|
216
|
+
)
|
|
217
|
+
for result in news_results:
|
|
218
|
+
print(f"Title: {result.title}")
|
|
219
|
+
print(f"URL: {result.url}")
|
|
220
|
+
print(f"Description: {result.description}")
|
|
221
|
+
print("---")
|
|
222
|
+
|
|
223
|
+
# Get search suggestions
|
|
224
|
+
suggestions = google.suggestions("how to")
|
|
225
|
+
print(suggestions)
|
|
226
|
+
|
|
227
|
+
# Legacy usage is still supported
|
|
228
|
+
from webscout import search
|
|
229
|
+
results = search("Python programming", num_results=5)
|
|
230
|
+
for url in results:
|
|
231
|
+
print(url)
|
|
194
232
|
```
|
|
195
233
|
|
|
196
234
|
## 🦆 WEBS and AsyncWEBS
|
|
@@ -267,7 +305,7 @@ await main()
|
|
|
267
305
|
```python
|
|
268
306
|
from webscout import WEBS
|
|
269
307
|
|
|
270
|
-
# Text search for 'live free or die' using DuckDuckGo.com
|
|
308
|
+
# Text search for 'live free or die' using DuckDuckGo.com
|
|
271
309
|
with WEBS() as WEBS:
|
|
272
310
|
for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
|
|
273
311
|
print(r)
|
|
@@ -281,7 +319,7 @@ with WEBS() as WEBS:
|
|
|
281
319
|
```python
|
|
282
320
|
from webscout import WEBS
|
|
283
321
|
|
|
284
|
-
# Instant answers for the query "sun" using DuckDuckGo.com
|
|
322
|
+
# Instant answers for the query "sun" using DuckDuckGo.com
|
|
285
323
|
with WEBS() as WEBS:
|
|
286
324
|
for r in WEBS.answers("sun"):
|
|
287
325
|
print(r)
|
|
@@ -292,7 +330,7 @@ with WEBS() as WEBS:
|
|
|
292
330
|
```python
|
|
293
331
|
from webscout import WEBS
|
|
294
332
|
|
|
295
|
-
# Image search for the keyword 'butterfly' using DuckDuckGo.com
|
|
333
|
+
# Image search for the keyword 'butterfly' using DuckDuckGo.com
|
|
296
334
|
with WEBS() as WEBS:
|
|
297
335
|
keywords = 'butterfly'
|
|
298
336
|
WEBS_images_gen = WEBS.images(
|
|
@@ -314,7 +352,7 @@ with WEBS() as WEBS:
|
|
|
314
352
|
```python
|
|
315
353
|
from webscout import WEBS
|
|
316
354
|
|
|
317
|
-
# Video search for the keyword 'tesla' using DuckDuckGo.com
|
|
355
|
+
# Video search for the keyword 'tesla' using DuckDuckGo.com
|
|
318
356
|
with WEBS() as WEBS:
|
|
319
357
|
keywords = 'tesla'
|
|
320
358
|
WEBS_videos_gen = WEBS.videos(
|
|
@@ -423,7 +461,6 @@ with WEBS() as webs:
|
|
|
423
461
|
|
|
424
462
|
```
|
|
425
463
|
|
|
426
|
-
|
|
427
464
|
#### 📜 List Available LLM Models
|
|
428
465
|
|
|
429
466
|
Retrieve a comprehensive list of all supported LLMs.
|
|
@@ -516,9 +553,6 @@ else:
|
|
|
516
553
|
print(f"Available voices for {provider_name}: {available_voices}")
|
|
517
554
|
```
|
|
518
555
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
556
|
### 💬 `Duckchat` - Chat with LLM
|
|
523
557
|
|
|
524
558
|
```python
|
|
@@ -649,7 +683,7 @@ print(response["message"]) # Access the text message
|
|
|
649
683
|
print("Sources:", response["sources"]) # Access sources (if any)
|
|
650
684
|
|
|
651
685
|
# Image generation
|
|
652
|
-
response = meta_ai.ask("Create an image of a cat wearing a hat.")
|
|
686
|
+
response = meta_ai.ask("Create an image of a cat wearing a hat.")
|
|
653
687
|
print(response["message"]) # Print the text message from the response
|
|
654
688
|
for media in response["media"]:
|
|
655
689
|
print(media["url"]) # Access image URLs
|
|
@@ -834,7 +868,7 @@ a = AndiSearch()
|
|
|
834
868
|
print(a.chat("HelpingAI-9B"))
|
|
835
869
|
```
|
|
836
870
|
|
|
837
|
-
### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `
|
|
871
|
+
### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `KOALA`, `Meta`, `AskMyAI`, `PiAI`, `Julius`, `YouChat`, `YEPCHAT`, `Cloudflare`, `TurboSeek`, `TeachAnything`, `AI21`, `Chatify`, `X0GPT`, `Cerebras`, `Lepton`, `GEMINIAPI`, `Cleeai`, `Elmo`, `Free2GPT`, `GPTWeb`, `Netwrck`, `LlamaTutor`, `PromptRefine`, `TutorAI`, `ChatGPTES`, `Bagoodex`, `AIMathGPT`, `GaurishCerebras`, `GeminiPro`, `LLMChat`, `Talkai`, `Llama3Mitril`, `Marcus`, `TypeGPT`, `Netwrck`, `MultiChatAI`, `JadveOpenAI`, `ChatGLM`, `NousHermes`, `FreeAIChat`, `ElectronHub`, `GithubChat`, `Flowith`, `SonusAI`, `UncovrAI`, `LabyrinthAI`, `WebSim`, `LambdaChat`, `ChatGPTClone`, `VercelAI`, `ExaChat`, `AskSteve`, `Aitopia`, `SearchChatAI`
|
|
838
872
|
|
|
839
873
|
Code is similar to other providers.
|
|
840
874
|
|
|
@@ -868,9 +902,9 @@ Webscout provides tools to convert and quantize Hugging Face models into the GGU
|
|
|
868
902
|
from webscout.Extra.gguf import ModelConverter
|
|
869
903
|
"""
|
|
870
904
|
Valid quantization methods:
|
|
871
|
-
"q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
|
|
872
|
-
"q4_0", "q4_1", "q4_k_m", "q4_k_s",
|
|
873
|
-
"q5_0", "q5_1", "q5_k_m", "q5_k_s",
|
|
905
|
+
"q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
|
|
906
|
+
"q4_0", "q4_1", "q4_k_m", "q4_k_s",
|
|
907
|
+
"q5_0", "q5_1", "q5_k_m", "q5_k_s",
|
|
874
908
|
"q6_k", "q8_0"
|
|
875
909
|
"""
|
|
876
910
|
# Create a converter instance
|
|
@@ -883,7 +917,6 @@ converter = ModelConverter(
|
|
|
883
917
|
converter.convert()
|
|
884
918
|
```
|
|
885
919
|
|
|
886
|
-
|
|
887
920
|
**Command Line Usage:**
|
|
888
921
|
|
|
889
922
|
* **GGUF Conversion:**
|
|
@@ -892,7 +925,6 @@ converter.convert()
|
|
|
892
925
|
python -m webscout.Extra.gguf convert -m "prithivMLmods/QWQ-500M" -q "q2_k"
|
|
893
926
|
```
|
|
894
927
|
|
|
895
|
-
|
|
896
928
|
**Note:**
|
|
897
929
|
|
|
898
930
|
* Replace `"your_username"` and `"your_hf_token"` with your actual Hugging Face credentials.
|
|
@@ -910,9 +942,6 @@ converter.convert()
|
|
|
910
942
|
<!-- Replace `#` with your actual links -->
|
|
911
943
|
<a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
|
|
912
944
|
</div>
|
|
913
|
-
<div align="center">
|
|
914
|
-
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
|
|
915
|
-
</div>
|
|
916
945
|
<div align="center">
|
|
917
946
|
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
|
|
918
947
|
</div>
|
|
@@ -931,4 +960,3 @@ Contributions are welcome! If you'd like to contribute to Webscout, please follo
|
|
|
931
960
|
|
|
932
961
|
* All the amazing developers who have contributed to the project!
|
|
933
962
|
* The open-source community for their support and inspiration.
|
|
934
|
-
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
<!-- Replace `#` with your actual links -->
|
|
3
|
-
<a href="https://t.me/PyscoutAI"><img alt="Telegram" src="https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
|
|
4
|
-
<a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
|
|
5
|
-
<a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
|
|
6
|
-
<a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
|
|
7
|
-
</div>
|
|
8
|
-
|
|
9
|
-
<div align="center">
|
|
10
|
-
<!-- Replace `#` with your actual links -->
|
|
11
|
-
<a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
|
|
12
|
-
</div>
|
|
13
|
-
<div align="center">
|
|
14
|
-
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
|
|
15
|
-
</div>
|
|
16
|
-
<div align="center">
|
|
17
|
-
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
|
|
18
|
-
</div>
|
|
19
|
-
|
|
20
|
-
<p align="center">
|
|
21
|
-
<strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
|
|
22
|
-
<br>
|
|
23
|
-
Discover insights with Yep.com, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; and much more!
|
|
24
|
-
</p>
|
|
25
1
|
|
|
26
2
|
<div align="center">
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
3
|
+
<a href="https://github.com/OEvortex/Webscout">
|
|
4
|
+
<!-- Consider adding a dedicated Webscout logo here if you have one -->
|
|
5
|
+
<img src="https://img.shields.io/badge/WebScout-Ultimate%20Toolkit-blue?style=for-the-badge&logo=python&logoColor=white" alt="WebScout Logo">
|
|
6
|
+
</a>
|
|
7
|
+
<br/>
|
|
8
|
+
<h1>Webscout</h1>
|
|
9
|
+
<p><strong>Your All-in-One Python Toolkit for Web Search, AI Interaction, Digital Utilities, and More.</strong></p>
|
|
10
|
+
<p>
|
|
11
|
+
Access diverse search engines, cutting-edge AI models, temporary communication tools, media utilities, developer helpers, and powerful CLI interfaces – all through one unified library.
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<!-- Badges -->
|
|
15
|
+
<p>
|
|
16
|
+
<a href="https://pypi.org/project/webscout/"><img src="https://img.shields.io/pypi/v/webscout.svg?style=flat-square&logo=pypi&label=PyPI" alt="PyPI Version"></a>
|
|
17
|
+
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout/month?style=flat-square" alt="Monthly Downloads"></a>
|
|
18
|
+
<a href="https://pepy.tech/project/webscout"><img src="https://static.pepy.tech/badge/webscout?style=flat-square" alt="Total Downloads"></a>
|
|
19
|
+
<a href="#"><img src="https://img.shields.io/pypi/pyversions/webscout?style=flat-square&logo=python" alt="Python Version"></a>
|
|
20
|
+
<!-- Add License Badge if applicable: <a href="LICENSE"><img src="https://img.shields.io/pypi/l/webscout?style=flat-square" alt="License"></a> -->
|
|
21
|
+
<!-- Add Build Status Badge if applicable -->
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<!-- Social/Support Links -->
|
|
25
|
+
<div>
|
|
26
|
+
<a href="https://t.me/PyscoutAI"><img alt="Telegram Group" src="https://img.shields.io/badge/Telegram%20Group-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
|
|
27
|
+
<a href="https://t.me/ANONYMOUS_56788"><img alt="Developer Telegram" src="https://img.shields.io/badge/Developer%20Contact-2CA5E0?style=for-the-badge&logo=telegram&logoColor=white"></a>
|
|
28
|
+
<a href="https://youtube.com/@OEvortex"><img alt="YouTube" src="https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white"></a>
|
|
29
|
+
<a href="https://www.linkedin.com/in/oe-vortex-29a407265/"><img alt="LinkedIn" src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white"></a>
|
|
30
|
+
<a href="https://www.instagram.com/oevortex/"><img alt="Instagram" src="https://img.shields.io/badge/Instagram-E4405F?style=for-the-badge&logo=instagram&logoColor=white"></a>
|
|
31
|
+
<a href="https://buymeacoffee.com/oevortex"><img alt="Buy Me A Coffee" src="https://img.shields.io/badge/Buy%20Me%20A%20Coffee-FFDD00?style=for-the-badge&logo=buymeacoffee&logoColor=black"></a>
|
|
32
|
+
</div>
|
|
30
33
|
</div>
|
|
31
34
|
|
|
32
|
-
---
|
|
33
35
|
|
|
34
36
|
## 🚀 Features
|
|
35
37
|
|
|
@@ -37,7 +39,7 @@
|
|
|
37
39
|
* **AI Powerhouse:** Access and interact with various AI models, including OpenAI, Cohere, and more.
|
|
38
40
|
* **[YouTube Toolkit](webscout/Extra/YTToolkit):** Advanced YouTube video and transcript management with multi-language support, versatile downloading, and intelligent data extraction
|
|
39
41
|
* **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit for seamless repository and user information retrieval, featuring commit tracking, issue management, and comprehensive user analytics - all without authentication requirements for public data
|
|
40
|
-
* **Tempmail & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
|
|
42
|
+
* **[Tempmail](webscout/Extra/tempmail/README.md) & Temp Number:** Generate temporary email addresses and phone numbers for enhanced privacy.
|
|
41
43
|
* **[Text-to-Speech (TTS)](webscout/Provider/TTS/README.md):** Convert text into natural-sounding speech using multiple AI-powered providers like ElevenLabs, StreamElements, and Voicepods.
|
|
42
44
|
* **GGUF Conversion & Quantization:** Convert and quantize Hugging Face models to GGUF format.
|
|
43
45
|
* **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework that makes it easy to create beautiful command-line interfaces.
|
|
@@ -65,6 +67,7 @@ python -m webscout --help
|
|
|
65
67
|
| Command | Description |
|
|
66
68
|
|-------------------------------------------|-------------------------------------------------------------------------------------------------------|
|
|
67
69
|
| python -m webscout answers -k Text | CLI function to perform an answers search using Webscout. |
|
|
70
|
+
| python -m webscout chat | Interactive AI chat using DuckDuckGo's AI. |
|
|
68
71
|
| python -m webscout images -k Text | CLI function to perform an images search using Webscout. |
|
|
69
72
|
| python -m webscout maps -k Text | CLI function to perform a maps search using Webscout. |
|
|
70
73
|
| python -m webscout news -k Text | CLI function to perform a news search using Webscout. |
|
|
@@ -73,9 +76,7 @@ python -m webscout --help
|
|
|
73
76
|
| python -m webscout translate -k Text | CLI function to perform translate using Webscout. |
|
|
74
77
|
| python -m webscout version | A command-line interface command that prints and returns the version of the program. |
|
|
75
78
|
| python -m webscout videos -k Text | CLI function to perform a videos search using DuckDuckGo API. |
|
|
76
|
-
| python -m webscout weather -
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
| python -m webscout weather -l qazigund | CLI function to get weather information for a location using Webscout. |
|
|
79
80
|
|
|
80
81
|
## ✉️ TempMail and VNEngine
|
|
81
82
|
|
|
@@ -94,13 +95,13 @@ async def main():
|
|
|
94
95
|
if numbers:
|
|
95
96
|
number = numbers[0]['full_number']
|
|
96
97
|
inbox = vn.get_number_inbox(country, number)
|
|
97
|
-
|
|
98
|
+
|
|
98
99
|
# Serialize inbox data to JSON string
|
|
99
100
|
json_data = json.dumps(inbox, ensure_ascii=False, indent=4)
|
|
100
|
-
|
|
101
|
+
|
|
101
102
|
# Print with UTF-8 encoding
|
|
102
103
|
print(json_data)
|
|
103
|
-
|
|
104
|
+
|
|
104
105
|
async with TempMail() as client:
|
|
105
106
|
domains = await client.get_domains()
|
|
106
107
|
print("Available Domains:", domains)
|
|
@@ -153,15 +154,53 @@ suggestions = yep.suggestions("hist")
|
|
|
153
154
|
print(suggestions)
|
|
154
155
|
```
|
|
155
156
|
|
|
156
|
-
## 🔍
|
|
157
|
+
## 🔍 GoogleSearch (formerly DWEBS)
|
|
157
158
|
|
|
158
159
|
```python
|
|
159
|
-
from webscout import
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
from webscout import GoogleSearch
|
|
161
|
+
|
|
162
|
+
# Initialize GoogleSearch
|
|
163
|
+
google = GoogleSearch(
|
|
164
|
+
timeout=10, # Optional: Set custom timeout
|
|
165
|
+
proxies=None, # Optional: Use proxies
|
|
166
|
+
verify=True # Optional: SSL verification
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
# Text Search
|
|
170
|
+
text_results = google.text(
|
|
171
|
+
keywords="artificial intelligence",
|
|
172
|
+
region="us", # Optional: Region for results
|
|
173
|
+
safesearch="moderate", # Optional: "on", "moderate", "off"
|
|
174
|
+
max_results=10 # Optional: Limit number of results
|
|
175
|
+
)
|
|
176
|
+
for result in text_results:
|
|
177
|
+
print(f"Title: {result.title}")
|
|
178
|
+
print(f"URL: {result.url}")
|
|
179
|
+
print(f"Description: {result.description}")
|
|
180
|
+
print("---")
|
|
181
|
+
|
|
182
|
+
# News Search
|
|
183
|
+
news_results = google.news(
|
|
184
|
+
keywords="technology trends",
|
|
185
|
+
region="us",
|
|
186
|
+
safesearch="moderate",
|
|
187
|
+
max_results=5
|
|
188
|
+
)
|
|
189
|
+
for result in news_results:
|
|
190
|
+
print(f"Title: {result.title}")
|
|
191
|
+
print(f"URL: {result.url}")
|
|
192
|
+
print(f"Description: {result.description}")
|
|
193
|
+
print("---")
|
|
194
|
+
|
|
195
|
+
# Get search suggestions
|
|
196
|
+
suggestions = google.suggestions("how to")
|
|
197
|
+
print(suggestions)
|
|
198
|
+
|
|
199
|
+
# Legacy usage is still supported
|
|
200
|
+
from webscout import search
|
|
201
|
+
results = search("Python programming", num_results=5)
|
|
202
|
+
for url in results:
|
|
203
|
+
print(url)
|
|
165
204
|
```
|
|
166
205
|
|
|
167
206
|
## 🦆 WEBS and AsyncWEBS
|
|
@@ -238,7 +277,7 @@ await main()
|
|
|
238
277
|
```python
|
|
239
278
|
from webscout import WEBS
|
|
240
279
|
|
|
241
|
-
# Text search for 'live free or die' using DuckDuckGo.com
|
|
280
|
+
# Text search for 'live free or die' using DuckDuckGo.com
|
|
242
281
|
with WEBS() as WEBS:
|
|
243
282
|
for r in WEBS.text('live free or die', region='wt-wt', safesearch='off', timelimit='y', max_results=10):
|
|
244
283
|
print(r)
|
|
@@ -252,7 +291,7 @@ with WEBS() as WEBS:
|
|
|
252
291
|
```python
|
|
253
292
|
from webscout import WEBS
|
|
254
293
|
|
|
255
|
-
# Instant answers for the query "sun" using DuckDuckGo.com
|
|
294
|
+
# Instant answers for the query "sun" using DuckDuckGo.com
|
|
256
295
|
with WEBS() as WEBS:
|
|
257
296
|
for r in WEBS.answers("sun"):
|
|
258
297
|
print(r)
|
|
@@ -263,7 +302,7 @@ with WEBS() as WEBS:
|
|
|
263
302
|
```python
|
|
264
303
|
from webscout import WEBS
|
|
265
304
|
|
|
266
|
-
# Image search for the keyword 'butterfly' using DuckDuckGo.com
|
|
305
|
+
# Image search for the keyword 'butterfly' using DuckDuckGo.com
|
|
267
306
|
with WEBS() as WEBS:
|
|
268
307
|
keywords = 'butterfly'
|
|
269
308
|
WEBS_images_gen = WEBS.images(
|
|
@@ -285,7 +324,7 @@ with WEBS() as WEBS:
|
|
|
285
324
|
```python
|
|
286
325
|
from webscout import WEBS
|
|
287
326
|
|
|
288
|
-
# Video search for the keyword 'tesla' using DuckDuckGo.com
|
|
327
|
+
# Video search for the keyword 'tesla' using DuckDuckGo.com
|
|
289
328
|
with WEBS() as WEBS:
|
|
290
329
|
keywords = 'tesla'
|
|
291
330
|
WEBS_videos_gen = WEBS.videos(
|
|
@@ -394,7 +433,6 @@ with WEBS() as webs:
|
|
|
394
433
|
|
|
395
434
|
```
|
|
396
435
|
|
|
397
|
-
|
|
398
436
|
#### 📜 List Available LLM Models
|
|
399
437
|
|
|
400
438
|
Retrieve a comprehensive list of all supported LLMs.
|
|
@@ -487,9 +525,6 @@ else:
|
|
|
487
525
|
print(f"Available voices for {provider_name}: {available_voices}")
|
|
488
526
|
```
|
|
489
527
|
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
528
|
### 💬 `Duckchat` - Chat with LLM
|
|
494
529
|
|
|
495
530
|
```python
|
|
@@ -620,7 +655,7 @@ print(response["message"]) # Access the text message
|
|
|
620
655
|
print("Sources:", response["sources"]) # Access sources (if any)
|
|
621
656
|
|
|
622
657
|
# Image generation
|
|
623
|
-
response = meta_ai.ask("Create an image of a cat wearing a hat.")
|
|
658
|
+
response = meta_ai.ask("Create an image of a cat wearing a hat.")
|
|
624
659
|
print(response["message"]) # Print the text message from the response
|
|
625
660
|
for media in response["media"]:
|
|
626
661
|
print(media["url"]) # Access image URLs
|
|
@@ -805,7 +840,7 @@ a = AndiSearch()
|
|
|
805
840
|
print(a.chat("HelpingAI-9B"))
|
|
806
841
|
```
|
|
807
842
|
|
|
808
|
-
### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `
|
|
843
|
+
### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `KOALA`, `Meta`, `AskMyAI`, `PiAI`, `Julius`, `YouChat`, `YEPCHAT`, `Cloudflare`, `TurboSeek`, `TeachAnything`, `AI21`, `Chatify`, `X0GPT`, `Cerebras`, `Lepton`, `GEMINIAPI`, `Cleeai`, `Elmo`, `Free2GPT`, `GPTWeb`, `Netwrck`, `LlamaTutor`, `PromptRefine`, `TutorAI`, `ChatGPTES`, `Bagoodex`, `AIMathGPT`, `GaurishCerebras`, `GeminiPro`, `LLMChat`, `Talkai`, `Llama3Mitril`, `Marcus`, `TypeGPT`, `Netwrck`, `MultiChatAI`, `JadveOpenAI`, `ChatGLM`, `NousHermes`, `FreeAIChat`, `ElectronHub`, `GithubChat`, `Flowith`, `SonusAI`, `UncovrAI`, `LabyrinthAI`, `WebSim`, `LambdaChat`, `ChatGPTClone`, `VercelAI`, `ExaChat`, `AskSteve`, `Aitopia`, `SearchChatAI`
|
|
809
844
|
|
|
810
845
|
Code is similar to other providers.
|
|
811
846
|
|
|
@@ -839,9 +874,9 @@ Webscout provides tools to convert and quantize Hugging Face models into the GGU
|
|
|
839
874
|
from webscout.Extra.gguf import ModelConverter
|
|
840
875
|
"""
|
|
841
876
|
Valid quantization methods:
|
|
842
|
-
"q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
|
|
843
|
-
"q4_0", "q4_1", "q4_k_m", "q4_k_s",
|
|
844
|
-
"q5_0", "q5_1", "q5_k_m", "q5_k_s",
|
|
877
|
+
"q2_k", "q3_k_l", "q3_k_m", "q3_k_s",
|
|
878
|
+
"q4_0", "q4_1", "q4_k_m", "q4_k_s",
|
|
879
|
+
"q5_0", "q5_1", "q5_k_m", "q5_k_s",
|
|
845
880
|
"q6_k", "q8_0"
|
|
846
881
|
"""
|
|
847
882
|
# Create a converter instance
|
|
@@ -854,7 +889,6 @@ converter = ModelConverter(
|
|
|
854
889
|
converter.convert()
|
|
855
890
|
```
|
|
856
891
|
|
|
857
|
-
|
|
858
892
|
**Command Line Usage:**
|
|
859
893
|
|
|
860
894
|
* **GGUF Conversion:**
|
|
@@ -863,7 +897,6 @@ converter.convert()
|
|
|
863
897
|
python -m webscout.Extra.gguf convert -m "prithivMLmods/QWQ-500M" -q "q2_k"
|
|
864
898
|
```
|
|
865
899
|
|
|
866
|
-
|
|
867
900
|
**Note:**
|
|
868
901
|
|
|
869
902
|
* Replace `"your_username"` and `"your_hf_token"` with your actual Hugging Face credentials.
|
|
@@ -881,9 +914,6 @@ converter.convert()
|
|
|
881
914
|
<!-- Replace `#` with your actual links -->
|
|
882
915
|
<a href="https://youtube.com/@OEvortex">▶️ Vortex's YouTube Channel</a>
|
|
883
916
|
</div>
|
|
884
|
-
<div align="center">
|
|
885
|
-
<a href="https://youtube.com/@devsdocode">▶️ Devs Do Code's YouTube Channel</a>
|
|
886
|
-
</div>
|
|
887
917
|
<div align="center">
|
|
888
918
|
<a href="https://t.me/ANONYMOUS_56788">📢 Anonymous Coder's Telegram</a>
|
|
889
919
|
</div>
|
|
@@ -902,4 +932,3 @@ Contributions are welcome! If you'd like to contribute to Webscout, please follo
|
|
|
902
932
|
|
|
903
933
|
* All the amazing developers who have contributed to the project!
|
|
904
934
|
* The open-source community for their support and inspiration.
|
|
905
|
-
|
|
@@ -13,14 +13,13 @@ setup(
|
|
|
13
13
|
author="OEvortex",
|
|
14
14
|
author_email="helpingai5@gmail.com",
|
|
15
15
|
packages=find_packages(),
|
|
16
|
-
python_requires=">=3.
|
|
16
|
+
python_requires=">=3.9",
|
|
17
17
|
classifiers=[
|
|
18
18
|
"Development Status :: 5 - Production/Stable",
|
|
19
19
|
"Intended Audience :: Developers",
|
|
20
20
|
"License :: Other/Proprietary License",
|
|
21
21
|
"Operating System :: OS Independent",
|
|
22
22
|
"Programming Language :: Python :: 3",
|
|
23
|
-
"Programming Language :: Python :: 3.8",
|
|
24
23
|
"Programming Language :: Python :: 3.9",
|
|
25
24
|
"Programming Language :: Python :: 3.10",
|
|
26
25
|
"Programming Language :: Python :: 3.11",
|
|
@@ -49,21 +48,18 @@ setup(
|
|
|
49
48
|
"termcolor",
|
|
50
49
|
"orjson",
|
|
51
50
|
"PyYAML",
|
|
52
|
-
"tls_client",
|
|
53
51
|
"ollama",
|
|
54
52
|
"pillow",
|
|
55
53
|
"bson",
|
|
56
54
|
"cloudscraper",
|
|
57
55
|
"html5lib",
|
|
58
56
|
"aiofiles",
|
|
59
|
-
"emoji",
|
|
60
57
|
"openai",
|
|
61
58
|
"prompt-toolkit",
|
|
62
59
|
"primp",
|
|
63
60
|
"pyreqwest_impersonate",
|
|
64
61
|
"gradio_client",
|
|
65
62
|
"psutil",
|
|
66
|
-
# "pygetwindow",
|
|
67
63
|
"aiohttp",
|
|
68
64
|
],
|
|
69
65
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import platform
|
|
3
3
|
import subprocess
|
|
4
|
+
from typing import Union
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
def sanitize_stream(
|
|
8
9
|
chunk: str, intro_value: str = "data:", to_json: bool = True
|
|
9
|
-
) -> str
|
|
10
|
+
) -> Union[str, dict]:
|
|
10
11
|
"""Remove streaming flags
|
|
11
12
|
|
|
12
13
|
Args:
|