webscout 8.2.6__py3-none-any.whl → 8.2.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.

Files changed (292) hide show
  1. webscout/AIutel.py +97 -87
  2. webscout/version.py +1 -1
  3. {webscout-8.2.6.dist-info → webscout-8.2.7.dist-info}/METADATA +2 -15
  4. webscout-8.2.7.dist-info/RECORD +26 -0
  5. {webscout-8.2.6.dist-info → webscout-8.2.7.dist-info}/WHEEL +1 -1
  6. webscout-8.2.7.dist-info/entry_points.txt +3 -0
  7. webscout-8.2.7.dist-info/top_level.txt +1 -0
  8. webscout/Extra/GitToolkit/__init__.py +0 -10
  9. webscout/Extra/GitToolkit/gitapi/__init__.py +0 -12
  10. webscout/Extra/GitToolkit/gitapi/repository.py +0 -195
  11. webscout/Extra/GitToolkit/gitapi/user.py +0 -96
  12. webscout/Extra/GitToolkit/gitapi/utils.py +0 -62
  13. webscout/Extra/YTToolkit/YTdownloader.py +0 -957
  14. webscout/Extra/YTToolkit/__init__.py +0 -3
  15. webscout/Extra/YTToolkit/transcriber.py +0 -476
  16. webscout/Extra/YTToolkit/ytapi/__init__.py +0 -6
  17. webscout/Extra/YTToolkit/ytapi/channel.py +0 -307
  18. webscout/Extra/YTToolkit/ytapi/errors.py +0 -13
  19. webscout/Extra/YTToolkit/ytapi/extras.py +0 -45
  20. webscout/Extra/YTToolkit/ytapi/https.py +0 -88
  21. webscout/Extra/YTToolkit/ytapi/patterns.py +0 -61
  22. webscout/Extra/YTToolkit/ytapi/playlist.py +0 -59
  23. webscout/Extra/YTToolkit/ytapi/pool.py +0 -8
  24. webscout/Extra/YTToolkit/ytapi/query.py +0 -40
  25. webscout/Extra/YTToolkit/ytapi/stream.py +0 -63
  26. webscout/Extra/YTToolkit/ytapi/utils.py +0 -62
  27. webscout/Extra/YTToolkit/ytapi/video.py +0 -232
  28. webscout/Extra/__init__.py +0 -7
  29. webscout/Extra/autocoder/__init__.py +0 -9
  30. webscout/Extra/autocoder/autocoder.py +0 -910
  31. webscout/Extra/autocoder/autocoder_utiles.py +0 -332
  32. webscout/Extra/gguf.py +0 -684
  33. webscout/Extra/tempmail/__init__.py +0 -28
  34. webscout/Extra/tempmail/async_utils.py +0 -141
  35. webscout/Extra/tempmail/base.py +0 -161
  36. webscout/Extra/tempmail/cli.py +0 -187
  37. webscout/Extra/tempmail/emailnator.py +0 -84
  38. webscout/Extra/tempmail/mail_tm.py +0 -361
  39. webscout/Extra/tempmail/temp_mail_io.py +0 -292
  40. webscout/Extra/weather.py +0 -194
  41. webscout/Extra/weather_ascii.py +0 -76
  42. webscout/Litlogger/__init__.py +0 -67
  43. webscout/Litlogger/core/__init__.py +0 -6
  44. webscout/Litlogger/core/level.py +0 -23
  45. webscout/Litlogger/core/logger.py +0 -165
  46. webscout/Litlogger/handlers/__init__.py +0 -12
  47. webscout/Litlogger/handlers/console.py +0 -33
  48. webscout/Litlogger/handlers/file.py +0 -143
  49. webscout/Litlogger/handlers/network.py +0 -173
  50. webscout/Litlogger/styles/__init__.py +0 -7
  51. webscout/Litlogger/styles/colors.py +0 -249
  52. webscout/Litlogger/styles/formats.py +0 -458
  53. webscout/Litlogger/styles/text.py +0 -87
  54. webscout/Litlogger/utils/__init__.py +0 -6
  55. webscout/Litlogger/utils/detectors.py +0 -153
  56. webscout/Litlogger/utils/formatters.py +0 -200
  57. webscout/Provider/AI21.py +0 -177
  58. webscout/Provider/AISEARCH/DeepFind.py +0 -250
  59. webscout/Provider/AISEARCH/ISou.py +0 -256
  60. webscout/Provider/AISEARCH/Perplexity.py +0 -359
  61. webscout/Provider/AISEARCH/__init__.py +0 -10
  62. webscout/Provider/AISEARCH/felo_search.py +0 -228
  63. webscout/Provider/AISEARCH/genspark_search.py +0 -208
  64. webscout/Provider/AISEARCH/hika_search.py +0 -198
  65. webscout/Provider/AISEARCH/iask_search.py +0 -436
  66. webscout/Provider/AISEARCH/monica_search.py +0 -246
  67. webscout/Provider/AISEARCH/scira_search.py +0 -322
  68. webscout/Provider/AISEARCH/webpilotai_search.py +0 -281
  69. webscout/Provider/Aitopia.py +0 -316
  70. webscout/Provider/AllenAI.py +0 -447
  71. webscout/Provider/Andi.py +0 -228
  72. webscout/Provider/Blackboxai.py +0 -229
  73. webscout/Provider/ChatGPTClone.py +0 -237
  74. webscout/Provider/ChatGPTGratis.py +0 -194
  75. webscout/Provider/ChatSandbox.py +0 -342
  76. webscout/Provider/Cloudflare.py +0 -325
  77. webscout/Provider/Cohere.py +0 -208
  78. webscout/Provider/Deepinfra.py +0 -338
  79. webscout/Provider/ElectronHub.py +0 -773
  80. webscout/Provider/ExaAI.py +0 -261
  81. webscout/Provider/ExaChat.py +0 -358
  82. webscout/Provider/Free2GPT.py +0 -241
  83. webscout/Provider/GPTWeb.py +0 -249
  84. webscout/Provider/Gemini.py +0 -169
  85. webscout/Provider/GithubChat.py +0 -370
  86. webscout/Provider/GizAI.py +0 -285
  87. webscout/Provider/Glider.py +0 -222
  88. webscout/Provider/Groq.py +0 -801
  89. webscout/Provider/HF_space/__init__.py +0 -0
  90. webscout/Provider/HF_space/qwen_qwen2.py +0 -206
  91. webscout/Provider/HeckAI.py +0 -257
  92. webscout/Provider/HuggingFaceChat.py +0 -469
  93. webscout/Provider/Hunyuan.py +0 -283
  94. webscout/Provider/Jadve.py +0 -291
  95. webscout/Provider/Koboldai.py +0 -381
  96. webscout/Provider/LambdaChat.py +0 -411
  97. webscout/Provider/Llama3.py +0 -259
  98. webscout/Provider/MCPCore.py +0 -315
  99. webscout/Provider/Marcus.py +0 -206
  100. webscout/Provider/Nemotron.py +0 -218
  101. webscout/Provider/Netwrck.py +0 -270
  102. webscout/Provider/OLLAMA.py +0 -396
  103. webscout/Provider/OPENAI/__init__.py +0 -28
  104. webscout/Provider/OPENAI/ai4chat.py +0 -286
  105. webscout/Provider/OPENAI/base.py +0 -46
  106. webscout/Provider/OPENAI/c4ai.py +0 -367
  107. webscout/Provider/OPENAI/chatgpt.py +0 -549
  108. webscout/Provider/OPENAI/chatgptclone.py +0 -481
  109. webscout/Provider/OPENAI/deepinfra.py +0 -309
  110. webscout/Provider/OPENAI/e2b.py +0 -1350
  111. webscout/Provider/OPENAI/exaai.py +0 -404
  112. webscout/Provider/OPENAI/exachat.py +0 -437
  113. webscout/Provider/OPENAI/freeaichat.py +0 -352
  114. webscout/Provider/OPENAI/glider.py +0 -316
  115. webscout/Provider/OPENAI/groq.py +0 -354
  116. webscout/Provider/OPENAI/heckai.py +0 -341
  117. webscout/Provider/OPENAI/llmchatco.py +0 -327
  118. webscout/Provider/OPENAI/mcpcore.py +0 -376
  119. webscout/Provider/OPENAI/multichat.py +0 -368
  120. webscout/Provider/OPENAI/netwrck.py +0 -350
  121. webscout/Provider/OPENAI/opkfc.py +0 -488
  122. webscout/Provider/OPENAI/scirachat.py +0 -462
  123. webscout/Provider/OPENAI/sonus.py +0 -294
  124. webscout/Provider/OPENAI/standardinput.py +0 -425
  125. webscout/Provider/OPENAI/textpollinations.py +0 -329
  126. webscout/Provider/OPENAI/toolbaz.py +0 -406
  127. webscout/Provider/OPENAI/typegpt.py +0 -346
  128. webscout/Provider/OPENAI/uncovrAI.py +0 -455
  129. webscout/Provider/OPENAI/utils.py +0 -211
  130. webscout/Provider/OPENAI/venice.py +0 -413
  131. webscout/Provider/OPENAI/wisecat.py +0 -381
  132. webscout/Provider/OPENAI/writecream.py +0 -156
  133. webscout/Provider/OPENAI/x0gpt.py +0 -371
  134. webscout/Provider/OPENAI/yep.py +0 -327
  135. webscout/Provider/OpenGPT.py +0 -209
  136. webscout/Provider/Openai.py +0 -496
  137. webscout/Provider/PI.py +0 -429
  138. webscout/Provider/Perplexitylabs.py +0 -415
  139. webscout/Provider/QwenLM.py +0 -254
  140. webscout/Provider/Reka.py +0 -214
  141. webscout/Provider/StandardInput.py +0 -290
  142. webscout/Provider/TTI/AiForce/__init__.py +0 -22
  143. webscout/Provider/TTI/AiForce/async_aiforce.py +0 -224
  144. webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -245
  145. webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -9
  146. webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -181
  147. webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -180
  148. webscout/Provider/TTI/ImgSys/__init__.py +0 -23
  149. webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -202
  150. webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -195
  151. webscout/Provider/TTI/MagicStudio/__init__.py +0 -2
  152. webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -111
  153. webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -109
  154. webscout/Provider/TTI/Nexra/__init__.py +0 -22
  155. webscout/Provider/TTI/Nexra/async_nexra.py +0 -286
  156. webscout/Provider/TTI/Nexra/sync_nexra.py +0 -258
  157. webscout/Provider/TTI/PollinationsAI/__init__.py +0 -23
  158. webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -311
  159. webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -265
  160. webscout/Provider/TTI/__init__.py +0 -12
  161. webscout/Provider/TTI/aiarta/__init__.py +0 -2
  162. webscout/Provider/TTI/aiarta/async_aiarta.py +0 -482
  163. webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -440
  164. webscout/Provider/TTI/artbit/__init__.py +0 -22
  165. webscout/Provider/TTI/artbit/async_artbit.py +0 -155
  166. webscout/Provider/TTI/artbit/sync_artbit.py +0 -148
  167. webscout/Provider/TTI/fastflux/__init__.py +0 -22
  168. webscout/Provider/TTI/fastflux/async_fastflux.py +0 -261
  169. webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -252
  170. webscout/Provider/TTI/huggingface/__init__.py +0 -22
  171. webscout/Provider/TTI/huggingface/async_huggingface.py +0 -199
  172. webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -195
  173. webscout/Provider/TTI/piclumen/__init__.py +0 -23
  174. webscout/Provider/TTI/piclumen/async_piclumen.py +0 -268
  175. webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -233
  176. webscout/Provider/TTI/pixelmuse/__init__.py +0 -4
  177. webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -249
  178. webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -182
  179. webscout/Provider/TTI/talkai/__init__.py +0 -4
  180. webscout/Provider/TTI/talkai/async_talkai.py +0 -229
  181. webscout/Provider/TTI/talkai/sync_talkai.py +0 -207
  182. webscout/Provider/TTS/__init__.py +0 -8
  183. webscout/Provider/TTS/base.py +0 -159
  184. webscout/Provider/TTS/deepgram.py +0 -156
  185. webscout/Provider/TTS/elevenlabs.py +0 -111
  186. webscout/Provider/TTS/gesserit.py +0 -128
  187. webscout/Provider/TTS/murfai.py +0 -113
  188. webscout/Provider/TTS/parler.py +0 -111
  189. webscout/Provider/TTS/speechma.py +0 -180
  190. webscout/Provider/TTS/streamElements.py +0 -333
  191. webscout/Provider/TTS/utils.py +0 -280
  192. webscout/Provider/TeachAnything.py +0 -233
  193. webscout/Provider/TextPollinationsAI.py +0 -306
  194. webscout/Provider/TwoAI.py +0 -280
  195. webscout/Provider/TypliAI.py +0 -305
  196. webscout/Provider/Venice.py +0 -258
  197. webscout/Provider/VercelAI.py +0 -253
  198. webscout/Provider/WiseCat.py +0 -233
  199. webscout/Provider/WrDoChat.py +0 -370
  200. webscout/Provider/Writecream.py +0 -237
  201. webscout/Provider/WritingMate.py +0 -269
  202. webscout/Provider/Youchat.py +0 -330
  203. webscout/Provider/__init__.py +0 -178
  204. webscout/Provider/ai4chat.py +0 -203
  205. webscout/Provider/aimathgpt.py +0 -189
  206. webscout/Provider/akashgpt.py +0 -335
  207. webscout/Provider/asksteve.py +0 -212
  208. webscout/Provider/bagoodex.py +0 -145
  209. webscout/Provider/cerebras.py +0 -288
  210. webscout/Provider/chatglm.py +0 -215
  211. webscout/Provider/cleeai.py +0 -213
  212. webscout/Provider/copilot.py +0 -425
  213. webscout/Provider/elmo.py +0 -283
  214. webscout/Provider/freeaichat.py +0 -285
  215. webscout/Provider/geminiapi.py +0 -208
  216. webscout/Provider/geminiprorealtime.py +0 -160
  217. webscout/Provider/granite.py +0 -235
  218. webscout/Provider/hermes.py +0 -266
  219. webscout/Provider/julius.py +0 -223
  220. webscout/Provider/koala.py +0 -268
  221. webscout/Provider/learnfastai.py +0 -325
  222. webscout/Provider/llama3mitril.py +0 -215
  223. webscout/Provider/llmchat.py +0 -255
  224. webscout/Provider/llmchatco.py +0 -306
  225. webscout/Provider/meta.py +0 -798
  226. webscout/Provider/multichat.py +0 -364
  227. webscout/Provider/scira_chat.py +0 -297
  228. webscout/Provider/scnet.py +0 -243
  229. webscout/Provider/searchchat.py +0 -292
  230. webscout/Provider/sonus.py +0 -258
  231. webscout/Provider/talkai.py +0 -194
  232. webscout/Provider/toolbaz.py +0 -353
  233. webscout/Provider/turboseek.py +0 -266
  234. webscout/Provider/typefully.py +0 -330
  235. webscout/Provider/typegpt.py +0 -289
  236. webscout/Provider/uncovr.py +0 -368
  237. webscout/Provider/x0gpt.py +0 -299
  238. webscout/Provider/yep.py +0 -389
  239. webscout/litagent/__init__.py +0 -29
  240. webscout/litagent/agent.py +0 -455
  241. webscout/litagent/constants.py +0 -60
  242. webscout/litprinter/__init__.py +0 -59
  243. webscout/scout/__init__.py +0 -8
  244. webscout/scout/core/__init__.py +0 -7
  245. webscout/scout/core/crawler.py +0 -140
  246. webscout/scout/core/scout.py +0 -568
  247. webscout/scout/core/search_result.py +0 -96
  248. webscout/scout/core/text_analyzer.py +0 -63
  249. webscout/scout/core/text_utils.py +0 -277
  250. webscout/scout/core/web_analyzer.py +0 -52
  251. webscout/scout/core.py +0 -881
  252. webscout/scout/element.py +0 -460
  253. webscout/scout/parsers/__init__.py +0 -69
  254. webscout/scout/parsers/html5lib_parser.py +0 -172
  255. webscout/scout/parsers/html_parser.py +0 -236
  256. webscout/scout/parsers/lxml_parser.py +0 -178
  257. webscout/scout/utils.py +0 -37
  258. webscout/swiftcli/__init__.py +0 -95
  259. webscout/swiftcli/core/__init__.py +0 -7
  260. webscout/swiftcli/core/cli.py +0 -297
  261. webscout/swiftcli/core/context.py +0 -104
  262. webscout/swiftcli/core/group.py +0 -241
  263. webscout/swiftcli/decorators/__init__.py +0 -28
  264. webscout/swiftcli/decorators/command.py +0 -221
  265. webscout/swiftcli/decorators/options.py +0 -220
  266. webscout/swiftcli/decorators/output.py +0 -252
  267. webscout/swiftcli/exceptions.py +0 -21
  268. webscout/swiftcli/plugins/__init__.py +0 -9
  269. webscout/swiftcli/plugins/base.py +0 -135
  270. webscout/swiftcli/plugins/manager.py +0 -262
  271. webscout/swiftcli/utils/__init__.py +0 -59
  272. webscout/swiftcli/utils/formatting.py +0 -252
  273. webscout/swiftcli/utils/parsing.py +0 -267
  274. webscout/zeroart/__init__.py +0 -55
  275. webscout/zeroart/base.py +0 -60
  276. webscout/zeroart/effects.py +0 -99
  277. webscout/zeroart/fonts.py +0 -816
  278. webscout-8.2.6.dist-info/RECORD +0 -307
  279. webscout-8.2.6.dist-info/entry_points.txt +0 -3
  280. webscout-8.2.6.dist-info/top_level.txt +0 -2
  281. webstoken/__init__.py +0 -30
  282. webstoken/classifier.py +0 -189
  283. webstoken/keywords.py +0 -216
  284. webstoken/language.py +0 -128
  285. webstoken/ner.py +0 -164
  286. webstoken/normalizer.py +0 -35
  287. webstoken/processor.py +0 -77
  288. webstoken/sentiment.py +0 -206
  289. webstoken/stemmer.py +0 -73
  290. webstoken/tagger.py +0 -60
  291. webstoken/tokenizer.py +0 -158
  292. {webscout-8.2.6.dist-info → webscout-8.2.7.dist-info}/licenses/LICENSE.md +0 -0
