webscout 8.2.8__py3-none-any.whl → 8.3__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 +34 -16
- webscout/AIbase.py +96 -37
- webscout/AIutel.py +491 -87
- webscout/Bard.py +441 -323
- webscout/Extra/GitToolkit/__init__.py +10 -10
- webscout/Extra/YTToolkit/ytapi/video.py +232 -232
- webscout/Litlogger/README.md +10 -0
- webscout/Litlogger/__init__.py +7 -59
- webscout/Litlogger/formats.py +4 -0
- webscout/Litlogger/handlers.py +103 -0
- webscout/Litlogger/levels.py +13 -0
- webscout/Litlogger/logger.py +92 -0
- webscout/Provider/AISEARCH/Perplexity.py +332 -358
- webscout/Provider/AISEARCH/felo_search.py +9 -35
- webscout/Provider/AISEARCH/genspark_search.py +30 -56
- webscout/Provider/AISEARCH/hika_search.py +4 -16
- webscout/Provider/AISEARCH/iask_search.py +410 -436
- webscout/Provider/AISEARCH/monica_search.py +4 -30
- webscout/Provider/AISEARCH/scira_search.py +6 -32
- webscout/Provider/AISEARCH/webpilotai_search.py +38 -64
- webscout/Provider/Blackboxai.py +155 -35
- webscout/Provider/ChatSandbox.py +2 -1
- webscout/Provider/Deepinfra.py +339 -339
- webscout/Provider/ExaChat.py +358 -358
- webscout/Provider/Gemini.py +169 -169
- webscout/Provider/GithubChat.py +1 -2
- webscout/Provider/Glider.py +3 -3
- webscout/Provider/HeckAI.py +172 -82
- webscout/Provider/LambdaChat.py +1 -0
- webscout/Provider/MCPCore.py +7 -3
- webscout/Provider/OPENAI/BLACKBOXAI.py +421 -139
- webscout/Provider/OPENAI/Cloudflare.py +38 -21
- webscout/Provider/OPENAI/FalconH1.py +457 -0
- webscout/Provider/OPENAI/FreeGemini.py +35 -18
- webscout/Provider/OPENAI/NEMOTRON.py +34 -34
- webscout/Provider/OPENAI/PI.py +427 -0
- webscout/Provider/OPENAI/Qwen3.py +304 -0
- webscout/Provider/OPENAI/README.md +952 -1253
- webscout/Provider/OPENAI/TwoAI.py +374 -0
- webscout/Provider/OPENAI/__init__.py +7 -1
- webscout/Provider/OPENAI/ai4chat.py +73 -63
- webscout/Provider/OPENAI/api.py +869 -644
- webscout/Provider/OPENAI/base.py +2 -0
- webscout/Provider/OPENAI/c4ai.py +34 -13
- webscout/Provider/OPENAI/chatgpt.py +575 -556
- webscout/Provider/OPENAI/chatgptclone.py +512 -487
- webscout/Provider/OPENAI/chatsandbox.py +11 -6
- webscout/Provider/OPENAI/copilot.py +258 -0
- webscout/Provider/OPENAI/deepinfra.py +327 -318
- webscout/Provider/OPENAI/e2b.py +140 -104
- webscout/Provider/OPENAI/exaai.py +420 -411
- webscout/Provider/OPENAI/exachat.py +448 -443
- webscout/Provider/OPENAI/flowith.py +7 -3
- webscout/Provider/OPENAI/freeaichat.py +12 -8
- webscout/Provider/OPENAI/glider.py +15 -8
- webscout/Provider/OPENAI/groq.py +5 -2
- webscout/Provider/OPENAI/heckai.py +311 -307
- webscout/Provider/OPENAI/llmchatco.py +9 -7
- webscout/Provider/OPENAI/mcpcore.py +18 -9
- webscout/Provider/OPENAI/multichat.py +7 -5
- webscout/Provider/OPENAI/netwrck.py +16 -11
- webscout/Provider/OPENAI/oivscode.py +290 -0
- webscout/Provider/OPENAI/opkfc.py +507 -496
- webscout/Provider/OPENAI/pydantic_imports.py +172 -0
- webscout/Provider/OPENAI/scirachat.py +29 -17
- webscout/Provider/OPENAI/sonus.py +308 -303
- webscout/Provider/OPENAI/standardinput.py +442 -433
- webscout/Provider/OPENAI/textpollinations.py +18 -11
- webscout/Provider/OPENAI/toolbaz.py +419 -413
- webscout/Provider/OPENAI/typefully.py +17 -10
- webscout/Provider/OPENAI/typegpt.py +21 -11
- webscout/Provider/OPENAI/uncovrAI.py +477 -462
- webscout/Provider/OPENAI/utils.py +90 -79
- webscout/Provider/OPENAI/venice.py +435 -425
- webscout/Provider/OPENAI/wisecat.py +387 -381
- webscout/Provider/OPENAI/writecream.py +166 -163
- webscout/Provider/OPENAI/x0gpt.py +26 -37
- webscout/Provider/OPENAI/yep.py +384 -356
- webscout/Provider/PI.py +2 -1
- webscout/Provider/TTI/README.md +55 -101
- webscout/Provider/TTI/__init__.py +4 -9
- webscout/Provider/TTI/aiarta.py +365 -0
- webscout/Provider/TTI/artbit.py +0 -0
- webscout/Provider/TTI/base.py +64 -0
- webscout/Provider/TTI/fastflux.py +200 -0
- webscout/Provider/TTI/magicstudio.py +201 -0
- webscout/Provider/TTI/piclumen.py +203 -0
- webscout/Provider/TTI/pixelmuse.py +225 -0
- webscout/Provider/TTI/pollinations.py +221 -0
- webscout/Provider/TTI/utils.py +11 -0
- webscout/Provider/TTS/__init__.py +2 -1
- webscout/Provider/TTS/base.py +159 -159
- webscout/Provider/TTS/openai_fm.py +129 -0
- webscout/Provider/TextPollinationsAI.py +308 -308
- webscout/Provider/TwoAI.py +239 -44
- webscout/Provider/UNFINISHED/Youchat.py +330 -330
- webscout/Provider/UNFINISHED/puterjs.py +635 -0
- webscout/Provider/UNFINISHED/test_lmarena.py +119 -119
- webscout/Provider/Writecream.py +246 -246
- webscout/Provider/__init__.py +2 -2
- webscout/Provider/ai4chat.py +33 -8
- webscout/Provider/granite.py +41 -6
- webscout/Provider/koala.py +169 -169
- webscout/Provider/oivscode.py +309 -0
- webscout/Provider/samurai.py +3 -2
- webscout/Provider/scnet.py +1 -0
- webscout/Provider/typegpt.py +3 -3
- webscout/Provider/uncovr.py +368 -368
- webscout/client.py +70 -0
- webscout/litprinter/__init__.py +58 -58
- webscout/optimizers.py +419 -419
- webscout/scout/README.md +3 -1
- webscout/scout/core/crawler.py +134 -64
- webscout/scout/core/scout.py +148 -109
- webscout/scout/element.py +106 -88
- webscout/swiftcli/Readme.md +323 -323
- webscout/swiftcli/plugins/manager.py +9 -2
- webscout/version.py +1 -1
- webscout/zeroart/__init__.py +134 -134
- webscout/zeroart/effects.py +100 -100
- webscout/zeroart/fonts.py +1238 -1238
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/METADATA +160 -35
- webscout-8.3.dist-info/RECORD +290 -0
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/WHEEL +1 -1
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/entry_points.txt +1 -0
- webscout/Litlogger/Readme.md +0 -175
- webscout/Litlogger/core/__init__.py +0 -6
- webscout/Litlogger/core/level.py +0 -23
- webscout/Litlogger/core/logger.py +0 -165
- webscout/Litlogger/handlers/__init__.py +0 -12
- webscout/Litlogger/handlers/console.py +0 -33
- webscout/Litlogger/handlers/file.py +0 -143
- webscout/Litlogger/handlers/network.py +0 -173
- webscout/Litlogger/styles/__init__.py +0 -7
- webscout/Litlogger/styles/colors.py +0 -249
- webscout/Litlogger/styles/formats.py +0 -458
- webscout/Litlogger/styles/text.py +0 -87
- webscout/Litlogger/utils/__init__.py +0 -6
- webscout/Litlogger/utils/detectors.py +0 -153
- webscout/Litlogger/utils/formatters.py +0 -200
- webscout/Provider/ChatGPTGratis.py +0 -194
- webscout/Provider/TTI/AiForce/README.md +0 -159
- webscout/Provider/TTI/AiForce/__init__.py +0 -22
- webscout/Provider/TTI/AiForce/async_aiforce.py +0 -224
- webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -245
- webscout/Provider/TTI/FreeAIPlayground/README.md +0 -99
- webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -9
- webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -181
- webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -180
- webscout/Provider/TTI/ImgSys/README.md +0 -174
- webscout/Provider/TTI/ImgSys/__init__.py +0 -23
- webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -202
- webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -195
- webscout/Provider/TTI/MagicStudio/README.md +0 -101
- webscout/Provider/TTI/MagicStudio/__init__.py +0 -2
- webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -111
- webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -109
- webscout/Provider/TTI/Nexra/README.md +0 -155
- webscout/Provider/TTI/Nexra/__init__.py +0 -22
- webscout/Provider/TTI/Nexra/async_nexra.py +0 -286
- webscout/Provider/TTI/Nexra/sync_nexra.py +0 -258
- webscout/Provider/TTI/PollinationsAI/README.md +0 -146
- webscout/Provider/TTI/PollinationsAI/__init__.py +0 -23
- webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -311
- webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -265
- webscout/Provider/TTI/aiarta/README.md +0 -134
- webscout/Provider/TTI/aiarta/__init__.py +0 -2
- webscout/Provider/TTI/aiarta/async_aiarta.py +0 -482
- webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -440
- webscout/Provider/TTI/artbit/README.md +0 -100
- webscout/Provider/TTI/artbit/__init__.py +0 -22
- webscout/Provider/TTI/artbit/async_artbit.py +0 -155
- webscout/Provider/TTI/artbit/sync_artbit.py +0 -148
- webscout/Provider/TTI/fastflux/README.md +0 -129
- webscout/Provider/TTI/fastflux/__init__.py +0 -22
- webscout/Provider/TTI/fastflux/async_fastflux.py +0 -261
- webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -252
- webscout/Provider/TTI/huggingface/README.md +0 -114
- webscout/Provider/TTI/huggingface/__init__.py +0 -22
- webscout/Provider/TTI/huggingface/async_huggingface.py +0 -199
- webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -195
- webscout/Provider/TTI/piclumen/README.md +0 -161
- webscout/Provider/TTI/piclumen/__init__.py +0 -23
- webscout/Provider/TTI/piclumen/async_piclumen.py +0 -268
- webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -233
- webscout/Provider/TTI/pixelmuse/README.md +0 -79
- webscout/Provider/TTI/pixelmuse/__init__.py +0 -4
- webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -249
- webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -182
- webscout/Provider/TTI/talkai/README.md +0 -139
- webscout/Provider/TTI/talkai/__init__.py +0 -4
- webscout/Provider/TTI/talkai/async_talkai.py +0 -229
- webscout/Provider/TTI/talkai/sync_talkai.py +0 -207
- webscout/Provider/UNFINISHED/oivscode.py +0 -351
- webscout-8.2.8.dist-info/RECORD +0 -334
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/licenses/LICENSE.md +0 -0
- {webscout-8.2.8.dist-info → webscout-8.3.dist-info}/top_level.txt +0 -0
webscout/client.py
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Unified client import for OpenAI-compatible providers and server utilities.
|
|
3
|
+
|
|
4
|
+
This module provides a unified import interface for all OpenAI-compatible providers and exposes
|
|
5
|
+
helper functions to start the OpenAI-compatible API server programmatically.
|
|
6
|
+
|
|
7
|
+
Usage:
|
|
8
|
+
from webscout.client import FreeAIChat, AI4Chat, ExaChat, MultiChatAI, TwoAI, SciraChat, ChatSandbox, C4AI, Groq, TypeGPT, LLMChat, Cleeai, DeepInfra, BlackboxAI, Cloudflare, Netwrck, OIVSCode, Venice, Writecream, Wisecat, Yep, X0GPT, Sonus, Toolbaz, TextPollinations, StandardInput, Opkfc, Flowith, ExaAI, FreeGemini, GeminiAPI, Gemini, GithubChat, GizAI, Glider, HeckAI, HuggingFaceChat, Hunyuan, Jadve, Julius, Koala, LearnFast, LearnFastAI, NEMOTRON, MCPCore, PydanticImports, TeachAnything, UncovrAI, API, Base
|
|
9
|
+
client = FreeAIChat()
|
|
10
|
+
response = client.chat.completions.create(...)
|
|
11
|
+
|
|
12
|
+
# To start the server programmatically:
|
|
13
|
+
from webscout.client import start_server
|
|
14
|
+
start_server()
|
|
15
|
+
|
|
16
|
+
# For advanced server control:
|
|
17
|
+
from webscout.client import run_api
|
|
18
|
+
run_api(host="0.0.0.0", port=8000, debug=True)
|
|
19
|
+
|
|
20
|
+
# Instantly start the API server from the command line:
|
|
21
|
+
# python -m webscout.client
|
|
22
|
+
# or, if installed as a script:
|
|
23
|
+
# webscout-api
|
|
24
|
+
|
|
25
|
+
Exports:
|
|
26
|
+
- All OpenAI-compatible provider classes
|
|
27
|
+
- start_server (function): Start the OpenAI-compatible API server with default or custom settings.
|
|
28
|
+
- run_api (function): Advanced server startup with full control over host, port, and other options.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
from webscout.Provider.OPENAI import *
|
|
32
|
+
from webscout.Provider.OPENAI.api import start_server, run_api
|
|
33
|
+
|
|
34
|
+
# ---
|
|
35
|
+
# API Documentation
|
|
36
|
+
#
|
|
37
|
+
# start_server
|
|
38
|
+
# -------------
|
|
39
|
+
# def start_server(port: int = 8000, api_key: str = None, default_provider: str = None, base_url: str = None):
|
|
40
|
+
# """
|
|
41
|
+
# Start the OpenAI-compatible API server with optional configuration.
|
|
42
|
+
#
|
|
43
|
+
# Parameters:
|
|
44
|
+
# port (int, optional): The port to run the server on. Defaults to 8000.
|
|
45
|
+
# api_key (str, optional): API key for authentication. If None, authentication is disabled.
|
|
46
|
+
# default_provider (str, optional): The default provider to use. If None, uses the package default.
|
|
47
|
+
# base_url (str, optional): Base URL prefix for the API (e.g., '/api/v1'). If None, no prefix is used.
|
|
48
|
+
#
|
|
49
|
+
# Returns:
|
|
50
|
+
# None
|
|
51
|
+
# """
|
|
52
|
+
#
|
|
53
|
+
# run_api
|
|
54
|
+
# -------
|
|
55
|
+
# def run_api(host: str = '0.0.0.0', port: int = None, api_key: str = None, default_provider: str = None, base_url: str = None, debug: bool = False, show_available_providers: bool = True):
|
|
56
|
+
# """
|
|
57
|
+
# Advanced server startup for the OpenAI-compatible API server.
|
|
58
|
+
#
|
|
59
|
+
# Parameters:
|
|
60
|
+
# host (str, optional): Host address to bind the server. Defaults to '0.0.0.0'.
|
|
61
|
+
# port (int, optional): Port to run the server on. Defaults to 8000 if not specified.
|
|
62
|
+
# api_key (str, optional): API key for authentication. If None, authentication is disabled.
|
|
63
|
+
# default_provider (str, optional): The default provider to use. If None, uses the package default.
|
|
64
|
+
# base_url (str, optional): Base URL prefix for the API (e.g., '/api/v1'). If None, no prefix is used.
|
|
65
|
+
# debug (bool, optional): Run the server in debug mode with auto-reload. Defaults to False.
|
|
66
|
+
# show_available_providers (bool, optional): Print available providers on startup. Defaults to True.
|
|
67
|
+
#
|
|
68
|
+
# Returns:
|
|
69
|
+
# None
|
|
70
|
+
# """
|
webscout/litprinter/__init__.py
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
"""
|
|
2
|
-
>>> from litprinter import litprint
|
|
3
|
-
>>> from litprinter import lit
|
|
4
|
-
>>> from litprinter import install, uninstall
|
|
5
|
-
>>>
|
|
6
|
-
>>> litprint("Hello, world!")
|
|
7
|
-
LIT -> [__main__.py:1] in () >>> Hello, world!
|
|
8
|
-
>>>
|
|
9
|
-
>>> def my_function():
|
|
10
|
-
... lit(1, 2, 3)
|
|
11
|
-
>>> my_function()
|
|
12
|
-
LIT -> [__main__.py:4] in my_function() >>> 1, 2, 3
|
|
13
|
-
>>> install()
|
|
14
|
-
>>> ic("This is now the builtins.ic()")
|
|
15
|
-
LIT -> [__main__.py:7] in () >>> This is now the builtins.ic()
|
|
16
|
-
>>> uninstall()
|
|
17
|
-
|
|
18
|
-
This module provides enhanced print and logging functionalities for Python,
|
|
19
|
-
allowing developers to debug their code with style and precision. It
|
|
20
|
-
includes the litprint and lit functions for debugging, log for logging, and
|
|
21
|
-
install/uninstall functions for integration into the builtins module.
|
|
22
|
-
It also handles colorizing output and provides different styles and customizable
|
|
23
|
-
options.
|
|
24
|
-
|
|
25
|
-
LITPRINTER is inspired by the icecream package and provides similar functionality
|
|
26
|
-
with additional features:
|
|
27
|
-
- Variable inspection with expression display
|
|
28
|
-
- Return value handling for inline usage
|
|
29
|
-
- Support for custom formatters for specific data types
|
|
30
|
-
- Execution context tracking
|
|
31
|
-
- Rich-like colorized output with multiple themes (JARVIS, RICH, MODERN, NEON, CYBERPUNK)
|
|
32
|
-
- Better JSON formatting with indent=2 by default
|
|
33
|
-
- Advanced pretty printing for complex data structures with smart truncation
|
|
34
|
-
- Clickable file paths in supported terminals and editors (VSCode compatible)
|
|
35
|
-
- Enhanced visual formatting with better spacing and separators
|
|
36
|
-
- Special formatters for common types (Exception, bytes, set, frozenset, etc.)
|
|
37
|
-
- Smart object introspection for custom classes
|
|
38
|
-
- Logging capabilities with timestamp and log levels
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
# Try to import from the standalone litprinter package first
|
|
42
|
-
# If it's not installed
|
|
43
|
-
try:
|
|
44
|
-
import litprinter
|
|
45
|
-
# If standalone package is found, re-export all its components
|
|
46
|
-
from litprinter import litprint, lit, log, ic, install, uninstall
|
|
47
|
-
from litprinter import LITPrintDebugger, argumentToString
|
|
48
|
-
from litprinter import JARVIS, RICH, MODERN, NEON, CYBERPUNK, create_custom_style
|
|
49
|
-
from litprinter import traceback
|
|
50
|
-
# For compatibility with icecream
|
|
51
|
-
enable = litprinter.enable
|
|
52
|
-
disable = litprinter.disable
|
|
53
|
-
|
|
54
|
-
except ImportError:
|
|
55
|
-
# Raise a more informative error when litprinter is not installed
|
|
56
|
-
raise ImportError(
|
|
57
|
-
"The 'litprinter' package is required but not installed. "
|
|
58
|
-
"Please install it using: pip install litprinter"
|
|
1
|
+
"""
|
|
2
|
+
>>> from litprinter import litprint
|
|
3
|
+
>>> from litprinter import lit
|
|
4
|
+
>>> from litprinter import install, uninstall
|
|
5
|
+
>>>
|
|
6
|
+
>>> litprint("Hello, world!")
|
|
7
|
+
LIT -> [__main__.py:1] in () >>> Hello, world!
|
|
8
|
+
>>>
|
|
9
|
+
>>> def my_function():
|
|
10
|
+
... lit(1, 2, 3)
|
|
11
|
+
>>> my_function()
|
|
12
|
+
LIT -> [__main__.py:4] in my_function() >>> 1, 2, 3
|
|
13
|
+
>>> install()
|
|
14
|
+
>>> ic("This is now the builtins.ic()")
|
|
15
|
+
LIT -> [__main__.py:7] in () >>> This is now the builtins.ic()
|
|
16
|
+
>>> uninstall()
|
|
17
|
+
|
|
18
|
+
This module provides enhanced print and logging functionalities for Python,
|
|
19
|
+
allowing developers to debug their code with style and precision. It
|
|
20
|
+
includes the litprint and lit functions for debugging, log for logging, and
|
|
21
|
+
install/uninstall functions for integration into the builtins module.
|
|
22
|
+
It also handles colorizing output and provides different styles and customizable
|
|
23
|
+
options.
|
|
24
|
+
|
|
25
|
+
LITPRINTER is inspired by the icecream package and provides similar functionality
|
|
26
|
+
with additional features:
|
|
27
|
+
- Variable inspection with expression display
|
|
28
|
+
- Return value handling for inline usage
|
|
29
|
+
- Support for custom formatters for specific data types
|
|
30
|
+
- Execution context tracking
|
|
31
|
+
- Rich-like colorized output with multiple themes (JARVIS, RICH, MODERN, NEON, CYBERPUNK)
|
|
32
|
+
- Better JSON formatting with indent=2 by default
|
|
33
|
+
- Advanced pretty printing for complex data structures with smart truncation
|
|
34
|
+
- Clickable file paths in supported terminals and editors (VSCode compatible)
|
|
35
|
+
- Enhanced visual formatting with better spacing and separators
|
|
36
|
+
- Special formatters for common types (Exception, bytes, set, frozenset, etc.)
|
|
37
|
+
- Smart object introspection for custom classes
|
|
38
|
+
- Logging capabilities with timestamp and log levels
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
# Try to import from the standalone litprinter package first
|
|
42
|
+
# If it's not installed
|
|
43
|
+
try:
|
|
44
|
+
import litprinter
|
|
45
|
+
# If standalone package is found, re-export all its components
|
|
46
|
+
from litprinter import litprint, lit, log, ic, install, uninstall
|
|
47
|
+
from litprinter import LITPrintDebugger, argumentToString
|
|
48
|
+
from litprinter import JARVIS, RICH, MODERN, NEON, CYBERPUNK, create_custom_style
|
|
49
|
+
from litprinter import traceback
|
|
50
|
+
# For compatibility with icecream
|
|
51
|
+
enable = litprinter.enable
|
|
52
|
+
disable = litprinter.disable
|
|
53
|
+
|
|
54
|
+
except ImportError:
|
|
55
|
+
# Raise a more informative error when litprinter is not installed
|
|
56
|
+
raise ImportError(
|
|
57
|
+
"The 'litprinter' package is required but not installed. "
|
|
58
|
+
"Please install it using: pip install litprinter"
|
|
59
59
|
) from None
|