unrealon 1.0.9__py3-none-any.whl → 1.1.1__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.
Files changed (302) hide show
  1. unrealon/__init__.py +23 -21
  2. unrealon-1.1.1.dist-info/METADATA +722 -0
  3. unrealon-1.1.1.dist-info/RECORD +82 -0
  4. {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info}/WHEEL +1 -1
  5. unrealon-1.1.1.dist-info/entry_points.txt +9 -0
  6. {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info/licenses}/LICENSE +1 -1
  7. unrealon_bridge/__init__.py +114 -0
  8. unrealon_bridge/cli.py +316 -0
  9. unrealon_bridge/client/__init__.py +93 -0
  10. unrealon_bridge/client/base.py +78 -0
  11. unrealon_bridge/client/commands.py +89 -0
  12. unrealon_bridge/client/connection.py +90 -0
  13. unrealon_bridge/client/events.py +65 -0
  14. unrealon_bridge/client/health.py +38 -0
  15. unrealon_bridge/client/html_parser.py +146 -0
  16. unrealon_bridge/client/logging.py +139 -0
  17. unrealon_bridge/client/proxy.py +70 -0
  18. unrealon_bridge/client/scheduler.py +450 -0
  19. unrealon_bridge/client/session.py +70 -0
  20. unrealon_bridge/configs/__init__.py +14 -0
  21. unrealon_bridge/configs/bridge_config.py +212 -0
  22. unrealon_bridge/configs/bridge_config.yaml +39 -0
  23. unrealon_bridge/models/__init__.py +138 -0
  24. unrealon_bridge/models/base.py +28 -0
  25. unrealon_bridge/models/command.py +41 -0
  26. unrealon_bridge/models/events.py +40 -0
  27. unrealon_bridge/models/html_parser.py +79 -0
  28. unrealon_bridge/models/logging.py +55 -0
  29. unrealon_bridge/models/parser.py +63 -0
  30. unrealon_bridge/models/proxy.py +41 -0
  31. unrealon_bridge/models/requests.py +95 -0
  32. unrealon_bridge/models/responses.py +88 -0
  33. unrealon_bridge/models/scheduler.py +592 -0
  34. unrealon_bridge/models/session.py +28 -0
  35. unrealon_bridge/server/__init__.py +91 -0
  36. unrealon_bridge/server/base.py +171 -0
  37. unrealon_bridge/server/handlers/__init__.py +23 -0
  38. unrealon_bridge/server/handlers/command.py +110 -0
  39. unrealon_bridge/server/handlers/html_parser.py +139 -0
  40. unrealon_bridge/server/handlers/logging.py +95 -0
  41. unrealon_bridge/server/handlers/parser.py +95 -0
  42. unrealon_bridge/server/handlers/proxy.py +75 -0
  43. unrealon_bridge/server/handlers/scheduler.py +545 -0
  44. unrealon_bridge/server/handlers/session.py +66 -0
  45. unrealon_browser/__init__.py +61 -18
  46. unrealon_browser/{src/cli → cli}/browser_cli.py +6 -13
  47. unrealon_browser/{src/cli → cli}/cookies_cli.py +5 -1
  48. unrealon_browser/{src/core → core}/browser_manager.py +2 -2
  49. unrealon_browser/{src/managers → managers}/captcha.py +1 -1
  50. unrealon_browser/{src/managers → managers}/cookies.py +1 -1
  51. unrealon_browser/managers/logger_bridge.py +231 -0
  52. unrealon_browser/{src/managers → managers}/profile.py +1 -1
  53. unrealon_driver/__init__.py +73 -19
  54. unrealon_driver/browser/__init__.py +8 -0
  55. unrealon_driver/browser/config.py +74 -0
  56. unrealon_driver/browser/manager.py +416 -0
  57. unrealon_driver/exceptions.py +28 -0
  58. unrealon_driver/parser/__init__.py +55 -0
  59. unrealon_driver/parser/cli_manager.py +141 -0
  60. unrealon_driver/parser/daemon_manager.py +227 -0
  61. unrealon_driver/parser/managers/__init__.py +46 -0
  62. unrealon_driver/parser/managers/browser.py +51 -0
  63. unrealon_driver/parser/managers/config.py +281 -0
  64. unrealon_driver/parser/managers/error.py +412 -0
  65. unrealon_driver/parser/managers/html.py +732 -0
  66. unrealon_driver/parser/managers/logging.py +609 -0
  67. unrealon_driver/parser/managers/result.py +321 -0
  68. unrealon_driver/parser/parser_manager.py +628 -0
  69. unrealon/sdk_config.py +0 -88
  70. unrealon-1.0.9.dist-info/METADATA +0 -810
  71. unrealon-1.0.9.dist-info/RECORD +0 -246
  72. unrealon_browser/pyproject.toml +0 -182
  73. unrealon_browser/src/__init__.py +0 -62
  74. unrealon_browser/src/managers/logger_bridge.py +0 -395
  75. unrealon_driver/README.md +0 -204
  76. unrealon_driver/pyproject.toml +0 -187
  77. unrealon_driver/src/__init__.py +0 -90
  78. unrealon_driver/src/cli/__init__.py +0 -10
  79. unrealon_driver/src/cli/main.py +0 -66
  80. unrealon_driver/src/cli/simple.py +0 -510
  81. unrealon_driver/src/config/__init__.py +0 -11
  82. unrealon_driver/src/config/auto_config.py +0 -478
  83. unrealon_driver/src/core/__init__.py +0 -18
  84. unrealon_driver/src/core/exceptions.py +0 -289
  85. unrealon_driver/src/core/parser.py +0 -638
  86. unrealon_driver/src/dto/__init__.py +0 -66
  87. unrealon_driver/src/dto/cli.py +0 -119
  88. unrealon_driver/src/dto/config.py +0 -18
  89. unrealon_driver/src/dto/events.py +0 -237
  90. unrealon_driver/src/dto/execution.py +0 -313
  91. unrealon_driver/src/dto/services.py +0 -311
  92. unrealon_driver/src/execution/__init__.py +0 -23
  93. unrealon_driver/src/execution/daemon_mode.py +0 -317
  94. unrealon_driver/src/execution/interactive_mode.py +0 -88
  95. unrealon_driver/src/execution/modes.py +0 -45
  96. unrealon_driver/src/execution/scheduled_mode.py +0 -209
  97. unrealon_driver/src/execution/test_mode.py +0 -250
  98. unrealon_driver/src/logging/__init__.py +0 -24
  99. unrealon_driver/src/logging/driver_logger.py +0 -512
  100. unrealon_driver/src/services/__init__.py +0 -24
  101. unrealon_driver/src/services/browser_service.py +0 -726
  102. unrealon_driver/src/services/llm/__init__.py +0 -15
  103. unrealon_driver/src/services/llm/browser_llm_service.py +0 -363
  104. unrealon_driver/src/services/llm/llm.py +0 -195
  105. unrealon_driver/src/services/logger_service.py +0 -232
  106. unrealon_driver/src/services/metrics_service.py +0 -185
  107. unrealon_driver/src/services/scheduler_service.py +0 -489
  108. unrealon_driver/src/services/websocket_service.py +0 -362
  109. unrealon_driver/src/utils/__init__.py +0 -16
  110. unrealon_driver/src/utils/service_factory.py +0 -317
  111. unrealon_driver/src/utils/time_formatter.py +0 -338
  112. unrealon_llm/README.md +0 -44
  113. unrealon_llm/__init__.py +0 -26
  114. unrealon_llm/pyproject.toml +0 -154
  115. unrealon_llm/src/__init__.py +0 -228
  116. unrealon_llm/src/cli/__init__.py +0 -0
  117. unrealon_llm/src/core/__init__.py +0 -11
  118. unrealon_llm/src/core/smart_client.py +0 -438
  119. unrealon_llm/src/dto/__init__.py +0 -155
  120. unrealon_llm/src/dto/models/__init__.py +0 -0
  121. unrealon_llm/src/dto/models/config.py +0 -343
  122. unrealon_llm/src/dto/models/core.py +0 -328
  123. unrealon_llm/src/dto/models/enums.py +0 -123
  124. unrealon_llm/src/dto/models/html_analysis.py +0 -345
  125. unrealon_llm/src/dto/models/statistics.py +0 -473
  126. unrealon_llm/src/dto/models/translation.py +0 -383
  127. unrealon_llm/src/dto/models/type_conversion.py +0 -462
  128. unrealon_llm/src/dto/schemas/__init__.py +0 -0
  129. unrealon_llm/src/exceptions.py +0 -392
  130. unrealon_llm/src/llm_config/__init__.py +0 -20
  131. unrealon_llm/src/llm_config/logging_config.py +0 -178
  132. unrealon_llm/src/llm_logging/__init__.py +0 -42
  133. unrealon_llm/src/llm_logging/llm_events.py +0 -107
  134. unrealon_llm/src/llm_logging/llm_logger.py +0 -466
  135. unrealon_llm/src/managers/__init__.py +0 -15
  136. unrealon_llm/src/managers/cache_manager.py +0 -67
  137. unrealon_llm/src/managers/cost_manager.py +0 -107
  138. unrealon_llm/src/managers/request_manager.py +0 -298
  139. unrealon_llm/src/modules/__init__.py +0 -0
  140. unrealon_llm/src/modules/html_processor/__init__.py +0 -25
  141. unrealon_llm/src/modules/html_processor/base_processor.py +0 -415
  142. unrealon_llm/src/modules/html_processor/details_processor.py +0 -85
  143. unrealon_llm/src/modules/html_processor/listing_processor.py +0 -91
  144. unrealon_llm/src/modules/html_processor/models/__init__.py +0 -20
  145. unrealon_llm/src/modules/html_processor/models/processing_models.py +0 -40
  146. unrealon_llm/src/modules/html_processor/models/universal_model.py +0 -56
  147. unrealon_llm/src/modules/html_processor/processor.py +0 -102
  148. unrealon_llm/src/modules/llm/__init__.py +0 -0
  149. unrealon_llm/src/modules/translator/__init__.py +0 -0
  150. unrealon_llm/src/provider.py +0 -116
  151. unrealon_llm/src/utils/__init__.py +0 -95
  152. unrealon_llm/src/utils/common.py +0 -64
  153. unrealon_llm/src/utils/data_extractor.py +0 -188
  154. unrealon_llm/src/utils/html_cleaner.py +0 -767
  155. unrealon_llm/src/utils/language_detector.py +0 -308
  156. unrealon_llm/src/utils/models_cache.py +0 -592
  157. unrealon_llm/src/utils/smart_counter.py +0 -229
  158. unrealon_llm/src/utils/token_counter.py +0 -189
  159. unrealon_sdk/README.md +0 -25
  160. unrealon_sdk/__init__.py +0 -30
  161. unrealon_sdk/pyproject.toml +0 -231
  162. unrealon_sdk/src/__init__.py +0 -150
  163. unrealon_sdk/src/cli/__init__.py +0 -12
  164. unrealon_sdk/src/cli/commands/__init__.py +0 -22
  165. unrealon_sdk/src/cli/commands/benchmark.py +0 -42
  166. unrealon_sdk/src/cli/commands/diagnostics.py +0 -573
  167. unrealon_sdk/src/cli/commands/health.py +0 -46
  168. unrealon_sdk/src/cli/commands/integration.py +0 -498
  169. unrealon_sdk/src/cli/commands/reports.py +0 -43
  170. unrealon_sdk/src/cli/commands/security.py +0 -36
  171. unrealon_sdk/src/cli/commands/server.py +0 -483
  172. unrealon_sdk/src/cli/commands/servers.py +0 -56
  173. unrealon_sdk/src/cli/commands/tests.py +0 -55
  174. unrealon_sdk/src/cli/main.py +0 -126
  175. unrealon_sdk/src/cli/utils/reporter.py +0 -519
  176. unrealon_sdk/src/clients/openapi.yaml +0 -3347
  177. unrealon_sdk/src/clients/python_http/__init__.py +0 -3
  178. unrealon_sdk/src/clients/python_http/api_config.py +0 -228
  179. unrealon_sdk/src/clients/python_http/models/BaseModel.py +0 -12
  180. unrealon_sdk/src/clients/python_http/models/BroadcastDeliveryStats.py +0 -33
  181. unrealon_sdk/src/clients/python_http/models/BroadcastMessage.py +0 -17
  182. unrealon_sdk/src/clients/python_http/models/BroadcastMessageRequest.py +0 -35
  183. unrealon_sdk/src/clients/python_http/models/BroadcastPriority.py +0 -10
  184. unrealon_sdk/src/clients/python_http/models/BroadcastResponse.py +0 -21
  185. unrealon_sdk/src/clients/python_http/models/BroadcastResultResponse.py +0 -33
  186. unrealon_sdk/src/clients/python_http/models/BroadcastTarget.py +0 -11
  187. unrealon_sdk/src/clients/python_http/models/ConnectionStats.py +0 -27
  188. unrealon_sdk/src/clients/python_http/models/ConnectionsResponse.py +0 -21
  189. unrealon_sdk/src/clients/python_http/models/DeveloperMessageResponse.py +0 -23
  190. unrealon_sdk/src/clients/python_http/models/ErrorResponse.py +0 -25
  191. unrealon_sdk/src/clients/python_http/models/HTTPValidationError.py +0 -16
  192. unrealon_sdk/src/clients/python_http/models/HealthResponse.py +0 -23
  193. unrealon_sdk/src/clients/python_http/models/HealthStatus.py +0 -33
  194. unrealon_sdk/src/clients/python_http/models/LogLevel.py +0 -10
  195. unrealon_sdk/src/clients/python_http/models/LoggingRequest.py +0 -27
  196. unrealon_sdk/src/clients/python_http/models/LoggingResponse.py +0 -23
  197. unrealon_sdk/src/clients/python_http/models/MaintenanceMode.py +0 -9
  198. unrealon_sdk/src/clients/python_http/models/MaintenanceModeRequest.py +0 -33
  199. unrealon_sdk/src/clients/python_http/models/MaintenanceStatusResponse.py +0 -39
  200. unrealon_sdk/src/clients/python_http/models/ParserCommandRequest.py +0 -25
  201. unrealon_sdk/src/clients/python_http/models/ParserMessageResponse.py +0 -21
  202. unrealon_sdk/src/clients/python_http/models/ParserRegistrationRequest.py +0 -28
  203. unrealon_sdk/src/clients/python_http/models/ParserRegistrationResponse.py +0 -25
  204. unrealon_sdk/src/clients/python_http/models/ParserType.py +0 -10
  205. unrealon_sdk/src/clients/python_http/models/ProxyBlockRequest.py +0 -19
  206. unrealon_sdk/src/clients/python_http/models/ProxyEndpointResponse.py +0 -20
  207. unrealon_sdk/src/clients/python_http/models/ProxyListResponse.py +0 -19
  208. unrealon_sdk/src/clients/python_http/models/ProxyProvider.py +0 -10
  209. unrealon_sdk/src/clients/python_http/models/ProxyPurchaseRequest.py +0 -25
  210. unrealon_sdk/src/clients/python_http/models/ProxyResponse.py +0 -47
  211. unrealon_sdk/src/clients/python_http/models/ProxyRotationRequest.py +0 -23
  212. unrealon_sdk/src/clients/python_http/models/ProxyStatus.py +0 -10
  213. unrealon_sdk/src/clients/python_http/models/ProxyUsageRequest.py +0 -19
  214. unrealon_sdk/src/clients/python_http/models/ProxyUsageStatsResponse.py +0 -26
  215. unrealon_sdk/src/clients/python_http/models/ServiceRegistrationDto.py +0 -23
  216. unrealon_sdk/src/clients/python_http/models/ServiceStatsResponse.py +0 -31
  217. unrealon_sdk/src/clients/python_http/models/SessionStartRequest.py +0 -23
  218. unrealon_sdk/src/clients/python_http/models/SuccessResponse.py +0 -25
  219. unrealon_sdk/src/clients/python_http/models/SystemNotificationResponse.py +0 -23
  220. unrealon_sdk/src/clients/python_http/models/ValidationError.py +0 -18
  221. unrealon_sdk/src/clients/python_http/models/ValidationErrorResponse.py +0 -21
  222. unrealon_sdk/src/clients/python_http/models/WebSocketMetrics.py +0 -21
  223. unrealon_sdk/src/clients/python_http/models/__init__.py +0 -44
  224. unrealon_sdk/src/clients/python_http/services/None_service.py +0 -35
  225. unrealon_sdk/src/clients/python_http/services/ParserManagement_service.py +0 -190
  226. unrealon_sdk/src/clients/python_http/services/ProxyManagement_service.py +0 -289
  227. unrealon_sdk/src/clients/python_http/services/SocketLogging_service.py +0 -187
  228. unrealon_sdk/src/clients/python_http/services/SystemHealth_service.py +0 -119
  229. unrealon_sdk/src/clients/python_http/services/WebSocketAPI_service.py +0 -198
  230. unrealon_sdk/src/clients/python_http/services/__init__.py +0 -0
  231. unrealon_sdk/src/clients/python_http/services/admin_service.py +0 -125
  232. unrealon_sdk/src/clients/python_http/services/async_None_service.py +0 -35
  233. unrealon_sdk/src/clients/python_http/services/async_ParserManagement_service.py +0 -190
  234. unrealon_sdk/src/clients/python_http/services/async_ProxyManagement_service.py +0 -289
  235. unrealon_sdk/src/clients/python_http/services/async_SocketLogging_service.py +0 -189
  236. unrealon_sdk/src/clients/python_http/services/async_SystemHealth_service.py +0 -123
  237. unrealon_sdk/src/clients/python_http/services/async_WebSocketAPI_service.py +0 -200
  238. unrealon_sdk/src/clients/python_http/services/async_admin_service.py +0 -125
  239. unrealon_sdk/src/clients/python_websocket/__init__.py +0 -28
  240. unrealon_sdk/src/clients/python_websocket/client.py +0 -490
  241. unrealon_sdk/src/clients/python_websocket/events.py +0 -732
  242. unrealon_sdk/src/clients/python_websocket/example.py +0 -136
  243. unrealon_sdk/src/clients/python_websocket/types.py +0 -871
  244. unrealon_sdk/src/core/__init__.py +0 -64
  245. unrealon_sdk/src/core/client.py +0 -556
  246. unrealon_sdk/src/core/config.py +0 -465
  247. unrealon_sdk/src/core/exceptions.py +0 -239
  248. unrealon_sdk/src/core/metadata.py +0 -191
  249. unrealon_sdk/src/core/models.py +0 -142
  250. unrealon_sdk/src/core/types.py +0 -68
  251. unrealon_sdk/src/dto/__init__.py +0 -268
  252. unrealon_sdk/src/dto/authentication.py +0 -108
  253. unrealon_sdk/src/dto/cache.py +0 -208
  254. unrealon_sdk/src/dto/common.py +0 -19
  255. unrealon_sdk/src/dto/concurrency.py +0 -393
  256. unrealon_sdk/src/dto/events.py +0 -108
  257. unrealon_sdk/src/dto/health.py +0 -339
  258. unrealon_sdk/src/dto/load_balancing.py +0 -336
  259. unrealon_sdk/src/dto/logging.py +0 -230
  260. unrealon_sdk/src/dto/performance.py +0 -165
  261. unrealon_sdk/src/dto/rate_limiting.py +0 -295
  262. unrealon_sdk/src/dto/resource_pooling.py +0 -128
  263. unrealon_sdk/src/dto/structured_logging.py +0 -112
  264. unrealon_sdk/src/dto/task_scheduling.py +0 -121
  265. unrealon_sdk/src/dto/websocket.py +0 -55
  266. unrealon_sdk/src/enterprise/__init__.py +0 -59
  267. unrealon_sdk/src/enterprise/authentication.py +0 -401
  268. unrealon_sdk/src/enterprise/cache_manager.py +0 -578
  269. unrealon_sdk/src/enterprise/error_recovery.py +0 -494
  270. unrealon_sdk/src/enterprise/event_system.py +0 -549
  271. unrealon_sdk/src/enterprise/health_monitor.py +0 -747
  272. unrealon_sdk/src/enterprise/load_balancer.py +0 -964
  273. unrealon_sdk/src/enterprise/logging/__init__.py +0 -68
  274. unrealon_sdk/src/enterprise/logging/cleanup.py +0 -156
  275. unrealon_sdk/src/enterprise/logging/development.py +0 -744
  276. unrealon_sdk/src/enterprise/logging/service.py +0 -410
  277. unrealon_sdk/src/enterprise/multithreading_manager.py +0 -853
  278. unrealon_sdk/src/enterprise/performance_monitor.py +0 -539
  279. unrealon_sdk/src/enterprise/proxy_manager.py +0 -696
  280. unrealon_sdk/src/enterprise/rate_limiter.py +0 -652
  281. unrealon_sdk/src/enterprise/resource_pool.py +0 -763
  282. unrealon_sdk/src/enterprise/task_scheduler.py +0 -709
  283. unrealon_sdk/src/internal/__init__.py +0 -10
  284. unrealon_sdk/src/internal/command_router.py +0 -497
  285. unrealon_sdk/src/internal/connection_manager.py +0 -397
  286. unrealon_sdk/src/internal/http_client.py +0 -446
  287. unrealon_sdk/src/internal/websocket_client.py +0 -420
  288. unrealon_sdk/src/provider.py +0 -471
  289. unrealon_sdk/src/utils.py +0 -234
  290. /unrealon_browser/{src/cli → cli}/__init__.py +0 -0
  291. /unrealon_browser/{src/cli → cli}/interactive_mode.py +0 -0
  292. /unrealon_browser/{src/cli → cli}/main.py +0 -0
  293. /unrealon_browser/{src/core → core}/__init__.py +0 -0
  294. /unrealon_browser/{src/dto → dto}/__init__.py +0 -0
  295. /unrealon_browser/{src/dto → dto}/models/config.py +0 -0
  296. /unrealon_browser/{src/dto → dto}/models/core.py +0 -0
  297. /unrealon_browser/{src/dto → dto}/models/dataclasses.py +0 -0
  298. /unrealon_browser/{src/dto → dto}/models/detection.py +0 -0
  299. /unrealon_browser/{src/dto → dto}/models/enums.py +0 -0
  300. /unrealon_browser/{src/dto → dto}/models/statistics.py +0 -0
  301. /unrealon_browser/{src/managers → managers}/__init__.py +0 -0
  302. /unrealon_browser/{src/managers → managers}/stealth.py +0 -0
