unrealon 1.0.9__py3-none-any.whl → 1.1.0__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.0.dist-info/METADATA +164 -0
  3. unrealon-1.1.0.dist-info/RECORD +82 -0
  4. {unrealon-1.0.9.dist-info → unrealon-1.1.0.dist-info}/WHEEL +1 -1
  5. unrealon-1.1.0.dist-info/entry_points.txt +9 -0
  6. {unrealon-1.0.9.dist-info → unrealon-1.1.0.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,108 +0,0 @@
1
- """
2
- Authentication-related Data Transfer Objects
3
-
4
- Custom DTO models for enterprise authentication system functionality.
5
- These models provide type-safe authentication state and security tracking.
6
- """
7
-
8
- from datetime import datetime, timezone
9
- from typing import Dict, List, Optional, Any
10
- from enum import Enum
11
-
12
- from pydantic import BaseModel, Field, ConfigDict
13
-
14
-
15
- class AuthenticationStatus(str, Enum):
16
- """Authentication status states."""
17
-
18
- UNAUTHENTICATED = "unauthenticated"
19
- AUTHENTICATING = "authenticating"
20
- AUTHENTICATED = "authenticated"
21
- EXPIRED = "expired"
22
- FAILED = "failed"
23
- LOCKED = "locked"
24
-
25
-
26
- class SecurityEventType(str, Enum):
27
- """Security event types for monitoring."""
28
-
29
- LOGIN_SUCCESS = "login_success"
30
- LOGIN_FAILURE = "login_failure"
31
- TOKEN_REFRESH = "token_refresh"
32
- API_KEY_VALIDATION = "api_key_validation"
33
- RATE_LIMIT_EXCEEDED = "rate_limit_exceeded"
34
- SECURITY_BREACH = "security_breach"
35
- ACCOUNT_LOCKED = "account_locked"
36
- SUSPICIOUS_ACTIVITY = "suspicious_activity"
37
-
38
-
39
- class AuthenticationContext(BaseModel):
40
- """
41
- Type-safe authentication context.
42
-
43
- Tracks current authentication state and security metrics
44
- using Pydantic validation instead of Dict[str, Any].
45
- """
46
-
47
- model_config = ConfigDict(validate_assignment=True, extra="forbid")
48
-
49
- # Authentication state
50
- status: AuthenticationStatus = Field(default=AuthenticationStatus.UNAUTHENTICATED)
51
- api_key: Optional[str] = Field(None, description="Masked API key for logging")
52
- access_token: Optional[str] = Field(None, description="Current access token")
53
-
54
- # Session information
55
- session_id: Optional[str] = Field(None, description="Authentication session ID")
56
- parser_id: Optional[str] = Field(None, description="Registered parser ID")
57
- authenticated_at: Optional[datetime] = Field(None, description="Authentication timestamp")
58
- expires_at: Optional[datetime] = Field(None, description="Token expiration time")
59
-
60
- # Security metrics
61
- login_attempts: int = Field(default=0, description="Number of login attempts")
62
- failed_attempts: int = Field(default=0, description="Number of failed attempts")
63
- last_login_attempt: Optional[datetime] = Field(None, description="Last login attempt time")
64
- rate_limit_reset_time: Optional[datetime] = Field(None, description="Rate limit reset time")
65
-
66
- # Environment context
67
- environment: str = Field(default="dev", description="API environment (dev/prod)")
68
- client_info: Dict[str, str] = Field(default_factory=dict, description="Client metadata")
69
-
70
-
71
- class SecurityEvent(BaseModel):
72
- """Security event for audit trails and monitoring."""
73
-
74
- model_config = ConfigDict(validate_assignment=True, extra="forbid")
75
-
76
- event_id: str = Field(..., description="Unique event identifier")
77
- event_type: SecurityEventType = Field(..., description="Type of security event")
78
- timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
79
- session_id: Optional[str] = Field(None, description="Associated session ID")
80
- api_key_hash: Optional[str] = Field(None, description="Hashed API key for privacy")
81
- ip_address: Optional[str] = Field(None, description="Client IP address")
82
- user_agent: Optional[str] = Field(None, description="Client user agent")
83
- success: bool = Field(..., description="Whether the operation succeeded")
84
- error_message: Optional[str] = Field(None, description="Error message if failed")
85
- metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional event data")
86
-
87
-
88
- class RateLimitConfig(BaseModel):
89
- """Rate limiting configuration."""
90
-
91
- model_config = ConfigDict(validate_assignment=True, extra="forbid")
92
-
93
- max_attempts: int = Field(default=5, description="Maximum attempts per window")
94
- window_seconds: int = Field(default=300, description="Rate limit window in seconds")
95
- lockout_duration_seconds: int = Field(default=900, description="Lockout duration")
96
- progressive_delay: bool = Field(default=True, description="Enable progressive delay")
97
-
98
-
99
- __all__ = [
100
- # Enums
101
- "AuthenticationStatus",
102
- "SecurityEventType",
103
-
104
- # Models
105
- "AuthenticationContext",
106
- "SecurityEvent",
107
- "RateLimitConfig",
108
- ]
@@ -1,208 +0,0 @@
1
- """
2
- Cache Management DTOs - Data Transfer Objects for caching system.
3
-
4
- This module contains all Pydantic models and enums related to cache management,
5
- separated from business logic for clean architecture and reusability.
6
-
7
- Components:
8
- - Cache policies and configuration models
9
- - Cache entry and statistics models
10
- - Cache event types and storage levels
11
- - Performance and analytics data structures
12
- """
13
-
14
- import uuid
15
- from datetime import datetime, timezone
16
- from typing import Dict, List, Optional, Any, TypeVar, Generic
17
- from enum import Enum
18
- from dataclasses import dataclass, field
19
-
20
- from pydantic import BaseModel, Field, ConfigDict
21
-
22
- T = TypeVar("T")
23
-
24
-
25
- class CachePolicy(str, Enum):
26
- """Cache eviction policies."""
27
-
28
- LRU = "lru" # Least Recently Used
29
- LFU = "lfu" # Least Frequently Used
30
- FIFO = "fifo" # First In First Out
31
- TTL_ONLY = "ttl_only" # Only TTL-based expiration
32
- SIZE_ONLY = "size_only" # Only size-based eviction
33
-
34
-
35
- class CacheLevel(str, Enum):
36
- """Cache storage levels."""
37
-
38
- MEMORY = "memory" # In-memory cache (fastest)
39
- PERSISTENT = "persistent" # Disk-based cache (slower but persistent)
40
- DISTRIBUTED = "distributed" # Network-distributed cache
41
-
42
-
43
- class CacheEventType(str, Enum):
44
- """Cache-specific event types."""
45
-
46
- CACHE_HIT = "cache_hit"
47
- CACHE_MISS = "cache_miss"
48
- CACHE_SET = "cache_set"
49
- CACHE_DELETE = "cache_delete"
50
- CACHE_EXPIRE = "cache_expire"
51
- CACHE_EVICT = "cache_evict"
52
- CACHE_CLEAR = "cache_clear"
53
- CACHE_WARM = "cache_warm"
54
-
55
-
56
- @dataclass
57
- class CacheEntry(Generic[T]):
58
- """Individual cache entry with metadata."""
59
-
60
- key: str
61
- value: T
62
- created_at: datetime
63
- last_accessed: datetime
64
- access_count: int = 0
65
- ttl_seconds: Optional[float] = None
66
- compressed: bool = False
67
- size_bytes: int = 0
68
-
69
- def is_expired(self) -> bool:
70
- """Check if cache entry is expired."""
71
- if self.ttl_seconds is None:
72
- return False
73
-
74
- age = (datetime.now(timezone.utc) - self.created_at).total_seconds()
75
- return age > self.ttl_seconds
76
-
77
- def touch(self) -> None:
78
- """Update access time and count."""
79
- self.last_accessed = datetime.now(timezone.utc)
80
- self.access_count += 1
81
-
82
-
83
- class CacheStatistics(BaseModel):
84
- """Cache performance statistics."""
85
-
86
- model_config = ConfigDict(extra="forbid")
87
-
88
- # Basic stats
89
- total_requests: int = Field(default=0, description="Total cache requests")
90
- cache_hits: int = Field(default=0, description="Number of cache hits")
91
- cache_misses: int = Field(default=0, description="Number of cache misses")
92
-
93
- # Performance metrics
94
- hit_rate_percent: float = Field(default=0.0, description="Cache hit rate percentage")
95
- avg_access_time_ms: float = Field(default=0.0, description="Average access time")
96
-
97
- # Storage stats
98
- current_size: int = Field(default=0, description="Current number of entries")
99
- max_size: int = Field(default=0, description="Maximum cache size")
100
- memory_usage_bytes: int = Field(default=0, description="Memory usage in bytes")
101
-
102
- # Lifecycle stats
103
- total_sets: int = Field(default=0, description="Total cache sets")
104
- total_deletes: int = Field(default=0, description="Total cache deletes")
105
- total_evictions: int = Field(default=0, description="Total evictions")
106
- total_expirations: int = Field(default=0, description="Total expirations")
107
-
108
- # Time-based metrics
109
- created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
110
- last_reset: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
111
-
112
-
113
- class CacheConfig(BaseModel):
114
- """Cache configuration model."""
115
-
116
- model_config = ConfigDict(extra="forbid")
117
-
118
- # Size limits
119
- max_entries: int = Field(default=10000, description="Maximum number of cache entries")
120
- max_memory_mb: int = Field(default=100, description="Maximum memory usage in MB")
121
-
122
- # TTL settings
123
- default_ttl_seconds: float = Field(default=3600.0, description="Default TTL in seconds")
124
- max_ttl_seconds: float = Field(default=86400.0, description="Maximum TTL in seconds")
125
-
126
- # Eviction policy
127
- eviction_policy: CachePolicy = Field(
128
- default=CachePolicy.LRU, description="Cache eviction policy"
129
- )
130
- eviction_threshold: float = Field(default=0.8, description="Threshold for eviction (0.0-1.0)")
131
-
132
- # Cleanup settings
133
- cleanup_interval_seconds: float = Field(default=300.0, description="Cleanup interval")
134
- compression_enabled: bool = Field(
135
- default=True, description="Enable compression for large objects"
136
- )
137
- compression_threshold_bytes: int = Field(
138
- default=1024, description="Size threshold for compression"
139
- )
140
-
141
- # Performance settings
142
- enable_statistics: bool = Field(default=True, description="Enable cache statistics")
143
- warm_cache_on_startup: bool = Field(default=False, description="Warm cache on startup")
144
-
145
-
146
- class CacheOperation(BaseModel):
147
- """Cache operation tracking model."""
148
-
149
- model_config = ConfigDict(extra="forbid")
150
-
151
- operation_id: str = Field(default_factory=lambda: str(uuid.uuid4()))
152
- operation_type: CacheEventType = Field(..., description="Type of cache operation")
153
- cache_key: str = Field(..., description="Cache key involved")
154
- timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
155
- duration_ms: Optional[float] = Field(
156
- default=None, description="Operation duration in milliseconds"
157
- )
158
- success: bool = Field(default=True, description="Whether operation was successful")
159
- error_message: Optional[str] = Field(default=None, description="Error message if failed")
160
- details: Dict[str, Any] = Field(
161
- default_factory=dict, description="Additional operation details"
162
- )
163
-
164
-
165
- class CacheMetrics(BaseModel):
166
- """Real-time cache metrics model."""
167
-
168
- model_config = ConfigDict(extra="forbid")
169
-
170
- # Performance metrics
171
- avg_get_time_ms: float = Field(default=0.0, description="Average GET operation time")
172
- avg_set_time_ms: float = Field(default=0.0, description="Average SET operation time")
173
- peak_memory_usage_bytes: int = Field(default=0, description="Peak memory usage")
174
-
175
- # Efficiency metrics
176
- hit_rate_last_hour: float = Field(default=0.0, description="Hit rate in last hour")
177
- eviction_rate_per_hour: float = Field(default=0.0, description="Evictions per hour")
178
- compression_ratio: float = Field(default=1.0, description="Average compression ratio")
179
-
180
- # Capacity metrics
181
- memory_utilization_percent: float = Field(
182
- default=0.0, description="Memory utilization percentage"
183
- )
184
- entry_utilization_percent: float = Field(
185
- default=0.0, description="Entry count utilization percentage"
186
- )
187
-
188
- # Recent activity (last 5 minutes)
189
- recent_operations: int = Field(default=0, description="Operations in last 5 minutes")
190
- recent_hits: int = Field(default=0, description="Cache hits in last 5 minutes")
191
- recent_misses: int = Field(default=0, description="Cache misses in last 5 minutes")
192
-
193
- # Timestamp
194
- collected_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
195
-
196
-
197
- __all__ = [
198
- # Enums
199
- "CachePolicy",
200
- "CacheLevel",
201
- "CacheEventType",
202
- # Data models
203
- "CacheEntry",
204
- "CacheStatistics",
205
- "CacheConfig",
206
- "CacheOperation",
207
- "CacheMetrics",
208
- ]
@@ -1,19 +0,0 @@
1
- """
2
- Common Data Transfer Objects
3
-
4
- Shared DTO models used across multiple SDK components.
5
- These are utility DTOs that don't fit into specific categories.
6
- """
7
-
8
- from datetime import datetime
9
- from typing import Any, Dict, List, Optional
10
-
11
- from pydantic import BaseModel, Field, ConfigDict
12
-
13
-
14
- # Placeholder for future common DTOs
15
- # Will be expanded as needed
16
-
17
- __all__: List[str] = [
18
- # Will be populated as common DTOs are added
19
- ]