@@ -1,307 +0,0 @@
1
- webscout/AIauto.py,sha256=SvOhkz1irK67s-SHKUnGp6NHirejr51xV4qg5ZNdQMY,9276
2
- webscout/AIbase.py,sha256=ejzsyXAK82eo-2Cg8epljxlxrcHnQeeLt6SKurePOVY,9272
3
- webscout/AIutel.py,sha256=pSTzcY8-RwE9CoPYGQ3aIgCsZES1g98w-dQcwUswfk0,8816
4
- webscout/Bard.py,sha256=T4X1aQczWU8XyvWqVLvp_JxnHHz5GTbdrM9RRK9Bq5Y,41046
5
- webscout/DWEBS.py,sha256=OnoKtIkrlNtYlGL_CCPsLet8cj2wKxqquFB8RdBxXfk,18621
6
- webscout/__init__.py,sha256=vOmNYCYC0bJ2mSMCIqrFl3E7gwMudGj0kELPcTwZz7M,1033
7
- webscout/__main__.py,sha256=qtkMZK5jzQ79ZkFAuZBxMgayuhmw3aRDj1F8Pt06NW4,108
8
- webscout/cli.py,sha256=kn-HoPlgzyWns0cCCMXncB1UsqChE0DYSQgWcJPysHw,21300
9
- webscout/conversation.py,sha256=8pKCbU5bObVrzGCFhSnFnFOpNFzyjeD-oWk4ON3621A,16881
10
- webscout/exceptions.py,sha256=cj0BDCZhB46g_vJ0r2PH0U_T35dqZro-rWu6tvtIZ3c,12833
11
- webscout/models.py,sha256=C7QY-KDkqFCI698t9pvTHQ27rYadPIvwaYHJ3-AOCJI,6566
12
- webscout/optimizers.py,sha256=NlnxWCav7cTyjfeLHuq2pUCgqgW1pljWbMTklHYMGwo,9954
13
- webscout/prompt_manager.py,sha256=j4MLYx3SpeeTxzsbgUGAHWLtJ1HAF6eaWOzJCAiGND4,10090
14
- webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
15
- webscout/update_checker.py,sha256=5FCr6p1zLVASXcXkxKEgR7bFvICbpzJdgRTr3teKFCs,4217
16
- webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
17
- webscout/version.py,sha256=0fdHrafxIpAxox27aIkP_gidiFmTTcAyFJLe96xef7M,46
18
- webscout/webscout_search.py,sha256=aEv6_wcwFWomfUGUm-udHdMKULcMbv6SR3Gxhx8ycdQ,56691
19
- webscout/webscout_search_async.py,sha256=SS6hLvlMRQT_KNuqZUfSuL7Tz-KTEDIXCn97yXSsNeI,35870
20
- webscout/yep_search.py,sha256=gCXleUK_1Gy6B6fMPZ8MurwboPiMmbft3bhk1qISCdQ,12295
21
- webscout/Extra/__init__.py,sha256=KvJRsRBRO-fZp2jSCl6KQnPppi93hriA6O_U1O1s31c,177
22
- webscout/Extra/gguf.py,sha256=NhtgQnx9Sz3maRxQdYCOaCgpQXVXRLA8bBR3li1HN9U,29279
23
- webscout/Extra/weather.py,sha256=Xfxzt43U5m7qpK3h4pzQ55Zh9JVu5HS6XUeLJccASkE,7841
24
- webscout/Extra/weather_ascii.py,sha256=k6U0F9w5xXPvYK-Wq3pjUh7W0gGJG4e_YhxeUI65Vpk,2612
25
- webscout/Extra/GitToolkit/__init__.py,sha256=S8clC97xkihcsxfbAO9QOmSO2ljLOiQFoUh_klhp2zw,146
26
- webscout/Extra/GitToolkit/gitapi/__init__.py,sha256=e3Vu2X8qwOEpNBIbVONhJhhFtu1_3c3ylFAxi1VO_2g,265
27
- webscout/Extra/GitToolkit/gitapi/repository.py,sha256=nbagmnp9fiEfGnseelCpSGc0xS5k3TguhkRB1y0O0Xg,7319
28
- webscout/Extra/GitToolkit/gitapi/user.py,sha256=Hto5xZojqDfphWR62yXVYwqeDZqLJEFTfbRqaPg6_kk,3630
29
- webscout/Extra/GitToolkit/gitapi/utils.py,sha256=Qku8PVk5aRQXLc4GJhnDgoPnMNVgR00hxgWizZVDoM8,1896
30
- webscout/Extra/YTToolkit/YTdownloader.py,sha256=xnGPCBmMwjjb-x7cTOiR01scufNq4I8gnAct4qKUpoI,33051
31
- webscout/Extra/YTToolkit/__init__.py,sha256=xuEyGmDWvtI62R7EtChdphavQzLn_2AknVUVWlY0ssY,77
32
- webscout/Extra/YTToolkit/transcriber.py,sha256=Nta6hVqQr4fIkJwcq6y3fQiE0jeOOZG1w6NSkrf_KLQ,19050
33
- webscout/Extra/YTToolkit/ytapi/__init__.py,sha256=9VHO8BkkhIZhfQ-bOm2soq1C7WblGS8VJPFSq9bsde4,166
34
- webscout/Extra/YTToolkit/ytapi/channel.py,sha256=MQCi1uQAVkMY6VafQqp1G65YAOMVZmcjmDANlPTHqxw,10058
35
- webscout/Extra/YTToolkit/ytapi/errors.py,sha256=MOlIMUmQzlgL08VgllbIayg6lURqdGRlycUC5A7553c,303
36
- webscout/Extra/YTToolkit/ytapi/extras.py,sha256=MkN-8ZUvUGnpihb4grvOLF4DP0LSXhwmrcJVmWKU1wU,1417
37
- webscout/Extra/YTToolkit/ytapi/https.py,sha256=APsIeyE430T685q2coPRW1N82O1as1crdK_730u_wqM,2201
38
- webscout/Extra/YTToolkit/ytapi/patterns.py,sha256=RXL6Rr5hfki9HlpFR12qPV_ELvM6SGqUqOtjy3KwxPc,3053
39
- webscout/Extra/YTToolkit/ytapi/playlist.py,sha256=7_ed-3v8NvRaWqfuXEWAAKlRX3VmNQY1XfDM5iUBMf4,1793
40
- webscout/Extra/YTToolkit/ytapi/pool.py,sha256=7sM_ncFqmkcPzqMY8O9dAeJsxO1eYU49HU0GLeJFJIo,274
41
- webscout/Extra/YTToolkit/ytapi/query.py,sha256=A5WJv3ZCz-s_92PFjJwRnmYFv6T7N39daZysdiKavGU,1545
42
- webscout/Extra/YTToolkit/ytapi/stream.py,sha256=yjIrAFgSNN0Ba8JxwN3M85EgrAMnknZp631w_udAiJ8,2101
43
- webscout/Extra/YTToolkit/ytapi/utils.py,sha256=mmmUCDMXy3TKauPj6T7PWfEYBAcQ8WiR13xspmlT_SM,2028
44
- webscout/Extra/YTToolkit/ytapi/video.py,sha256=rP4dGzi6QkdB7oHaQU_HGb_auKW8NnuMq2diaBCkSzE,8912
45
- webscout/Extra/autocoder/__init__.py,sha256=Py5-Lq6xLwzp4odeJdGVJ91EgKpPLRMcNyX6jAZpOvQ,230
46
- webscout/Extra/autocoder/autocoder.py,sha256=rs_kOMXAMkR2qy3bJqb4Xp-VjJJacUojo_BpP_k8f9w,35323
47
- webscout/Extra/autocoder/autocoder_utiles.py,sha256=JNdeuoo6SmfH5KOOOvklb1jdfNNTmJ8tTyQhRnEtHdM,20574
48
- webscout/Extra/tempmail/__init__.py,sha256=lyTR6X-ybgg7uRa62f2uFOmqeiW3sHK35Zx2byYN-k0,641
49
- webscout/Extra/tempmail/async_utils.py,sha256=2IB6OY8NcfYPTqjWd_RLOk1lzYsuzWeJHlmbtWA-E10,4415
50
- webscout/Extra/tempmail/base.py,sha256=ndahq-4aRWXGESDLaaiuE1FLN8vMdf9fs5HNlYwKjz8,5546
51
- webscout/Extra/tempmail/cli.py,sha256=7KBMVodQtN2vM17WMo3OkGesNId6Vch0twjkyB122NY,7017
52
- webscout/Extra/tempmail/emailnator.py,sha256=jy_elgS_Bc0exUMUygSEKi8cu7ZK-kUEJBDOERBtvZ0,3061
53
- webscout/Extra/tempmail/mail_tm.py,sha256=yDGZjVcMU_gJsXJKs3ceLULoon71QZBt4HS26DdDIro,12966
54
- webscout/Extra/tempmail/temp_mail_io.py,sha256=CrF7VERHqxdgAUHDmhijko3DzaWbsoQsem2DhNotUSM,9715
55
- webscout/Litlogger/__init__.py,sha256=0lHzxdl5CpGBAABvW4YqVb1-FOibEvTe4SOx8ORHmzs,1568
56
- webscout/Litlogger/core/__init__.py,sha256=zgZvP-lBrspukBu8LhQb7SUkSIh9HdsVbzpoZyaq110,130
57
- webscout/Litlogger/core/level.py,sha256=fe0Lz5G-gMpsKAzoLgTUJ53IaFaa5ruXiw4q1ritGI4,584
58
- webscout/Litlogger/core/logger.py,sha256=vH5Y_FniWRXe8gcIRQIA9cI1G_31-cJFTE9bVEtXaI4,6136
59
- webscout/Litlogger/handlers/__init__.py,sha256=a6ZQUE6IZud9gUNnubPwUPJGOGcL648Tl_w3FT85wTQ,294
60
- webscout/Litlogger/handlers/console.py,sha256=iM1O8j6h2Z78volyOdFzOnysoYfePnYeyEeYU299qnE,1287
61
- webscout/Litlogger/handlers/file.py,sha256=D_HTG0rF79r3nKhgwgZxuI1JNQMYvap5KTlAMS8pga8,5067
62
- webscout/Litlogger/handlers/network.py,sha256=27jJvM5hzhk994jcUO_o7r409Tukr5CwEgRy32-9Aa0,6235
63
- webscout/Litlogger/styles/__init__.py,sha256=Cla8fPBziCs0JcJgMVAd9CJl5eMEUDUT6JQ6R_u_T_w,188
64
- webscout/Litlogger/styles/colors.py,sha256=PtcJXfvAZUx4vt2nneHDEaehUOrO4citSr65DZUdm3E,9321
65
- webscout/Litlogger/styles/formats.py,sha256=_7E7OL9EVUzITkZYEJiGx1ByX62K999MjJ_XHjAHPzg,13224
66
- webscout/Litlogger/styles/text.py,sha256=JLz1oUve9cHCxiHA8mj1cnvFKvQkvvPZgawHBYPWaiU,3135
67
- webscout/Litlogger/utils/__init__.py,sha256=G9WTxWGbDMt07Sh6OyLf4rrjjFKiaWTfZBKM8QZGtuI,206
68
- webscout/Litlogger/utils/detectors.py,sha256=VvpiL1baVrxN6XwksoKG1Z0hiuISwCpwQ8YWUJsxdXI,4767
69
- webscout/Litlogger/utils/formatters.py,sha256=MdgaCavaF7OKIo3b3c8BCyyvvskcNKhFQygnhoEY3R4,6100
70
- webscout/Provider/AI21.py,sha256=kyr07xbalGQuR-wP9L5W7c_ri5-PEEvyj42jLV56XaE,6225
71
- webscout/Provider/Aitopia.py,sha256=m01z55uTYvtCANJ-kSCkvVMsYAIDT_1F5HBxVWLNz2I,12948
72
- webscout/Provider/AllenAI.py,sha256=bHfjWdTs16E3XB6nQZwdR999xTGKq9DCQbGRyNQ9_Cw,19443
73
- webscout/Provider/Andi.py,sha256=-Pf3ptSL7PMpVzj2WawopKNFKCC5ZhhH0e5kUFNiIb4,8778
74
- webscout/Provider/Blackboxai.py,sha256=al72E9hK1bpIYx7zLTkLMMRBw3CeE7GPvUZ8hh9oLVk,8130
75
- webscout/Provider/ChatGPTClone.py,sha256=3nr_ijQIFyQBbQlGsnjsMMiBgf03WB6KKT5CXrXQE_E,9904
76
- webscout/Provider/ChatGPTGratis.py,sha256=HgqvYSfSvbfqG-nh3vpBWj9TweWn-yrOzoV3MNCZNTA,7511
77
- webscout/Provider/ChatSandbox.py,sha256=q-QsoRxTuWQ9f8iq5N5yH_2S6qj6YBhfoLFudnACxxE,13333
78
- webscout/Provider/Cloudflare.py,sha256=j-VzfK94mo_QCf_lVR2Inz_nJqL2KaVrJdrMgafgodE,14497
79
- webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
80
- webscout/Provider/Deepinfra.py,sha256=b3rfQrQuGfYI10dwoJxUCbHgxX5WnRtqb6UrQpox4xg,14521
81
- webscout/Provider/ElectronHub.py,sha256=kcD_Hv9XV1hgljiWJTmOjj6YXRtjU3PojVcIqTmi4QI,26447
82
- webscout/Provider/ExaAI.py,sha256=plbjF5LYyZS4elLWKtD6AURDQS3O9xAGBScpDGPHWiY,9783
83
- webscout/Provider/ExaChat.py,sha256=8CsIT8PLzTjUScCkqEB8_pxl7C8fIz8M5HDFJnZz8Zs,12761
84
- webscout/Provider/Free2GPT.py,sha256=FJLn2Ho5oC1bJ2syDfIVvMpMwyFJu32S0ls1rAyr-R0,9213
85
- webscout/Provider/GPTWeb.py,sha256=PcgGByR1juWxjGfwT914RcXM2vTPZ5g5JQsiKbxLId4,10962
86
- webscout/Provider/Gemini.py,sha256=fLT6PRt_uYb2vr-S5nniUzYGITG9mS-HCU6T04l5iG4,6637
87
- webscout/Provider/GithubChat.py,sha256=1m07jmX80TAgAlJNRhn2Z3EyjpZrUZ-XKj0F-xXlRpY,14638
88
- webscout/Provider/GizAI.py,sha256=2k4G8RTWi8TpuQHNleX2V-62kc0495dqsSR5D2gN5rc,10523
89
- webscout/Provider/Glider.py,sha256=BQ47Ejp5NUdw608vRhfA9sbAyCM0W-5x2eV3fz0z918,9168
90
- webscout/Provider/Groq.py,sha256=V6nDhue-AEOJLc1-BP6ZOwsUxpjXP1SqBLTG07dhwWc,36880
91
- webscout/Provider/HeckAI.py,sha256=U_w__SIJC7E_c2glOqnIIBxCwvL-ko5MkHljnGLAct0,10891
92
- webscout/Provider/HuggingFaceChat.py,sha256=xRhaXs22ipUE8qbZ40PljA6nssRwow0xdYedXHYXuCY,21854
93
- webscout/Provider/Hunyuan.py,sha256=FjFcqVhexIpEuljUsGJN4t12bMQvGmzrmc4D1kBLdNk,12332
94
- webscout/Provider/Jadve.py,sha256=oJEdqchuS6a8FquVc26fxM_OJEPzWSMmjwRcHpw_18g,13052
95
- webscout/Provider/Koboldai.py,sha256=0mnpya8GBbmBf8s2qAl88h2PjqavwbRab8G6l5mbJlU,15204
96
- webscout/Provider/LambdaChat.py,sha256=J1XoD0YjcHFozlvMbZapyvC2mEV6DPSK6LNsdbTYTtA,18666
97
- webscout/Provider/Llama3.py,sha256=9f-7ha23OdvUthKUqLwBpSBBZzWPmadJPESyDOUKbC0,10770
98
- webscout/Provider/MCPCore.py,sha256=q_rN7gkrt6Fc-sNMVXvaRzmz-KvFllaFtmTmFO9fQPw,12545
99
- webscout/Provider/Marcus.py,sha256=c1ICdb-QAfYb8ppvoXt9sLmExCg7qV71KIaszqh3JSo,8803
100
- webscout/Provider/Nemotron.py,sha256=_hCFLNhynRX-rMtKXKRpKzrKKFzyWGlQ8uQC-8v0l6w,7948
101
- webscout/Provider/Netwrck.py,sha256=Fstf8bK5dnE4fRLKDumbdFsiF0EIW147AEgsbzezM6A,11812
102
- webscout/Provider/OLLAMA.py,sha256=k8EbK_EqH02xiTtqubViKsHebyJFLUwug5zeP1HkDa4,15155
103
- webscout/Provider/OpenGPT.py,sha256=YGC9i8eWsjJKTy4_e44Z16ZJrAsLqTfzPCNKgHOCYsI,8868
104
- webscout/Provider/Openai.py,sha256=TC4BkezoLqimaqOwzX-nYC9w7hXbDCajm-bzkdyl-gA,20433
105
- webscout/Provider/PI.py,sha256=UvVNenB2M3mbR3xcQTWcWmd9ck-iZXBJTjLB6cMATWM,18584
106
- webscout/Provider/Perplexitylabs.py,sha256=e0k7tuh99dedBTkQxytvfwPS6x6hlaFVpZyrpvy4_Xs,16621
107
- webscout/Provider/QwenLM.py,sha256=lxnSF38wrupb1e7XhN8f0py8v6efwOndFh2SwvIy7Sc,10430
108
- webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
109
- webscout/Provider/StandardInput.py,sha256=N9sgXqXxI9DlsIpHji5VTf8ryAKGTR2rCLOB0BuKBBY,14177
110
- webscout/Provider/TeachAnything.py,sha256=Z99im2wjq-AU2djvO-SwVHf1AqFqxUE351UF1IDwWaI,10191
111
- webscout/Provider/TextPollinationsAI.py,sha256=5bNhch1Z0jx-BXD87Hn842Y17ijF0nnWH4kqBooFFBU,12494
112
- webscout/Provider/TwoAI.py,sha256=2P3PDjr3DiVdDrvhR-bC7bB97n6shoIOrZbF_9hQANo,11552
113
- webscout/Provider/TypliAI.py,sha256=lfOyX2mGZBsmqqB4GafAzAhiV0U0C9RJf9I--hTw9Ik,11919
114
- webscout/Provider/Venice.py,sha256=Ggo2lAp4soViM6Z_LU9d9_cbadcpfrzOZ-3KreTEFxA,11044
115
- webscout/Provider/VercelAI.py,sha256=4gNSfkI28mdeg6G0YUry6N3SNEfuobEpDqPMbelpl3Q,9571
116
- webscout/Provider/WiseCat.py,sha256=TgsGFi6nSTls1_9yuGY-iITB5y2LobHoi5zvWZ8yWlY,9217
117
- webscout/Provider/WrDoChat.py,sha256=Idjrg0IEmeRU6V2qm8SGuqkNowSh5iVsC9N3krPP-l4,13902
118
- webscout/Provider/Writecream.py,sha256=b1ccXW-0c39Fi-kgnrQtdmyWOk8iZaEjrDXY8-6Ix3k,8809
119
- webscout/Provider/WritingMate.py,sha256=fOZ5Tu1A-PKFpl10ekheEy0h0qclSoO__KkBrci_aiI,12332
120
- webscout/Provider/Youchat.py,sha256=JQbERXdlLu-JzMCiqhKZlo4DRwsuLvHoYPFDomV5cTE,12728
121
- webscout/Provider/__init__.py,sha256=FeR5WlSAYbbp8D0YBEwtlRT6_kBAld9OLlVd02Cn8kU,3936
122
- webscout/Provider/ai4chat.py,sha256=rn6IROyFM7DGvLM88YtShm9VQ6HXKQbY3c1FaFuT37Y,8564
123
- webscout/Provider/aimathgpt.py,sha256=X1dPGdJ-Jc-6nQOnm-Bivzlo0B_n_j2A5cQK1bNrDlA,7176
124
- webscout/Provider/akashgpt.py,sha256=iJke-aCmTT_8RmrJbSAZayhtIimum1h680diJwBxdOI,13045
125
- webscout/Provider/asksteve.py,sha256=60PxdUMEeTZofnz_fAoZ2tP43-RnpfO1xz77OPpEcqw,8752
126
- webscout/Provider/bagoodex.py,sha256=XOmIvOn_P7dpNBgylCveaCIXpAU6awGkvEphZZHrYCM,5063
127
- webscout/Provider/cerebras.py,sha256=10yD70w_v9oZgJn2elTyBSLFwIqiX7V6GcSr-n-COYU,11298
128
- webscout/Provider/chatglm.py,sha256=CBiRhxe1yznhvyOaQPDf9Qu0SSfFvJ6LhTJCtHxsS0Q,8737
129
- webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7981
130
- webscout/Provider/copilot.py,sha256=MhDpo1ZHs-Uf-CEIYDB6J3t2rPeI9pP6QDCGffsBoIg,18844
131
- webscout/Provider/elmo.py,sha256=PiiRLwkyHsPmAY8uydd_TuWe2qVXbs_wfW5u4Ytbqp8,12875
132
- webscout/Provider/freeaichat.py,sha256=yKTGYYrv_v3xoOcsXc83F0qTBv5rjFKPuZQLX-vRhIQ,9963
133
- webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
134
- webscout/Provider/geminiprorealtime.py,sha256=2ThViylzCGgKl7UfdFQoPdcsYJKIvf4t4wU0cXXQ43I,5775
135
- webscout/Provider/granite.py,sha256=EodpTbTkAGZUq7cVEe0UHqJCyWZvhKw9MhwDaYTye3I,10771
136
- webscout/Provider/hermes.py,sha256=Dw3zQQ1r850_qhNSMGwQBO6EfpTsN91yV9QZaDVHCi0,10720
137
- webscout/Provider/julius.py,sha256=ra20kGPafLDgV8gd2Z-Yce5eKlgSjFl4CpyHtEmHIlg,8583
138
- webscout/Provider/koala.py,sha256=XVHKC1_X5Pl3WxYuPbM7YxB5-RZmj0dvfbZVIeHf9AA,11048
139
- webscout/Provider/learnfastai.py,sha256=wTjlUAIBcwuku1BivWTg3-A8gr9Tede31vtXXeGjaws,13740
140
- webscout/Provider/llama3mitril.py,sha256=FU98n5qsYnmd0y1jPz48FqTktC50zQunpSaMwDQnh_A,9210
141
- webscout/Provider/llmchat.py,sha256=PgAV72p4WNvbk6XbUYjz6IePjwlI9E4yBC65Uio57UQ,10617
142
- webscout/Provider/llmchatco.py,sha256=xW6ZtlYUVbiUsYIFixFDup2lIZgzhzjZM2bl2C-N6Ns,12638
143
- webscout/Provider/meta.py,sha256=JID7SufkLTrnKDqFblKlhT-I9_hOgJDJSYF05D3ccIo,30554
144
- webscout/Provider/multichat.py,sha256=3ZxV7C7KG4T6sKttHf0jO83eGjgaPlRszVZnZBR2JI8,15043
145
- webscout/Provider/scira_chat.py,sha256=7EJnDPRyuAjG1v-nA26I8pgrYnifnyY7g6tRTA59M6g,12334
146
- webscout/Provider/scnet.py,sha256=Nwibdm1LV96QOjqVVIgX_Qro70MVdRDVBF4gLXcevnI,11358
147
- webscout/Provider/searchchat.py,sha256=AMKFIMhAfnmIYCHtKmePf_rUvcbboDoi65H4WOCdInw,12464
148
- webscout/Provider/sonus.py,sha256=OaXzLYC7RndmVV4rDbBThhOhmOpAq3EYDG11NdYEgV8,11300
149
- webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7613
150
- webscout/Provider/toolbaz.py,sha256=jvL1OtnNlfv5ZV2QN6eCAbz7fcTC4vETotpDvGCfGsU,14493
151
- webscout/Provider/turboseek.py,sha256=wVWiTRvvlLHXynEISAAO4gxY-BDIyiR1fs2mhNnFc0U,11666
152
- webscout/Provider/typefully.py,sha256=rfRvIHFPax-oyLCA1QqZ--84X6VB65iIJ-y8JGTvkho,13802
153
- webscout/Provider/typegpt.py,sha256=V4JdfP_Rdhzt0BIjdfVEsCE-QzL3xn8gJstfCWWqExo,12379
154
- webscout/Provider/uncovr.py,sha256=1nnzeECixl-Grrm8LAbs6TwmPTNHlMoNNeQQAFHFz40,15936
155
- webscout/Provider/x0gpt.py,sha256=MFfgGUi50zInrmJ6V9YruexF8n19Zjf-ityZxAqLd9g,11770
156
- webscout/Provider/yep.py,sha256=D48R4JaPtGzYmqLC4tq9O0_Jeab2B-UrCphCQxwEdYM,18317
157
- webscout/Provider/AISEARCH/DeepFind.py,sha256=MhU5of90tTfiF_DtYA4KC5d2pjbZ43WnIU9ixDpXZng,10324
158
- webscout/Provider/AISEARCH/ISou.py,sha256=9pL95bLL0f9aoJ36L8yo4bnkqoD_vYGSWi9os8L-b24,9991
159
- webscout/Provider/AISEARCH/Perplexity.py,sha256=Qy09-zvv_B4XArSYU6BLhxPzJlzOqDvQW6NuV6QDkBw,15369
160
- webscout/Provider/AISEARCH/__init__.py,sha256=S_iM3fSRc-DYbDuw7amIVu4gGjt36nofUWmXYCeSOoY,282
161
- webscout/Provider/AISEARCH/felo_search.py,sha256=tomKb8G_p80nTryxWQ3XFVFM3POnSgi2zkL27y3KfMg,8968
162
- webscout/Provider/AISEARCH/genspark_search.py,sha256=dtI_8RHVncWWCbKgbXxwqrFKGsJe0V5mXBuDHuMjiVQ,8163
163
- webscout/Provider/AISEARCH/hika_search.py,sha256=S5BvPjhIRm_HsHay4yl1XHnONwzeYjau2roqRhhxTAY,6874
164
- webscout/Provider/AISEARCH/iask_search.py,sha256=np0QsK34E7S6AH2LPO9rEb0P-XLlQn6YsAXuCMeSj9U,17752
165
- webscout/Provider/AISEARCH/monica_search.py,sha256=G8buO5HfKTt_Yj5CQ6RGzhCtifYF17ocK7_PcdbFD-c,9217
166
- webscout/Provider/AISEARCH/scira_search.py,sha256=jHWOT7nk0Rmy60ftb5PTNO2LsBWw-Q-KRPte5HU2HfY,11413
167
- webscout/Provider/AISEARCH/webpilotai_search.py,sha256=sgxlknhIU90A_yyaq67udZTmuC5xftG0iDa_D2DVZCs,11904
168
- webscout/Provider/HF_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
- webscout/Provider/HF_space/qwen_qwen2.py,sha256=IulE7bAMSbR530pFTanWzMFb4UJ9qF_NKoGiHkXxcjc,7612
170
- webscout/Provider/OPENAI/__init__.py,sha256=cqkW0rHhzch9fJqmtZc3E6Alx4tl42CCF9M3CNR5vwg,764
171
- webscout/Provider/OPENAI/ai4chat.py,sha256=SgNnngGGN8Vmpdq-BtAU2yVdzW75TrgRyV_gpduGdHY,9977
172
- webscout/Provider/OPENAI/base.py,sha256=oxJNrH4hQaRNb-hWDbMXhoO2xD0Y1T8KKyN9bP1Qw2k,1467
173
- webscout/Provider/OPENAI/c4ai.py,sha256=ihpBJSC30vRYkn2AJt6kioSs7eiriG1OqPN7VwIPzrU,13965
174
- webscout/Provider/OPENAI/chatgpt.py,sha256=B16yMKU-qcoCK3GGqs9WjXFDQnwvvADKE9VJtztQfXc,19023
175
- webscout/Provider/OPENAI/chatgptclone.py,sha256=Zl9IFX9lEse0M65Ae4un3vIuyHfz8s23FJXlS7sQV9I,18062
176
- webscout/Provider/OPENAI/deepinfra.py,sha256=TS19zwpWxRLi6DVZuKlPwyAIJCWUnTGQxsNh_Ff5J9I,13359
177
- webscout/Provider/OPENAI/e2b.py,sha256=A3ybfjLny_bFoUz7Byjnq7Xw0wTr0_jhkWCP-Bi7Jrw,53433
178
- webscout/Provider/OPENAI/exaai.py,sha256=UTfD6rQ5RmjObPidiI_rMQZdfpfrungT_zxW66uKAWw,13690
179
- webscout/Provider/OPENAI/exachat.py,sha256=uKSAubDJKFrD57JAYbMt16ACQDENzMUAG9jBruMXqrg,14598
180
- webscout/Provider/OPENAI/freeaichat.py,sha256=B4oLb8VyBnXZWG_kBgZpKqI5xwHymDQubxWe6dmcznA,11232
181
- webscout/Provider/OPENAI/glider.py,sha256=R26IQtmCoEi7TtSa4_HfAjvbA1xWxN70EdYItrE48A0,12610
182
- webscout/Provider/OPENAI/groq.py,sha256=CCMFKzncuufJ4LUCEKEork_pPlnKKjd2Zi2wkiCB7Hw,13825
183
- webscout/Provider/OPENAI/heckai.py,sha256=q7N5GkHTt6NzwkIjJqZYYB47RQEjM7YihyvF5gdm7iw,11348
184
- webscout/Provider/OPENAI/llmchatco.py,sha256=oXCYQHqtQDvgoxOLjxKPjW2AjqDBCqC6jdFQ0YcRRNo,14810
185
- webscout/Provider/OPENAI/mcpcore.py,sha256=rFzrLMrjKadbyE2Hw7dBOI6BU5HS92Ej3ZJU2le4re0,16334
186
- webscout/Provider/OPENAI/multichat.py,sha256=Ko0dstfMdwONjpBoDQ1AV0-VZfXKQoqQLDahLqOvZe8,13696
187
- webscout/Provider/OPENAI/netwrck.py,sha256=96nfIeL9Quf-FxVjFOq62CEtUuNstZpF61b7v8ygllI,12281
188
- webscout/Provider/OPENAI/opkfc.py,sha256=m_GROHDoTW_bPmBmceM3yl66c4X59w431rynDxdhrbs,20322
189
- webscout/Provider/OPENAI/scirachat.py,sha256=6cWVEStCM1St0tpObSVP_UD37-onF9199c3TTfbXuvY,17667
190
- webscout/Provider/OPENAI/sonus.py,sha256=xoLhgN8kuIgjA01a4ripT4KqZz7RVB5DqINibo472pk,10198
191
- webscout/Provider/OPENAI/standardinput.py,sha256=EIwF6-4UkUqxmryRmyNrgiWb8v58xyRfaPZ8fwhISzE,18257
192
- webscout/Provider/OPENAI/textpollinations.py,sha256=XlE4GbMszZH0Ys3FMVeSH_5dOGZJX12W3xnjSZxxFUE,12097
193
- webscout/Provider/OPENAI/toolbaz.py,sha256=9xWSPhTNlCd8lNT4OCwFC8ginf-XDjf-kph5OucD5wU,13597
194
- webscout/Provider/OPENAI/typegpt.py,sha256=5GZGuxpAT7AtMVV0exviqGlXL3fm4W3_9o8wqhr6Ahs,12674
195
- webscout/Provider/OPENAI/uncovrAI.py,sha256=znlzmX16-bprIKB9eUOMNJO0c1ZBurh6quZ_89Q3Z7c,16894
196
- webscout/Provider/OPENAI/utils.py,sha256=3lForhUB5j2sgwwGHzdjAMZqtaOtmhqb6TsplCmfKQk,6860
197
- webscout/Provider/OPENAI/venice.py,sha256=EmhAObvtFAltvsy2_27W_40FZbtgSoPr5KgqYKmxf3c,14586
198
- webscout/Provider/OPENAI/wisecat.py,sha256=scsajQl3ECwoEbgmmIjl9oofuJ7x8q2LdaZGVmzVX9M,12998
199
- webscout/Provider/OPENAI/writecream.py,sha256=H5zPN-s3g05bM2lV60A4VcActtOfU5kKZiFzJ6QuSDs,5982
200
- webscout/Provider/OPENAI/x0gpt.py,sha256=kk5lVjz6lLiBkuQmT4nUCKX5o1IAn_Hyb596C46gzLY,12540
201
- webscout/Provider/OPENAI/yep.py,sha256=yQU2LlIMQTtOjMXgqZIjPF7cUvtP-nRuGmJ6VEdy8_I,13143
202
- webscout/Provider/TTI/__init__.py,sha256=K6J27GHg3Fv9xB13dGwgLWIow_EbZY1yKEAxohaoaKU,309
203
- webscout/Provider/TTI/AiForce/__init__.py,sha256=R8r6XYBUoGB_26jSyjGwHpw8GtZ0wbnkBoHxu26T_QU,685
204
- webscout/Provider/TTI/AiForce/async_aiforce.py,sha256=5O7tKyLgG3FVr-Tx9llZavCU9fOklrcnG210k4TvUwg,8317
205
- webscout/Provider/TTI/AiForce/sync_aiforce.py,sha256=XZI5WGSL7BbC9Nm8VLSADtFYd3AS6-YcXCHMlRMiKtQ,8390
206
- webscout/Provider/TTI/FreeAIPlayground/__init__.py,sha256=whLCSjMXI9enaDHOCotzFm3Hvq3J5TWAvRynRMnXvV4,286
207
- webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py,sha256=P6uZfXLeJPSPFCn6ipRe5gemH78PRe--YAPxGXNMFJM,6779
208
- webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py,sha256=yyJWngv0Urg8bHLjw34o9XFNC6XNvZ1x9aUSJRy8VI4,6638
209
- webscout/Provider/TTI/ImgSys/__init__.py,sha256=o3S63xfUStXyGCoqiAZBtF1-7ctHW3I8sU0RJPvn1kY,739
210
- webscout/Provider/TTI/ImgSys/async_imgsys.py,sha256=qOCDU9CvVKhmuOvoTuTh1uzInhhlLrswHILHHAfVFLs,7461
211
- webscout/Provider/TTI/ImgSys/sync_imgsys.py,sha256=0DIKrytmimws7FudUPKXzf6JTJnl5twkxicILEePwsc,6848
212
- webscout/Provider/TTI/MagicStudio/__init__.py,sha256=PsnGiJHlVf4hnOat8QzjTRWCNirwKnp0wbGz6I5ZmLg,65
213
- webscout/Provider/TTI/MagicStudio/async_magicstudio.py,sha256=dXhLdkhm3hWtIIXSTG10GYWVCqqO_pEi9tPXAPiWDX0,4182
214
- webscout/Provider/TTI/MagicStudio/sync_magicstudio.py,sha256=1QRu6jR4HZcusfYPRPRcSpdfejU33XNAfx3__85bbOc,3761
215
- webscout/Provider/TTI/Nexra/__init__.py,sha256=0mO8r6eLnilf3tZchmdyN13OaNoUt-fg5rCNXgWdt5Q,663
216
- webscout/Provider/TTI/Nexra/async_nexra.py,sha256=fDY-5rRyzauTXE78yglTnE2yWfBfYGUQhBxr-xmK5Sk,11240
217
- webscout/Provider/TTI/Nexra/sync_nexra.py,sha256=VjzetIdyl8Tmcoyii1fvNJNvfEAQQBrycm6IBmlUjfI,9570
218
- webscout/Provider/TTI/PollinationsAI/__init__.py,sha256=1iIvw-D6HJ58N3omwbykJBtne6T4XG1jrSDcYQImfRg,824
219
- webscout/Provider/TTI/PollinationsAI/async_pollinations.py,sha256=zGDkWIICbAmVtW71pOl4kwlf9lYFwdSQL8XSyV7dDXU,11384
220
- webscout/Provider/TTI/PollinationsAI/sync_pollinations.py,sha256=PWwnIhw0Z9boRFyl7_egK9qz87-HMe-WBWccddJLGfM,9336
221
- webscout/Provider/TTI/aiarta/__init__.py,sha256=WlEb_M5rJbuxpRPOFZIiHFQo81t9GThd5QR6whV-QFE,55
222
- webscout/Provider/TTI/aiarta/async_aiarta.py,sha256=B3orpApZuYntUVv66xhLb0NiBFcno3qJSzGcH-M8su8,20269
223
- webscout/Provider/TTI/aiarta/sync_aiarta.py,sha256=9c1H4w3KycuqQrlUi2not4gUIM0xEc-AxuJ6gK3kt9w,16825
224
- webscout/Provider/TTI/artbit/__init__.py,sha256=Ubkm4MuYxc6_eSXspfsnO61KRNWby8RNFG1hsYCGQM4,708
225
- webscout/Provider/TTI/artbit/async_artbit.py,sha256=R45uktlnN767uRiaXxzO7TFMaKZ17MzSzDwiuUYMtmU,5597
226
- webscout/Provider/TTI/artbit/sync_artbit.py,sha256=UX-l3DzqDicj9khxQsUfmPbBM3xNOdj0BFZ8lifGzxg,5075
227
- webscout/Provider/TTI/fastflux/__init__.py,sha256=F8ctLKbDvynKj95nWReIthkrzktN7pVJK4HX7pdxQrQ,712
228
- webscout/Provider/TTI/fastflux/async_fastflux.py,sha256=Eh8Q6LJjkpQfhi9oZJTjeblLjsJ7zE1wNXjOweLcBno,9949
229
- webscout/Provider/TTI/fastflux/sync_fastflux.py,sha256=2bOLZdOdE0O0gqd1REZNvQ17Jmcx8UjlDPY4ielnTm0,9000
230
- webscout/Provider/TTI/huggingface/__init__.py,sha256=dFP7lATgNXJDhajKKC9wwXFWk8xFD0urAjQe27GGk-k,717
231
- webscout/Provider/TTI/huggingface/async_huggingface.py,sha256=lZk62TvzJ8PydAKMFsCz043jEfKq-fTx9LA2A0T2tis,7840
232
- webscout/Provider/TTI/huggingface/sync_huggingface.py,sha256=w0cnmJyoazD53fvz9M7pqd7kWkRILKlnnvgB6shsz7Y,7470
233
- webscout/Provider/TTI/piclumen/__init__.py,sha256=-UH3nxe3O_xDAHGYGh9g11HG37enJAiZvyraQDnf9os,814
234
- webscout/Provider/TTI/piclumen/async_piclumen.py,sha256=VaeI21pHpUjxZNQXSm6AYHsE9cGQJl6SesGjgZF5R_M,10119
235
- webscout/Provider/TTI/piclumen/sync_piclumen.py,sha256=LV8WkHZVrOJayO3JyW9vKZGLsX6ebl95G8WND7iiUjk,8466
236
- webscout/Provider/TTI/pixelmuse/__init__.py,sha256=XZWEyE04MeqO-yyMQHQ2V0TbSWJ5FBQ9EtI4WHcAuhY,152
237
- webscout/Provider/TTI/pixelmuse/async_pixelmuse.py,sha256=FctnaIunljZhgBPvLEcXfWfnDOSbxWUUTzBbITsTuTg,9646
238
- webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py,sha256=XEw6h09WO6fhBFjYaGUs0GupcHWO3E71NRJ43C0XTA0,6651
239
- webscout/Provider/TTI/talkai/__init__.py,sha256=3gAbrtt0GvnpwNN4N6ZpGgP489S6yhipRJo04RS5ilY,135
240
- webscout/Provider/TTI/talkai/async_talkai.py,sha256=Rw8dHO_qKje0hH58NSZmLEDcjq-PIpLEzRPyQL0kSDM,9411
241
- webscout/Provider/TTI/talkai/sync_talkai.py,sha256=4dC90PwPdxbsU7lMY62IPHgX4rBecdGGjOv5exoSW-I,8307
242
- webscout/Provider/TTS/__init__.py,sha256=5FndpLjWigYdFeLbGsxz1G0tbV3C88xW5Zu0zNRXlaE,234
243
- webscout/Provider/TTS/base.py,sha256=9lAYl807FAX1o9JUIe-PvsuAux3UDbHyFqUYi4pZiTI,5968
244
- webscout/Provider/TTS/deepgram.py,sha256=pMNhfez_Yr1FJn8fKtCb8xFhg_K-OnxpZuoWVWIx7f4,6329
245
- webscout/Provider/TTS/elevenlabs.py,sha256=IzpyeHmADDhJcS2H4p7YK6PvA5LP22AoSBCw2Mt3-AY,5408
246
- webscout/Provider/TTS/gesserit.py,sha256=v4ybdEMbux8J21Y7PSp3_axL3W2Naru5P_pmwP1ENeU,5594
247
- webscout/Provider/TTS/murfai.py,sha256=9WA7_4n1p4OXbZY3WxwxDRTvsWN2ohDxKGqgYrZol84,4910
248
- webscout/Provider/TTS/parler.py,sha256=-JbH01Kq_sLVahu6PoJwq6c7JY_JtQOi8YmU1cLFZqU,4144
249
- webscout/Provider/TTS/speechma.py,sha256=aI4rDt_r0_sjdxLbaktJUQzyeP25T1tfErLtxJ0msfw,7645
250
- webscout/Provider/TTS/streamElements.py,sha256=RowMh1VktGD9W_lGBqVJon_Bq8Ee2PRZNeUCDtDN8FU,10238
251
- webscout/Provider/TTS/utils.py,sha256=pO3GsBmIZ7CHywjOGyrdpHdvch40QMvfAfvAeRBp-O0,10886
252
- webscout/litagent/__init__.py,sha256=2HydGSdDVBZ7SRNgGzXX-TJiuol1sxzNJBw7wVAFueo,882
253
- webscout/litagent/agent.py,sha256=1ZXAYjADlRQw5FKz9vVy9qryNJUFvS6WRFBsIX6EtSY,19101
254
- webscout/litagent/constants.py,sha256=3_3tWXhmyZ2dFIO8f0YWL4CRkoFoL18h0_jNttTN7mk,2175
255
- webscout/litprinter/__init__.py,sha256=iBYLF0IapDD7piPbNsBHWshg0WQWyP4EvodEPrP3lwI,2452
256
- webscout/scout/__init__.py,sha256=1dy8mhj4d-X_RDnb3Ip2LKC-2fqgP5zRsHkhdQjAGzE,333
257
- webscout/scout/core.py,sha256=vOBK8AOBmmdXf5jLeYpbO-qBDsdL0M5Kz3bhj8VLiQ8,29585
258
- webscout/scout/element.py,sha256=5s_eSY4TbwM-4zLN5rBEHMA5U4rgeyd-z1tGstsUhco,15300
259
- webscout/scout/utils.py,sha256=flBUjqjUZbzMDT8PJYMPxqXFpm1NlpIJHdhFC2ApnZ0,1006
260
- webscout/scout/core/__init__.py,sha256=ncF9MkM3iO1B2Ew_nOwzLQeeJ1xkCdoJ77CCZADD974,296
261
- webscout/scout/core/crawler.py,sha256=VNUSEhJx8gLzYDgK0aXKYqXNLnbI-OFroLUlnQ9WYEw,5144
262
- webscout/scout/core/scout.py,sha256=0k40mPETEEIiCT4XcKrQXnn4xBF5NRTs5ZBrSgZI51o,19236
263
- webscout/scout/core/search_result.py,sha256=I5pmOhczAqY2wPgwx9lrZoeD4eHLn2VHlFCicaLXORI,2957
264
- webscout/scout/core/text_analyzer.py,sha256=gm30VZAnAH5DPgt6OhYd4bOriK-sSwgtEBqrx4NWm6o,1846
265
- webscout/scout/core/text_utils.py,sha256=vo5dVgtcMARWfHdH6NC5gAArBo4HYpqFsHKZYfkE7Jk,10813
266
- webscout/scout/core/web_analyzer.py,sha256=iPlt1GIU-NlUR-ccIXguLYQgE1IGu4S2kjEhT87ofZc,1674
267
- webscout/scout/parsers/__init__.py,sha256=ljOJkxv1j6c0CNlBO02n_4510dGycYXgKWcrAUDLu3I,1831
268
- webscout/scout/parsers/html5lib_parser.py,sha256=lMg8yA7xrpwszbDrA0MKrKAmn5XUp9bdMCOa_efDbI4,5799
269
- webscout/scout/parsers/html_parser.py,sha256=RSHfRJOo_XSwgIb65uexn_pWWqVCo4E52-Ilb6kioDs,7028
270
- webscout/scout/parsers/lxml_parser.py,sha256=UefEW5TQJcmrLCHOceI1lbyT3bY8gawxuoiPVmrP_aw,6231
271
- webscout/swiftcli/__init__.py,sha256=FAC7D0Yu4KN2WGSpNSIVgGSJ9DlAVzqFLjbyUpxCwmc,1864
272
- webscout/swiftcli/exceptions.py,sha256=yd50TpIjxjL4pzgnEIJUThh6F6brI-jmajjuxqgH9EE,529
273
- webscout/swiftcli/core/__init__.py,sha256=IZfEWpDaV7_Lo5T0_ryp4ZRrH6egXrCJgdO3g1hGx5k,161
274
- webscout/swiftcli/core/cli.py,sha256=sNBdF8lmkuMrW_MijUYQI4TUv4BMZ6OXuFUn12b287Q,10030
275
- webscout/swiftcli/core/context.py,sha256=QTPkxk1HOZ128OFYC7W99ey1GoNi3n4YqjkqCjBjjiY,3043
276
- webscout/swiftcli/core/group.py,sha256=moOcP7ec0u80cxpw1bKW9eBti4sgwjJVmGLiU1OwKz0,7605
277
- webscout/swiftcli/decorators/__init__.py,sha256=YHsLyXnh4Rvn_hwg28y9lkTq2Hh4QVx4ohHfY3r-Wbw,648
278
- webscout/swiftcli/decorators/command.py,sha256=W-LFpXVOB2xbVg8f36phFxCoQFtQ7cwjqeaJ60OsVk8,6291
279
- webscout/swiftcli/decorators/options.py,sha256=6K6Ea8EoP98sDO-ia7Kx4GoK5OmRkFfsMPFIJxveByY,6608
280
- webscout/swiftcli/decorators/output.py,sha256=ZoX_Sb97cYiSvyGnNfllmahEya2HOxWkCugF5vkG2kU,7756
281
- webscout/swiftcli/plugins/__init__.py,sha256=1lKYyhzaZuOEwFiA4SjV8tnaxD2MuegkeR0LV0xKGmI,153
282
- webscout/swiftcli/plugins/base.py,sha256=mnyEfMD_Cqa_nWuHWZZ9F5YEZgSZK3yiCCRbl93c5Eg,3754
283
- webscout/swiftcli/plugins/manager.py,sha256=fsn9adYkAyNr4RtTOonCUogydAdbBCraEWVi_786DZc,8674
284
- webscout/swiftcli/utils/__init__.py,sha256=1pavZ73vUG7pMbzqCaYUAjCI3bqta07chQRZuwROGiU,1114
285
- webscout/swiftcli/utils/formatting.py,sha256=iDqcLqxDgjKVrFP9cI9Pu1xMijPSGotNy77f2bcNjPo,5613
286
- webscout/swiftcli/utils/parsing.py,sha256=vtgpXLqS1br01meFyE0537k--jzZhhblSdMuAh_54pY,7293
287
- webscout/zeroart/__init__.py,sha256=Lw6_a19qm19rEHwIdpj5_tOHuWvWn2_PcACodyXDIrQ,1362
288
- webscout/zeroart/base.py,sha256=l5h6ll_GdaeV5Stbif8EA940XlgQbV1ealIZMg3Y_Yc,1983
289
- webscout/zeroart/effects.py,sha256=2zlII7zoxEM1-5LGzEDCmz4IC3maus5c7qxzCuoJJLc,3032
290
- webscout/zeroart/fonts.py,sha256=Ers0ZA0Qi8rBgsqG-pfHhQAvpbyUAof6S6k0vYG84ZE,25659
291
- webscout-8.2.6.dist-info/licenses/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
292
- webstoken/__init__.py,sha256=gYti7T7sIqjyrOT9q_tHvBVJPDzs4z04uIMhEmNQl9o,804
293
- webstoken/classifier.py,sha256=vedEHO4ZOvIQBd86lzBu2D94vA9HAwOuiJqARob05ng,7652
294
- webstoken/keywords.py,sha256=dGYe8-K46ohuQV_mmAV_wCAmw2CRaOU7OpLHjU7Hyzo,8478
295
- webstoken/language.py,sha256=Y2TF6IwveF5iwt4ZtwllCzHzZmr9Y6CDxmQMWV8ZAfE,6064
296
- webstoken/ner.py,sha256=47tLNDMLk-RR2evgz5XoVDr19HJss7xQDAN3artpOPw,6239
297
- webstoken/normalizer.py,sha256=N4zMdOWab2K-hGRdHPPLzRlqZgaw96M8dnBcKQ3b-Mk,1145
298
- webstoken/processor.py,sha256=apmRbvYWYyG_OuLEmDzzWzkrzjtH8DRWVyCtJf1Vdd4,2446
299
- webstoken/sentiment.py,sha256=yHtaHXJNS_sH1UTHZsOIgyhdijr8oi1pMlg_QE2wtxw,8202
300
- webstoken/stemmer.py,sha256=VXWkBpPaH328WEQxw9e9ff-p2e27xDdbpVSy0nTnXYE,2624
301
- webstoken/tagger.py,sha256=p4ScFnxn5sShYDVRoHK5pn_mzaDTsEtx3EHRvuvOlfE,2306
302
- webstoken/tokenizer.py,sha256=XJ-d1MFRp0Trw6gtOtZ8_wAcaSQidnSCHLNpV1-OFJc,6016
303
- webscout-8.2.6.dist-info/METADATA,sha256=0AljsqEnewLM_RSn1GIiEgTgLj7vBOySs7ajIO4mSoQ,29611
304
- webscout-8.2.6.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
305
- webscout-8.2.6.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
306
- webscout-8.2.6.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
307
- webscout-8.2.6.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- WEBS = webscout.cli:cli
3
- webscout = webscout.cli:cli
@@ -1,2 +0,0 @@
1
- webscout
2
- webstoken
webstoken/__init__.py DELETED
@@ -1,30 +0,0 @@
1
- """
2
- Webstoken - A pure Python NLP toolkit for text processing
3
- """
4
-
5
- from .tokenizer import SentenceTokenizer, WordTokenizer
6
- from .tagger import POSTagger
7
- from .stemmer import Stemmer
8
- from .normalizer import TextNormalizer
9
- from .processor import process_text
10
- from .ner import NamedEntityRecognizer
11
- from .classifier import TextClassifier, TopicClassifier
12
- from .language import LanguageDetector
13
- from .sentiment import SentimentAnalyzer
14
- from .keywords import KeywordExtractor
15
-
16
- __version__ = '0.1.0'
17
- __all__ = [
18
- 'SentenceTokenizer',
19
- 'WordTokenizer',
20
- 'POSTagger',
21
- 'Stemmer',
22
- 'TextNormalizer',
23
- 'process_text',
24
- 'NamedEntityRecognizer',
25
- 'TextClassifier',
26
- 'TopicClassifier',
27
- 'LanguageDetector',
28
- 'SentimentAnalyzer',
29
- 'KeywordExtractor'
30
- ]
webstoken/classifier.py DELETED
@@ -1,189 +0,0 @@
1
- """
2
- Text classification module using rule-based and statistical approaches.
3
- """
4
-
5
- from typing import Dict, List, Set, Tuple
6
- from collections import Counter
7
- import math
8
- import re
9
-
10
- from .normalizer import TextNormalizer
11
- from .tokenizer import WordTokenizer
12
-
13
-
14
- class TextClassifier:
15
- """Simple text classifier using TF-IDF and cosine similarity."""
16
-
17
- def __init__(self):
18
- self.word_tokenizer = WordTokenizer()
19
- self.normalizer = TextNormalizer()
20
- self.documents: Dict[str, List[str]] = {} # category -> list of documents
21
- self.vocabulary: Set[str] = set()
22
- self.idf_scores: Dict[str, float] = {}
23
- self.category_vectors: Dict[str, Dict[str, float]] = {}
24
-
25
- def train(self, documents: Dict[str, List[str]]) -> None:
26
- """
27
- Train the classifier on labeled documents.
28
-
29
- Args:
30
- documents: Dict mapping categories to lists of documents
31
- """
32
- self.documents = documents
33
-
34
- # Build vocabulary and document frequencies
35
- doc_frequencies: Dict[str, int] = Counter()
36
- total_docs = sum(len(docs) for docs in documents.values())
37
-
38
- for category, docs in documents.items():
39
- for doc in docs:
40
- # Normalize and tokenize
41
- doc = self.normalizer.normalize(doc)
42
- tokens = self.word_tokenizer.tokenize(doc)
43
-
44
- # Update vocabulary and document frequencies
45
- unique_tokens = set(tokens)
46
- self.vocabulary.update(unique_tokens)
47
- doc_frequencies.update(unique_tokens)
48
-
49
- # Calculate IDF scores
50
- self.idf_scores = {
51
- word: math.log(total_docs / (freq + 1))
52
- for word, freq in doc_frequencies.items()
53
- }
54
-
55
- # Calculate TF-IDF vectors for each category
56
- for category, docs in documents.items():
57
- category_vector: Dict[str, float] = {word: 0.0 for word in self.vocabulary}
58
-
59
- for doc in docs:
60
- # Get term frequencies
61
- doc = self.normalizer.normalize(doc)
62
- tokens = self.word_tokenizer.tokenize(doc)
63
- term_freqs = Counter(tokens)
64
-
65
- # Update category vector with TF-IDF scores
66
- for word, tf in term_freqs.items():
67
- if word in self.idf_scores:
68
- category_vector[word] += tf * self.idf_scores[word]
69
-
70
- # Average the scores
71
- for word in category_vector:
72
- category_vector[word] /= len(docs)
73
-
74
- self.category_vectors[category] = category_vector
75
-
76
- def _calculate_vector(self, text: str) -> Dict[str, float]:
77
- """Calculate TF-IDF vector for input text."""
78
- # Normalize and tokenize
79
- text = self.normalizer.normalize(text)
80
- tokens = self.word_tokenizer.tokenize(text)
81
- term_freqs = Counter(tokens)
82
-
83
- # Calculate TF-IDF scores
84
- vector = {word: 0.0 for word in self.vocabulary}
85
- for word, tf in term_freqs.items():
86
- if word in self.idf_scores:
87
- vector[word] = tf * self.idf_scores[word]
88
-
89
- return vector
90
-
91
- def _cosine_similarity(self, vec1: Dict[str, float], vec2: Dict[str, float]) -> float:
92
- """Calculate cosine similarity between two vectors."""
93
- dot_product = sum(vec1[word] * vec2[word] for word in vec1)
94
- norm1 = math.sqrt(sum(score * score for score in vec1.values()))
95
- norm2 = math.sqrt(sum(score * score for score in vec2.values()))
96
-
97
- if norm1 == 0 or norm2 == 0:
98
- return 0.0
99
- return dot_product / (norm1 * norm2)
100
-
101
- def classify(self, text: str) -> List[Tuple[str, float]]:
102
- """
103
- Classify text into categories with confidence scores.
104
-
105
- Returns:
106
- List of (category, confidence) tuples, sorted by confidence
107
- """
108
- if not self.category_vectors:
109
- raise ValueError("Classifier must be trained before classification")
110
-
111
- # Calculate vector for input text
112
- text_vector = self._calculate_vector(text)
113
-
114
- # Calculate similarity with each category
115
- similarities = [
116
- (category, self._cosine_similarity(text_vector, category_vec))
117
- for category, category_vec in self.category_vectors.items()
118
- ]
119
-
120
- # Sort by similarity score
121
- return sorted(similarities, key=lambda x: x[1], reverse=True)
122
-
123
-
124
- class TopicClassifier:
125
- """Rule-based topic classifier using keyword matching."""
126
-
127
- def __init__(self):
128
- # Define topic keywords
129
- self.topic_keywords = {
130
- 'TECHNOLOGY': {
131
- 'computer', 'software', 'hardware', 'internet', 'programming',
132
- 'digital', 'data', 'algorithm', 'code', 'web', 'app', 'mobile',
133
- 'cyber', 'robot', 'ai', 'artificial intelligence', 'machine learning'
134
- },
135
- 'SCIENCE': {
136
- 'research', 'experiment', 'laboratory', 'scientific', 'physics',
137
- 'chemistry', 'biology', 'mathematics', 'theory', 'hypothesis',
138
- 'study', 'discovery', 'innovation', 'analysis', 'observation'
139
- },
140
- 'BUSINESS': {
141
- 'company', 'market', 'finance', 'investment', 'stock', 'trade',
142
- 'economy', 'business', 'corporate', 'startup', 'entrepreneur',
143
- 'profit', 'revenue', 'management', 'strategy', 'commercial'
144
- },
145
- 'POLITICS': {
146
- 'government', 'policy', 'election', 'political', 'democracy',
147
- 'parliament', 'congress', 'law', 'legislation', 'party',
148
- 'vote', 'campaign', 'president', 'minister', 'diplomatic'
149
- },
150
- 'SPORTS': {
151
- 'game', 'team', 'player', 'competition', 'tournament',
152
- 'championship', 'score', 'match', 'athlete', 'sport',
153
- 'win', 'lose', 'victory', 'defeat', 'coach', 'training'
154
- },
155
- 'ENTERTAINMENT': {
156
- 'movie', 'film', 'music', 'song', 'concert', 'actor',
157
- 'actress', 'celebrity', 'show', 'performance', 'art',
158
- 'entertainment', 'theater', 'dance', 'festival', 'media'
159
- }
160
- }
161
-
162
- # Compile regex patterns for each topic
163
- self.topic_patterns = {
164
- topic: re.compile(r'\b(' + '|'.join(re.escape(kw) for kw in keywords) + r')\b', re.IGNORECASE)
165
- for topic, keywords in self.topic_keywords.items()
166
- }
167
-
168
- def classify(self, text: str) -> List[Tuple[str, float]]:
169
- """
170
- Classify text into topics with confidence scores.
171
-
172
- Returns:
173
- List of (topic, confidence) tuples, sorted by confidence
174
- """
175
- # Count keyword matches for each topic
176
- topic_matches = {
177
- topic: len(pattern.findall(text))
178
- for topic, pattern in self.topic_patterns.items()
179
- }
180
-
181
- # Calculate confidence scores
182
- total_matches = sum(topic_matches.values()) or 1 # Avoid division by zero
183
- topic_scores = [
184
- (topic, count / total_matches)
185
- for topic, count in topic_matches.items()
186
- ]
187
-
188
- # Sort by score
189
- return sorted(topic_scores, key=lambda x: x[1], reverse=True)