webscout 7.7__py3-none-any.whl → 7.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (134) hide show
  1. webscout/AIutel.py +2 -1
  2. webscout/Bard.py +12 -29
  3. webscout/DWEBS.py +477 -461
  4. webscout/Extra/__init__.py +2 -0
  5. webscout/Extra/autocoder/__init__.py +9 -9
  6. webscout/Extra/autocoder/{rawdog.py → autocoder.py} +849 -790
  7. webscout/Extra/autocoder/autocoder_utiles.py +332 -194
  8. webscout/Extra/gguf.py +682 -682
  9. webscout/Extra/tempmail/__init__.py +26 -0
  10. webscout/Extra/tempmail/async_utils.py +141 -0
  11. webscout/Extra/tempmail/base.py +156 -0
  12. webscout/Extra/tempmail/cli.py +187 -0
  13. webscout/Extra/tempmail/mail_tm.py +361 -0
  14. webscout/Extra/tempmail/temp_mail_io.py +292 -0
  15. webscout/Provider/AI21.py +1 -1
  16. webscout/Provider/AISEARCH/DeepFind.py +2 -2
  17. webscout/Provider/AISEARCH/ISou.py +2 -2
  18. webscout/Provider/AISEARCH/felo_search.py +6 -6
  19. webscout/Provider/AISEARCH/genspark_search.py +1 -1
  20. webscout/Provider/Aitopia.py +292 -0
  21. webscout/Provider/AllenAI.py +1 -1
  22. webscout/Provider/Andi.py +3 -3
  23. webscout/Provider/C4ai.py +1 -1
  24. webscout/Provider/ChatGPTES.py +3 -5
  25. webscout/Provider/ChatGPTGratis.py +4 -4
  26. webscout/Provider/Chatify.py +2 -2
  27. webscout/Provider/Cloudflare.py +3 -2
  28. webscout/Provider/DeepSeek.py +2 -2
  29. webscout/Provider/Deepinfra.py +288 -286
  30. webscout/Provider/ElectronHub.py +709 -634
  31. webscout/Provider/ExaChat.py +325 -0
  32. webscout/Provider/Free2GPT.py +2 -2
  33. webscout/Provider/Gemini.py +167 -179
  34. webscout/Provider/GithubChat.py +1 -1
  35. webscout/Provider/Glider.py +4 -4
  36. webscout/Provider/Groq.py +41 -27
  37. webscout/Provider/HF_space/qwen_qwen2.py +1 -1
  38. webscout/Provider/HeckAI.py +1 -1
  39. webscout/Provider/HuggingFaceChat.py +1 -1
  40. webscout/Provider/Hunyuan.py +1 -1
  41. webscout/Provider/Jadve.py +3 -3
  42. webscout/Provider/Koboldai.py +3 -3
  43. webscout/Provider/LambdaChat.py +3 -2
  44. webscout/Provider/Llama.py +3 -5
  45. webscout/Provider/Llama3.py +4 -12
  46. webscout/Provider/Marcus.py +3 -3
  47. webscout/Provider/OLLAMA.py +8 -8
  48. webscout/Provider/Openai.py +7 -3
  49. webscout/Provider/PI.py +1 -1
  50. webscout/Provider/Perplexitylabs.py +1 -1
  51. webscout/Provider/Phind.py +1 -1
  52. webscout/Provider/PizzaGPT.py +1 -1
  53. webscout/Provider/QwenLM.py +4 -7
  54. webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +3 -1
  55. webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +3 -3
  56. webscout/Provider/TTI/ImgSys/__init__.py +23 -0
  57. webscout/Provider/TTI/ImgSys/async_imgsys.py +202 -0
  58. webscout/Provider/TTI/ImgSys/sync_imgsys.py +195 -0
  59. webscout/Provider/TTI/__init__.py +3 -1
  60. webscout/Provider/TTI/artbit/async_artbit.py +1 -1
  61. webscout/Provider/TTI/artbit/sync_artbit.py +1 -1
  62. webscout/Provider/TTI/huggingface/async_huggingface.py +1 -1
  63. webscout/Provider/TTI/huggingface/sync_huggingface.py +1 -1
  64. webscout/Provider/TTI/piclumen/__init__.py +22 -22
  65. webscout/Provider/TTI/piclumen/sync_piclumen.py +232 -232
  66. webscout/Provider/TTI/pixelmuse/__init__.py +4 -0
  67. webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +249 -0
  68. webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +182 -0
  69. webscout/Provider/TTI/talkai/sync_talkai.py +1 -1
  70. webscout/Provider/TTS/utils.py +1 -1
  71. webscout/Provider/TeachAnything.py +1 -1
  72. webscout/Provider/TextPollinationsAI.py +232 -230
  73. webscout/Provider/TwoAI.py +1 -2
  74. webscout/Provider/Venice.py +4 -2
  75. webscout/Provider/VercelAI.py +234 -0
  76. webscout/Provider/WebSim.py +3 -2
  77. webscout/Provider/WiseCat.py +10 -12
  78. webscout/Provider/Youchat.py +1 -1
  79. webscout/Provider/__init__.py +10 -4
  80. webscout/Provider/ai4chat.py +1 -1
  81. webscout/Provider/aimathgpt.py +2 -6
  82. webscout/Provider/akashgpt.py +1 -1
  83. webscout/Provider/askmyai.py +4 -4
  84. webscout/Provider/{DARKAI.py → asksteve.py} +56 -77
  85. webscout/Provider/bagoodex.py +2 -2
  86. webscout/Provider/cerebras.py +1 -1
  87. webscout/Provider/chatglm.py +4 -4
  88. webscout/Provider/cleeai.py +1 -0
  89. webscout/Provider/copilot.py +21 -9
  90. webscout/Provider/elmo.py +1 -1
  91. webscout/Provider/flowith.py +1 -1
  92. webscout/Provider/freeaichat.py +64 -31
  93. webscout/Provider/gaurish.py +3 -5
  94. webscout/Provider/geminiprorealtime.py +1 -1
  95. webscout/Provider/granite.py +4 -4
  96. webscout/Provider/hermes.py +5 -5
  97. webscout/Provider/julius.py +1 -1
  98. webscout/Provider/koala.py +1 -1
  99. webscout/Provider/lepton.py +1 -1
  100. webscout/Provider/llama3mitril.py +4 -4
  101. webscout/Provider/llamatutor.py +1 -1
  102. webscout/Provider/llmchat.py +3 -3
  103. webscout/Provider/meta.py +1 -1
  104. webscout/Provider/multichat.py +10 -10
  105. webscout/Provider/promptrefine.py +1 -1
  106. webscout/Provider/searchchat.py +293 -0
  107. webscout/Provider/sonus.py +2 -2
  108. webscout/Provider/talkai.py +2 -2
  109. webscout/Provider/turboseek.py +1 -1
  110. webscout/Provider/tutorai.py +1 -1
  111. webscout/Provider/typegpt.py +5 -42
  112. webscout/Provider/uncovr.py +312 -297
  113. webscout/Provider/x0gpt.py +1 -1
  114. webscout/Provider/yep.py +64 -12
  115. webscout/__init__.py +3 -1
  116. webscout/cli.py +59 -98
  117. webscout/conversation.py +350 -17
  118. webscout/litprinter/__init__.py +59 -667
  119. webscout/optimizers.py +419 -419
  120. webscout/tempid.py +11 -11
  121. webscout/update_checker.py +14 -12
  122. webscout/utils.py +2 -2
  123. webscout/version.py +1 -1
  124. webscout/webscout_search.py +146 -87
  125. webscout/webscout_search_async.py +148 -27
  126. {webscout-7.7.dist-info → webscout-7.9.dist-info}/METADATA +92 -66
  127. webscout-7.9.dist-info/RECORD +248 -0
  128. webscout/Provider/EDITEE.py +0 -192
  129. webscout/litprinter/colors.py +0 -54
  130. webscout-7.7.dist-info/RECORD +0 -234
  131. {webscout-7.7.dist-info → webscout-7.9.dist-info}/LICENSE.md +0 -0
  132. {webscout-7.7.dist-info → webscout-7.9.dist-info}/WHEEL +0 -0
  133. {webscout-7.7.dist-info → webscout-7.9.dist-info}/entry_points.txt +0 -0
  134. {webscout-7.7.dist-info → webscout-7.9.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,195 @@
1
+ """ImgSys Synchronous Provider - Generate images from multiple providers! 🔥
2
+
3
+ Examples:
4
+ >>> from webscout import ImgSys
5
+ >>> provider = ImgSys()
6
+ >>>
7
+ >>> # Generate images
8
+ >>> images = provider.generate("A cool cyberpunk city at night")
9
+ >>> provider.save(images, dir="my_images")
10
+ """
11
+
12
+ import requests
13
+ import os
14
+ import time
15
+ from typing import List, Optional, Union
16
+ from requests.exceptions import RequestException
17
+ from pathlib import Path
18
+
19
+ from webscout.AIbase import ImageProvider
20
+ from webscout.litagent import LitAgent
21
+
22
+ # Get a fresh user agent! 🔄
23
+ agent = LitAgent()
24
+
25
+ class ImgSys(ImageProvider):
26
+ """Your homie for generating fire images using imgsys.org! 🎨
27
+
28
+ This provider generates images from multiple providers, with built-in retry logic
29
+ and error handling to make sure you get your images no cap! 💯
30
+
31
+ Examples:
32
+ >>> provider = ImgSys()
33
+ >>> # Generate images
34
+ >>> images = provider.generate("A futuristic city")
35
+ >>> provider.save(images, "city.jpg")
36
+ """
37
+
38
+ def __init__(
39
+ self,
40
+ timeout: int = 60,
41
+ proxies: Optional[dict] = None
42
+ ):
43
+ """Initialize your ImgSys provider with custom settings
44
+
45
+ Examples:
46
+ >>> provider = ImgSys(timeout=30)
47
+ >>> provider = ImgSys(proxies={"http": "http://proxy:8080"})
48
+
49
+ Args:
50
+ timeout (int): HTTP request timeout in seconds (default: 60)
51
+ proxies (dict, optional): Proxy configuration for requests
52
+ """
53
+ self.request_id_endpoint = "https://imgsys.org/api/initiate"
54
+ self.image_response_endpoint = "https://imgsys.org/api/get"
55
+ self.image_provider_endpoint = "https://imgsys.org/api/submit"
56
+
57
+ self.headers = {
58
+ "Accept": "application/json",
59
+ "Content-Type": "application/json",
60
+ "User-Agent": agent.random(),
61
+ }
62
+ self.session = requests.Session()
63
+ self.session.headers.update(self.headers)
64
+ if proxies:
65
+ self.session.proxies.update(proxies)
66
+
67
+ self.timeout = timeout
68
+ self.prompt: str = "AI-generated image - webscout"
69
+ self.image_extension: str = "jpeg"
70
+
71
+ def generate(
72
+ self,
73
+ prompt: str,
74
+ max_retries: int = 3,
75
+ retry_delay: int = 5,
76
+ ) -> List[bytes]:
77
+ """Generate some fire images from your prompt! 🎨
78
+
79
+ Args:
80
+ prompt (str): Your image description
81
+ max_retries (int): Max retry attempts if something fails (default: 3)
82
+ retry_delay (int): Seconds to wait between retries (default: 5)
83
+
84
+ Returns:
85
+ List[bytes]: Your generated images as bytes
86
+
87
+ Raises:
88
+ ValueError: If the inputs ain't valid
89
+ RequestException: If the API calls fail after retries
90
+ """
91
+ # Input validation
92
+ if not prompt:
93
+ raise ValueError("Yo fam, the prompt can't be empty! 🤔")
94
+
95
+ self.prompt = prompt
96
+ response = []
97
+
98
+ # Get request ID
99
+ data = {"prompt": prompt}
100
+ resp = self.session.post(self.request_id_endpoint, json=data, timeout=self.timeout)
101
+ resp.raise_for_status()
102
+ request_id = resp.json()["requestId"]
103
+
104
+ # Poll for results
105
+ for attempt in range(max_retries):
106
+ try:
107
+ # Get image URLs
108
+ resp = self.session.get(
109
+ f"{self.image_response_endpoint}?requestId={request_id}",
110
+ timeout=self.timeout
111
+ )
112
+ resp.raise_for_status()
113
+ image_data = resp.json()
114
+
115
+ if "results" in image_data and len(image_data["results"]) >= 2:
116
+ # Get provider names
117
+ provider_resp = self.session.post(
118
+ self.image_provider_endpoint,
119
+ json={"requestId": request_id, "preference": 0},
120
+ timeout=self.timeout
121
+ )
122
+ provider_resp.raise_for_status()
123
+ provider_data = provider_resp.json()
124
+
125
+ # Download images
126
+ for i, url in enumerate(image_data["results"][:2]):
127
+ img_resp = self.session.get(url, timeout=self.timeout)
128
+ img_resp.raise_for_status()
129
+ response.append(img_resp.content)
130
+
131
+ break
132
+ else:
133
+ if attempt == max_retries - 1:
134
+ raise RequestException("Failed to get image results after max retries")
135
+ time.sleep(retry_delay)
136
+
137
+ except RequestException as e:
138
+ if attempt == max_retries - 1:
139
+ raise
140
+ time.sleep(retry_delay)
141
+
142
+ return response
143
+
144
+ def save(
145
+ self,
146
+ response: List[bytes],
147
+ name: Optional[str] = None,
148
+ dir: Optional[Union[str, Path]] = None,
149
+ filenames_prefix: str = "",
150
+ ) -> List[str]:
151
+ """Save your fire generated images! 💾
152
+
153
+ Examples:
154
+ >>> provider = ImgSys()
155
+ >>> images = provider.generate("Cool art")
156
+ >>> # Save with default settings
157
+ >>> paths = provider.save(images)
158
+ >>> # Save with custom name and directory
159
+ >>> paths = provider.save(
160
+ ... images,
161
+ ... name="my_art",
162
+ ... dir="my_images",
163
+ ... filenames_prefix="test_"
164
+ ... )
165
+
166
+ Args:
167
+ response (List[bytes]): Your generated images
168
+ name (Optional[str]): Custom name for your images
169
+ dir (Optional[Union[str, Path]]): Where to save the images (default: current directory)
170
+ filenames_prefix (str): Prefix for your image files
171
+
172
+ Returns:
173
+ List[str]: Paths to your saved images
174
+ """
175
+ save_dir = dir if dir else os.getcwd()
176
+ if not os.path.exists(save_dir):
177
+ os.makedirs(save_dir)
178
+
179
+ saved_paths = []
180
+ timestamp = int(time.time())
181
+
182
+ for i, image_bytes in enumerate(response):
183
+ if name:
184
+ filename = f"{filenames_prefix}{name}_{i}.{self.image_extension}"
185
+ else:
186
+ filename = f"{filenames_prefix}imgsys_{timestamp}_{i}.{self.image_extension}"
187
+
188
+ filepath = os.path.join(save_dir, filename)
189
+
190
+ with open(filepath, "wb") as f:
191
+ f.write(image_bytes)
192
+
193
+ saved_paths.append(filepath)
194
+
195
+ return saved_paths
@@ -7,4 +7,6 @@ from .artbit import *
7
7
  from .talkai import *
8
8
  from .piclumen import *
9
9
  from .MagicStudio import *
10
- from .fastflux import *
10
+ from .fastflux import *
11
+ from .pixelmuse import *
12
+ from .ImgSys import *
@@ -31,7 +31,7 @@ import aiohttp
31
31
  import aiofiles
32
32
  import asyncio
33
33
  import os
34
- from typing import List
34
+ from typing import Union, List
35
35
  from webscout.AIbase import AsyncImageProvider
36
36
  from webscout.litagent import LitAgent
37
37
 
@@ -25,7 +25,7 @@ Examples:
25
25
  import cloudscraper
26
26
  import os
27
27
  import requests
28
- from typing import List
28
+ from typing import Union, List
29
29
  from webscout.AIbase import ImageProvider
30
30
  from webscout.litagent import LitAgent
31
31
 
@@ -34,7 +34,7 @@ import os
34
34
  import aiohttp
35
35
  import aiofiles
36
36
  import asyncio
37
- from typing import Any, List, Optional, Dict
37
+ from typing import Union, Any, List, Optional, Dict
38
38
  from webscout.AIbase import AsyncImageProvider
39
39
  from webscout.Litlogger import Logger, LogFormat
40
40
  from webscout.litagent import LitAgent
@@ -29,7 +29,7 @@ import os
29
29
  import requests
30
30
  import io
31
31
  from PIL import Image
32
- from typing import Any, List, Optional, Dict
32
+ from typing import Union, Any, List, Optional, Dict
33
33
  from webscout.AIbase import ImageProvider
34
34
  from webscout.Litlogger import Logger, LogFormat
35
35
  from webscout.litagent import LitAgent
@@ -1,23 +1,23 @@
1
- """PiclumenImager Provider Package - Your go-to for high-quality AI art! 🎨
2
-
3
- Examples:
4
- >>> # Synchronous usage
5
- >>> from webscout import PiclumenImager
6
- >>> provider = PiclumenImager()
7
- >>> images = provider.generate("A cool underwater creature")
8
- >>> provider.save(images, dir="my_images")
9
- >>>
10
- >>> # Asynchronous usage
11
- >>> import asyncio
12
- >>> from webscout import AsyncPiclumenImager
13
- >>> async def main():
14
- ... provider = AsyncPiclumenImager()
15
- ... images = await provider.generate("A cool cyberpunk city")
16
- ... await provider.save(images, dir="my_images")
17
- >>> asyncio.run(main())
18
- """
19
-
20
- from .sync_piclumen import PiclumenImager
21
- from .async_piclumen import AsyncPiclumenImager
22
-
1
+ """PiclumenImager Provider Package - Your go-to for high-quality AI art! 🎨
2
+
3
+ Examples:
4
+ >>> # Synchronous usage
5
+ >>> from webscout import PiclumenImager
6
+ >>> provider = PiclumenImager()
7
+ >>> images = provider.generate("A cool underwater creature")
8
+ >>> provider.save(images, dir="my_images")
9
+ >>>
10
+ >>> # Asynchronous usage
11
+ >>> import asyncio
12
+ >>> from webscout import AsyncPiclumenImager
13
+ >>> async def main():
14
+ ... provider = AsyncPiclumenImager()
15
+ ... images = await provider.generate("A cool cyberpunk city")
16
+ ... await provider.save(images, dir="my_images")
17
+ >>> asyncio.run(main())
18
+ """
19
+
20
+ from .sync_piclumen import PiclumenImager
21
+ from .async_piclumen import AsyncPiclumenImager
22
+
23
23
  __all__ = ["PiclumenImager", "AsyncPiclumenImager"]