@@ -1,3 +0,0 @@
1
- from .api_config import *
2
- from .models import *
3
- from .services import *
@@ -1,228 +0,0 @@
1
- from typing import Optional, Union
2
- import os
3
- from threading import Lock
4
-
5
- from pydantic import BaseModel, Field
6
-
7
-
8
- class APIConfig(BaseModel):
9
- """
10
- Global API configuration with thread-safe global state management.
11
-
12
- Supports both instance-based and global configuration for convenience.
13
- """
14
-
15
- model_config = {"validate_assignment": True}
16
-
17
- base_path: str = Field(default="http://localhost:8000", description="API base URL")
18
- verify: Union[bool, str] = Field(default=True, description="SSL verification")
19
- access_token: Optional[str] = Field(default=None, description="Bearer token for authentication")
20
-
21
- def get_access_token(self) -> Optional[str]:
22
- """Get access token, falling back to global config if not set."""
23
- return self.access_token or _global_config.access_token
24
-
25
- def set_access_token(self, value: str):
26
- """Set access token for this instance."""
27
- self.access_token = value
28
-
29
- def get_base_path(self) -> str:
30
- """Get base path, falling back to global config if needed."""
31
- return self.base_path or _global_config.base_path
32
-
33
-
34
- class GlobalAPIConfig:
35
- """
36
- Thread-safe global API configuration singleton.
37
-
38
- Allows setting API configuration once for all generated API calls.
39
- """
40
-
41
- def __init__(self):
42
- self._lock = Lock()
43
- self._access_token: Optional[str] = None
44
- self._base_path: str = "http://localhost:8000"
45
- self._verify: Union[bool, str] = True
46
-
47
- # Auto-load from environment
48
- self._load_from_environment()
49
-
50
- def _load_from_environment(self):
51
- """Load configuration from environment variables."""
52
- # Try multiple common environment variable names
53
- env_token = (
54
- os.getenv("UNREALON_API_KEY") or
55
- os.getenv("API_KEY") or
56
- os.getenv("BEARER_TOKEN") or
57
- os.getenv("ACCESS_TOKEN")
58
- )
59
-
60
- if env_token:
61
- self._access_token = env_token
62
-
63
- env_base_url = (
64
- os.getenv("UNREALON_API_URL") or
65
- os.getenv("API_BASE_URL") or
66
- os.getenv("BASE_URL")
67
- )
68
-
69
- if env_base_url:
70
- self._base_path = env_base_url
71
-
72
- @property
73
- def access_token(self) -> Optional[str]:
74
- """Thread-safe access to global access token."""
75
- with self._lock:
76
- return self._access_token
77
-
78
- @access_token.setter
79
- def access_token(self, value: str):
80
- """Thread-safe setting of global access token."""
81
- with self._lock:
82
- self._access_token = value
83
-
84
- @property
85
- def base_path(self) -> str:
86
- """Thread-safe access to global base path."""
87
- with self._lock:
88
- return self._base_path
89
-
90
- @base_path.setter
91
- def base_path(self, value: str):
92
- """Thread-safe setting of global base path."""
93
- with self._lock:
94
- self._base_path = value
95
-
96
- @property
97
- def verify(self) -> Union[bool, str]:
98
- """Thread-safe access to global verify setting."""
99
- with self._lock:
100
- return self._verify
101
-
102
- @verify.setter
103
- def verify(self, value: Union[bool, str]):
104
- """Thread-safe setting of global verify setting."""
105
- with self._lock:
106
- self._verify = value
107
-
108
- def configure(self,
109
- access_token: Optional[str] = None,
110
- base_path: Optional[str] = None,
111
- verify: Optional[Union[bool, str]] = None):
112
- """
113
- Configure global API settings in one call.
114
-
115
- Args:
116
- access_token: Bearer token for authentication
117
- base_path: API base URL
118
- verify: SSL verification setting
119
- """
120
- with self._lock:
121
- if access_token is not None:
122
- self._access_token = access_token
123
- if base_path is not None:
124
- self._base_path = base_path
125
- if verify is not None:
126
- self._verify = verify
127
-
128
- def get_config(self) -> APIConfig:
129
- """
130
- Get current global configuration as APIConfig instance.
131
-
132
- Returns:
133
- APIConfig: Current global configuration
134
- """
135
- with self._lock:
136
- return APIConfig(
137
- base_path=self._base_path,
138
- verify=self._verify,
139
- access_token=self._access_token
140
- )
141
-
142
- def reset(self):
143
- """Reset to default configuration."""
144
- with self._lock:
145
- self._access_token = None
146
- self._base_path = "http://localhost:8000"
147
- self._verify = True
148
- self._load_from_environment()
149
-
150
-
151
- # Global configuration singleton
152
- _global_config = GlobalAPIConfig()
153
-
154
-
155
- def set_global_api_key(api_key: str):
156
- """
157
- Convenience function to set global API key.
158
-
159
- Args:
160
- api_key: Bearer token for authentication
161
-
162
- Example:
163
- from unrealon_sdk.clients.python_http.api_config import set_global_api_key
164
- set_global_api_key("up_dev_your_api_key_here")
165
- """
166
- _global_config.access_token = api_key
167
-
168
-
169
- def set_global_base_url(base_url: str):
170
- """
171
- Convenience function to set global base URL.
172
-
173
- Args:
174
- base_url: API base URL
175
-
176
- Example:
177
- from unrealon_sdk.clients.python_http.api_config import set_global_base_url
178
- set_global_base_url("https://api.example.com")
179
- """
180
- _global_config.base_path = base_url
181
-
182
-
183
- def configure_global_api(api_key: str, base_url: Optional[str] = None, verify: Optional[Union[bool, str]] = None):
184
- """
185
- Convenience function to configure global API settings.
186
-
187
- Args:
188
- api_key: Bearer token for authentication
189
- base_url: API base URL (optional)
190
- verify: SSL verification setting (optional)
191
-
192
- Example:
193
- from unrealon_sdk.clients.python_http.api_config import configure_global_api
194
- configure_global_api("up_dev_your_api_key_here", "https://api.example.com")
195
- """
196
- _global_config.configure(access_token=api_key, base_path=base_url, verify=verify)
197
-
198
-
199
- def get_global_config() -> APIConfig:
200
- """
201
- Get current global API configuration.
202
-
203
- Returns:
204
- APIConfig: Current global configuration
205
-
206
- Example:
207
- from unrealon_sdk.clients.python_http.api_config import get_global_config
208
- config = get_global_config()
209
- print(f"Current API key: {config.get_access_token()}")
210
- """
211
- return _global_config.get_config()
212
-
213
-
214
- class HTTPException(Exception):
215
- """HTTP exception for API errors."""
216
-
217
- def __init__(self, status_code: int, message: str):
218
- self.status_code = status_code
219
- self.message = message
220
- super().__init__(f"{status_code} {message}")
221
-
222
- def __str__(self):
223
- return f"{self.status_code} {self.message}"
224
-
225
-
226
- # Auto-configure from environment on import
227
- # This allows zero-configuration usage if environment variables are set
228
- _global_config._load_from_environment()
@@ -1,12 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class BaseModel(BaseModel):
7
- """
8
- BaseModel model
9
-
10
- """
11
-
12
- model_config = {"populate_by_name": True, "validate_assignment": True}
@@ -1,33 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class BroadcastDeliveryStats(BaseModel):
7
- """
8
- BroadcastDeliveryStats model
9
- Broadcast delivery statistics.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- data: Optional[Union[Dict[str, Any]]] = Field(validation_alias="data", default=None)
16
-
17
- delivered: int = Field(validation_alias="delivered")
18
-
19
- delivery_rate: float = Field(validation_alias="delivery_rate")
20
-
21
- failed: int = Field(validation_alias="failed")
22
-
23
- message: str = Field(validation_alias="message")
24
-
25
- pending: int = Field(validation_alias="pending")
26
-
27
- request_id: Optional[str] = Field(validation_alias="request_id", default=None)
28
-
29
- success: Optional[bool] = Field(validation_alias="success", default=None)
30
-
31
- timestamp: Optional[str] = Field(validation_alias="timestamp", default=None)
32
-
33
- total_targeted: int = Field(validation_alias="total_targeted")
@@ -1,17 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class BroadcastMessage(BaseModel):
7
- """
8
- BroadcastMessage model
9
- Message to broadcast to a room.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- data: Dict[str, Any] = Field(validation_alias="data")
16
-
17
- event: Optional[str] = Field(validation_alias="event", default=None)
@@ -1,35 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class BroadcastMessageRequest(BaseModel):
7
- """
8
- BroadcastMessageRequest model
9
- Request to broadcast message to users.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- admin_context: Optional[Union[Dict[str, Any]]] = Field(validation_alias="admin_context", default=None)
16
-
17
- expires_at: Optional[str] = Field(validation_alias="expires_at", default=None)
18
-
19
- message: str = Field(validation_alias="message")
20
-
21
- metadata: Optional[Dict[str, Any]] = Field(validation_alias="metadata", default=None)
22
-
23
- persistent: Optional[bool] = Field(validation_alias="persistent", default=None)
24
-
25
- priority: Optional[Any] = Field(validation_alias="priority", default=None)
26
-
27
- request_id: Optional[str] = Field(validation_alias="request_id", default=None)
28
-
29
- target: Optional[Any] = Field(validation_alias="target", default=None)
30
-
31
- target_room: Optional[str] = Field(validation_alias="target_room", default=None)
32
-
33
- target_users: Optional[Union[List[str]]] = Field(validation_alias="target_users", default=None)
34
-
35
- title: Optional[str] = Field(validation_alias="title", default=None)
@@ -1,10 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class BroadcastPriority(str, Enum):
5
-
6
- LOW = "low"
7
- NORMAL = "normal"
8
- HIGH = "high"
9
- URGENT = "urgent"
10
- CRITICAL = "critical"
@@ -1,21 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class BroadcastResponse(BaseModel):
7
- """
8
- BroadcastResponse model
9
- Response model for broadcast operations.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- event: str = Field(validation_alias="event")
16
-
17
- message_sent: bool = Field(validation_alias="message_sent")
18
-
19
- room: str = Field(validation_alias="room")
20
-
21
- success: bool = Field(validation_alias="success")
@@ -1,33 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
- from .BroadcastDeliveryStats import BroadcastDeliveryStats
6
-
7
-
8
- class BroadcastResultResponse(BaseModel):
9
- """
10
- BroadcastResultResponse model
11
- Response from broadcast operation.
12
-
13
- """
14
-
15
- model_config = {"populate_by_name": True, "validate_assignment": True}
16
-
17
- broadcast_id: str = Field(validation_alias="broadcast_id")
18
-
19
- data: Optional[Union[Dict[str, Any]]] = Field(validation_alias="data", default=None)
20
-
21
- delivery_stats: BroadcastDeliveryStats = Field(validation_alias="delivery_stats")
22
-
23
- estimated_delivery_time: Optional[str] = Field(validation_alias="estimated_delivery_time", default=None)
24
-
25
- message: str = Field(validation_alias="message")
26
-
27
- request_id: Optional[str] = Field(validation_alias="request_id", default=None)
28
-
29
- success: Optional[bool] = Field(validation_alias="success", default=None)
30
-
31
- target_info: Dict[str, Any] = Field(validation_alias="target_info")
32
-
33
- timestamp: Optional[str] = Field(validation_alias="timestamp", default=None)
@@ -1,11 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class BroadcastTarget(str, Enum):
5
-
6
- ALL_USERS = "all_users"
7
- ADMINS_ONLY = "admins_only"
8
- DEVELOPERS_ONLY = "developers_only"
9
- PARSERS_ONLY = "parsers_only"
10
- SPECIFIC_ROOM = "specific_room"
11
- SPECIFIC_USERS = "specific_users"
@@ -1,27 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
- from .WebSocketMetrics import WebSocketMetrics
6
-
7
-
8
- class ConnectionStats(BaseModel):
9
- """
10
- ConnectionStats model
11
- Pydantic model for WebSocket connection statistics.
12
-
13
- """
14
-
15
- model_config = {"populate_by_name": True, "validate_assignment": True}
16
-
17
- active_rooms: int = Field(validation_alias="active_rooms")
18
-
19
- client_connections: int = Field(validation_alias="client_connections")
20
-
21
- max_connections: int = Field(validation_alias="max_connections")
22
-
23
- metrics: Optional[WebSocketMetrics] = Field(validation_alias="metrics", default=None)
24
-
25
- parser_connections: int = Field(validation_alias="parser_connections")
26
-
27
- total_connections: int = Field(validation_alias="total_connections")
@@ -1,21 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class ConnectionsResponse(BaseModel):
7
- """
8
- ConnectionsResponse model
9
- Response model for connections information.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- connected_developers: List[str] = Field(validation_alias="connected_developers")
16
-
17
- connected_parsers: List[str] = Field(validation_alias="connected_parsers")
18
-
19
- total_developers: int = Field(validation_alias="total_developers")
20
-
21
- total_parsers: int = Field(validation_alias="total_parsers")
@@ -1,23 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class DeveloperMessageResponse(BaseModel):
7
- """
8
- DeveloperMessageResponse model
9
- Response model for developer message operations.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- developer_id: str = Field(validation_alias="developer_id")
16
-
17
- event: str = Field(validation_alias="event")
18
-
19
- message_sent: bool = Field(validation_alias="message_sent")
20
-
21
- sessions_reached: int = Field(validation_alias="sessions_reached")
22
-
23
- success: bool = Field(validation_alias="success")
@@ -1,25 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class ErrorResponse(BaseModel):
7
- """
8
- ErrorResponse model
9
- Standard error response model.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- details: Optional[Union[Dict[str, Any]]] = Field(validation_alias="details", default=None)
16
-
17
- error: str = Field(validation_alias="error")
18
-
19
- error_code: Optional[str] = Field(validation_alias="error_code", default=None)
20
-
21
- message: Optional[str] = Field(validation_alias="message", default=None)
22
-
23
- success: Optional[bool] = Field(validation_alias="success", default=None)
24
-
25
- timestamp: Optional[str] = Field(validation_alias="timestamp", default=None)
@@ -1,16 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
- from .ValidationError import ValidationError
6
-
7
-
8
- class HTTPValidationError(BaseModel):
9
- """
10
- HTTPValidationError model
11
-
12
- """
13
-
14
- model_config = {"populate_by_name": True, "validate_assignment": True}
15
-
16
- detail: Optional[List[Optional[ValidationError]]] = Field(validation_alias="detail", default=None)
@@ -1,23 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class HealthResponse(BaseModel):
7
- """
8
- HealthResponse model
9
- Health check response model.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- components: Optional[Union[Dict[str, Any]]] = Field(validation_alias="components", default=None)
16
-
17
- service: str = Field(validation_alias="service")
18
-
19
- status: str = Field(validation_alias="status")
20
-
21
- timestamp: str = Field(validation_alias="timestamp")
22
-
23
- version: str = Field(validation_alias="version")
@@ -1,33 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
- from .WebSocketMetrics import WebSocketMetrics
6
-
7
-
8
- class HealthStatus(BaseModel):
9
- """
10
- HealthStatus model
11
- Pydantic model for WebSocket service health status.
12
-
13
- """
14
-
15
- model_config = {"populate_by_name": True, "validate_assignment": True}
16
-
17
- active_connections: int = Field(validation_alias="active_connections")
18
-
19
- active_rooms: int = Field(validation_alias="active_rooms")
20
-
21
- connected_developers: int = Field(validation_alias="connected_developers")
22
-
23
- connected_parsers: int = Field(validation_alias="connected_parsers")
24
-
25
- error: Optional[str] = Field(validation_alias="error", default=None)
26
-
27
- max_connections: int = Field(validation_alias="max_connections")
28
-
29
- metrics: Optional[WebSocketMetrics] = Field(validation_alias="metrics", default=None)
30
-
31
- status: str = Field(validation_alias="status")
32
-
33
- websocket_server: Optional[str] = Field(validation_alias="websocket_server", default=None)
@@ -1,10 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class LogLevel(str, Enum):
5
-
6
- DEBUG = "debug"
7
- INFO = "info"
8
- WARNING = "warning"
9
- ERROR = "error"
10
- CRITICAL = "critical"
@@ -1,27 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
- from .LogLevel import LogLevel
6
-
7
-
8
- class LoggingRequest(BaseModel):
9
- """
10
- LoggingRequest model
11
- Request for logging operation.
12
-
13
- """
14
-
15
- model_config = {"populate_by_name": True, "validate_assignment": True}
16
-
17
- context: Optional[Dict[str, Any]] = Field(validation_alias="context", default=None)
18
-
19
- level: LogLevel = Field(validation_alias="level")
20
-
21
- message: str = Field(validation_alias="message")
22
-
23
- session_id: Optional[str] = Field(validation_alias="session_id", default=None)
24
-
25
- source: str = Field(validation_alias="source")
26
-
27
- tags: Optional[List[str]] = Field(validation_alias="tags", default=None)
@@ -1,23 +0,0 @@
1
- from typing import *
2
-
3
- from pydantic import BaseModel, Field
4
-
5
-
6
- class LoggingResponse(BaseModel):
7
- """
8
- LoggingResponse model
9
- Response from logging operation.
10
-
11
- """
12
-
13
- model_config = {"populate_by_name": True, "validate_assignment": True}
14
-
15
- entry_id: Optional[str] = Field(validation_alias="entry_id", default=None)
16
-
17
- error: Optional[str] = Field(validation_alias="error", default=None)
18
-
19
- message: str = Field(validation_alias="message")
20
-
21
- session_id: str = Field(validation_alias="session_id")
22
-
23
- success: bool = Field(validation_alias="success")
@@ -1,9 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class MaintenanceMode(str, Enum):
5
-
6
- FULL_SYSTEM = "full_system"
7
- READ_ONLY = "read_only"
8
- PARTIAL_SERVICE = "partial_service"
9
- SCHEDULED_RESTART = "scheduled_restart"