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.
- unrealon/__init__.py +23 -21
- unrealon-1.1.0.dist-info/METADATA +164 -0
- unrealon-1.1.0.dist-info/RECORD +82 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.0.dist-info}/WHEEL +1 -1
- unrealon-1.1.0.dist-info/entry_points.txt +9 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.0.dist-info/licenses}/LICENSE +1 -1
- unrealon_bridge/__init__.py +114 -0
- unrealon_bridge/cli.py +316 -0
- unrealon_bridge/client/__init__.py +93 -0
- unrealon_bridge/client/base.py +78 -0
- unrealon_bridge/client/commands.py +89 -0
- unrealon_bridge/client/connection.py +90 -0
- unrealon_bridge/client/events.py +65 -0
- unrealon_bridge/client/health.py +38 -0
- unrealon_bridge/client/html_parser.py +146 -0
- unrealon_bridge/client/logging.py +139 -0
- unrealon_bridge/client/proxy.py +70 -0
- unrealon_bridge/client/scheduler.py +450 -0
- unrealon_bridge/client/session.py +70 -0
- unrealon_bridge/configs/__init__.py +14 -0
- unrealon_bridge/configs/bridge_config.py +212 -0
- unrealon_bridge/configs/bridge_config.yaml +39 -0
- unrealon_bridge/models/__init__.py +138 -0
- unrealon_bridge/models/base.py +28 -0
- unrealon_bridge/models/command.py +41 -0
- unrealon_bridge/models/events.py +40 -0
- unrealon_bridge/models/html_parser.py +79 -0
- unrealon_bridge/models/logging.py +55 -0
- unrealon_bridge/models/parser.py +63 -0
- unrealon_bridge/models/proxy.py +41 -0
- unrealon_bridge/models/requests.py +95 -0
- unrealon_bridge/models/responses.py +88 -0
- unrealon_bridge/models/scheduler.py +592 -0
- unrealon_bridge/models/session.py +28 -0
- unrealon_bridge/server/__init__.py +91 -0
- unrealon_bridge/server/base.py +171 -0
- unrealon_bridge/server/handlers/__init__.py +23 -0
- unrealon_bridge/server/handlers/command.py +110 -0
- unrealon_bridge/server/handlers/html_parser.py +139 -0
- unrealon_bridge/server/handlers/logging.py +95 -0
- unrealon_bridge/server/handlers/parser.py +95 -0
- unrealon_bridge/server/handlers/proxy.py +75 -0
- unrealon_bridge/server/handlers/scheduler.py +545 -0
- unrealon_bridge/server/handlers/session.py +66 -0
- unrealon_browser/__init__.py +61 -18
- unrealon_browser/{src/cli → cli}/browser_cli.py +6 -13
- unrealon_browser/{src/cli → cli}/cookies_cli.py +5 -1
- unrealon_browser/{src/core → core}/browser_manager.py +2 -2
- unrealon_browser/{src/managers → managers}/captcha.py +1 -1
- unrealon_browser/{src/managers → managers}/cookies.py +1 -1
- unrealon_browser/managers/logger_bridge.py +231 -0
- unrealon_browser/{src/managers → managers}/profile.py +1 -1
- unrealon_driver/__init__.py +73 -19
- unrealon_driver/browser/__init__.py +8 -0
- unrealon_driver/browser/config.py +74 -0
- unrealon_driver/browser/manager.py +416 -0
- unrealon_driver/exceptions.py +28 -0
- unrealon_driver/parser/__init__.py +55 -0
- unrealon_driver/parser/cli_manager.py +141 -0
- unrealon_driver/parser/daemon_manager.py +227 -0
- unrealon_driver/parser/managers/__init__.py +46 -0
- unrealon_driver/parser/managers/browser.py +51 -0
- unrealon_driver/parser/managers/config.py +281 -0
- unrealon_driver/parser/managers/error.py +412 -0
- unrealon_driver/parser/managers/html.py +732 -0
- unrealon_driver/parser/managers/logging.py +609 -0
- unrealon_driver/parser/managers/result.py +321 -0
- unrealon_driver/parser/parser_manager.py +628 -0
- unrealon/sdk_config.py +0 -88
- unrealon-1.0.9.dist-info/METADATA +0 -810
- unrealon-1.0.9.dist-info/RECORD +0 -246
- unrealon_browser/pyproject.toml +0 -182
- unrealon_browser/src/__init__.py +0 -62
- unrealon_browser/src/managers/logger_bridge.py +0 -395
- unrealon_driver/README.md +0 -204
- unrealon_driver/pyproject.toml +0 -187
- unrealon_driver/src/__init__.py +0 -90
- unrealon_driver/src/cli/__init__.py +0 -10
- unrealon_driver/src/cli/main.py +0 -66
- unrealon_driver/src/cli/simple.py +0 -510
- unrealon_driver/src/config/__init__.py +0 -11
- unrealon_driver/src/config/auto_config.py +0 -478
- unrealon_driver/src/core/__init__.py +0 -18
- unrealon_driver/src/core/exceptions.py +0 -289
- unrealon_driver/src/core/parser.py +0 -638
- unrealon_driver/src/dto/__init__.py +0 -66
- unrealon_driver/src/dto/cli.py +0 -119
- unrealon_driver/src/dto/config.py +0 -18
- unrealon_driver/src/dto/events.py +0 -237
- unrealon_driver/src/dto/execution.py +0 -313
- unrealon_driver/src/dto/services.py +0 -311
- unrealon_driver/src/execution/__init__.py +0 -23
- unrealon_driver/src/execution/daemon_mode.py +0 -317
- unrealon_driver/src/execution/interactive_mode.py +0 -88
- unrealon_driver/src/execution/modes.py +0 -45
- unrealon_driver/src/execution/scheduled_mode.py +0 -209
- unrealon_driver/src/execution/test_mode.py +0 -250
- unrealon_driver/src/logging/__init__.py +0 -24
- unrealon_driver/src/logging/driver_logger.py +0 -512
- unrealon_driver/src/services/__init__.py +0 -24
- unrealon_driver/src/services/browser_service.py +0 -726
- unrealon_driver/src/services/llm/__init__.py +0 -15
- unrealon_driver/src/services/llm/browser_llm_service.py +0 -363
- unrealon_driver/src/services/llm/llm.py +0 -195
- unrealon_driver/src/services/logger_service.py +0 -232
- unrealon_driver/src/services/metrics_service.py +0 -185
- unrealon_driver/src/services/scheduler_service.py +0 -489
- unrealon_driver/src/services/websocket_service.py +0 -362
- unrealon_driver/src/utils/__init__.py +0 -16
- unrealon_driver/src/utils/service_factory.py +0 -317
- unrealon_driver/src/utils/time_formatter.py +0 -338
- unrealon_llm/README.md +0 -44
- unrealon_llm/__init__.py +0 -26
- unrealon_llm/pyproject.toml +0 -154
- unrealon_llm/src/__init__.py +0 -228
- unrealon_llm/src/cli/__init__.py +0 -0
- unrealon_llm/src/core/__init__.py +0 -11
- unrealon_llm/src/core/smart_client.py +0 -438
- unrealon_llm/src/dto/__init__.py +0 -155
- unrealon_llm/src/dto/models/__init__.py +0 -0
- unrealon_llm/src/dto/models/config.py +0 -343
- unrealon_llm/src/dto/models/core.py +0 -328
- unrealon_llm/src/dto/models/enums.py +0 -123
- unrealon_llm/src/dto/models/html_analysis.py +0 -345
- unrealon_llm/src/dto/models/statistics.py +0 -473
- unrealon_llm/src/dto/models/translation.py +0 -383
- unrealon_llm/src/dto/models/type_conversion.py +0 -462
- unrealon_llm/src/dto/schemas/__init__.py +0 -0
- unrealon_llm/src/exceptions.py +0 -392
- unrealon_llm/src/llm_config/__init__.py +0 -20
- unrealon_llm/src/llm_config/logging_config.py +0 -178
- unrealon_llm/src/llm_logging/__init__.py +0 -42
- unrealon_llm/src/llm_logging/llm_events.py +0 -107
- unrealon_llm/src/llm_logging/llm_logger.py +0 -466
- unrealon_llm/src/managers/__init__.py +0 -15
- unrealon_llm/src/managers/cache_manager.py +0 -67
- unrealon_llm/src/managers/cost_manager.py +0 -107
- unrealon_llm/src/managers/request_manager.py +0 -298
- unrealon_llm/src/modules/__init__.py +0 -0
- unrealon_llm/src/modules/html_processor/__init__.py +0 -25
- unrealon_llm/src/modules/html_processor/base_processor.py +0 -415
- unrealon_llm/src/modules/html_processor/details_processor.py +0 -85
- unrealon_llm/src/modules/html_processor/listing_processor.py +0 -91
- unrealon_llm/src/modules/html_processor/models/__init__.py +0 -20
- unrealon_llm/src/modules/html_processor/models/processing_models.py +0 -40
- unrealon_llm/src/modules/html_processor/models/universal_model.py +0 -56
- unrealon_llm/src/modules/html_processor/processor.py +0 -102
- unrealon_llm/src/modules/llm/__init__.py +0 -0
- unrealon_llm/src/modules/translator/__init__.py +0 -0
- unrealon_llm/src/provider.py +0 -116
- unrealon_llm/src/utils/__init__.py +0 -95
- unrealon_llm/src/utils/common.py +0 -64
- unrealon_llm/src/utils/data_extractor.py +0 -188
- unrealon_llm/src/utils/html_cleaner.py +0 -767
- unrealon_llm/src/utils/language_detector.py +0 -308
- unrealon_llm/src/utils/models_cache.py +0 -592
- unrealon_llm/src/utils/smart_counter.py +0 -229
- unrealon_llm/src/utils/token_counter.py +0 -189
- unrealon_sdk/README.md +0 -25
- unrealon_sdk/__init__.py +0 -30
- unrealon_sdk/pyproject.toml +0 -231
- unrealon_sdk/src/__init__.py +0 -150
- unrealon_sdk/src/cli/__init__.py +0 -12
- unrealon_sdk/src/cli/commands/__init__.py +0 -22
- unrealon_sdk/src/cli/commands/benchmark.py +0 -42
- unrealon_sdk/src/cli/commands/diagnostics.py +0 -573
- unrealon_sdk/src/cli/commands/health.py +0 -46
- unrealon_sdk/src/cli/commands/integration.py +0 -498
- unrealon_sdk/src/cli/commands/reports.py +0 -43
- unrealon_sdk/src/cli/commands/security.py +0 -36
- unrealon_sdk/src/cli/commands/server.py +0 -483
- unrealon_sdk/src/cli/commands/servers.py +0 -56
- unrealon_sdk/src/cli/commands/tests.py +0 -55
- unrealon_sdk/src/cli/main.py +0 -126
- unrealon_sdk/src/cli/utils/reporter.py +0 -519
- unrealon_sdk/src/clients/openapi.yaml +0 -3347
- unrealon_sdk/src/clients/python_http/__init__.py +0 -3
- unrealon_sdk/src/clients/python_http/api_config.py +0 -228
- unrealon_sdk/src/clients/python_http/models/BaseModel.py +0 -12
- unrealon_sdk/src/clients/python_http/models/BroadcastDeliveryStats.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastMessage.py +0 -17
- unrealon_sdk/src/clients/python_http/models/BroadcastMessageRequest.py +0 -35
- unrealon_sdk/src/clients/python_http/models/BroadcastPriority.py +0 -10
- unrealon_sdk/src/clients/python_http/models/BroadcastResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/BroadcastResultResponse.py +0 -33
- unrealon_sdk/src/clients/python_http/models/BroadcastTarget.py +0 -11
- unrealon_sdk/src/clients/python_http/models/ConnectionStats.py +0 -27
- unrealon_sdk/src/clients/python_http/models/ConnectionsResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/DeveloperMessageResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ErrorResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/HTTPValidationError.py +0 -16
- unrealon_sdk/src/clients/python_http/models/HealthResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/HealthStatus.py +0 -33
- unrealon_sdk/src/clients/python_http/models/LogLevel.py +0 -10
- unrealon_sdk/src/clients/python_http/models/LoggingRequest.py +0 -27
- unrealon_sdk/src/clients/python_http/models/LoggingResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/MaintenanceMode.py +0 -9
- unrealon_sdk/src/clients/python_http/models/MaintenanceModeRequest.py +0 -33
- unrealon_sdk/src/clients/python_http/models/MaintenanceStatusResponse.py +0 -39
- unrealon_sdk/src/clients/python_http/models/ParserCommandRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserMessageResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationRequest.py +0 -28
- unrealon_sdk/src/clients/python_http/models/ParserRegistrationResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ParserType.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyBlockRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyEndpointResponse.py +0 -20
- unrealon_sdk/src/clients/python_http/models/ProxyListResponse.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyProvider.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyPurchaseRequest.py +0 -25
- unrealon_sdk/src/clients/python_http/models/ProxyResponse.py +0 -47
- unrealon_sdk/src/clients/python_http/models/ProxyRotationRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ProxyStatus.py +0 -10
- unrealon_sdk/src/clients/python_http/models/ProxyUsageRequest.py +0 -19
- unrealon_sdk/src/clients/python_http/models/ProxyUsageStatsResponse.py +0 -26
- unrealon_sdk/src/clients/python_http/models/ServiceRegistrationDto.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ServiceStatsResponse.py +0 -31
- unrealon_sdk/src/clients/python_http/models/SessionStartRequest.py +0 -23
- unrealon_sdk/src/clients/python_http/models/SuccessResponse.py +0 -25
- unrealon_sdk/src/clients/python_http/models/SystemNotificationResponse.py +0 -23
- unrealon_sdk/src/clients/python_http/models/ValidationError.py +0 -18
- unrealon_sdk/src/clients/python_http/models/ValidationErrorResponse.py +0 -21
- unrealon_sdk/src/clients/python_http/models/WebSocketMetrics.py +0 -21
- unrealon_sdk/src/clients/python_http/models/__init__.py +0 -44
- unrealon_sdk/src/clients/python_http/services/None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/SocketLogging_service.py +0 -187
- unrealon_sdk/src/clients/python_http/services/SystemHealth_service.py +0 -119
- unrealon_sdk/src/clients/python_http/services/WebSocketAPI_service.py +0 -198
- unrealon_sdk/src/clients/python_http/services/__init__.py +0 -0
- unrealon_sdk/src/clients/python_http/services/admin_service.py +0 -125
- unrealon_sdk/src/clients/python_http/services/async_None_service.py +0 -35
- unrealon_sdk/src/clients/python_http/services/async_ParserManagement_service.py +0 -190
- unrealon_sdk/src/clients/python_http/services/async_ProxyManagement_service.py +0 -289
- unrealon_sdk/src/clients/python_http/services/async_SocketLogging_service.py +0 -189
- unrealon_sdk/src/clients/python_http/services/async_SystemHealth_service.py +0 -123
- unrealon_sdk/src/clients/python_http/services/async_WebSocketAPI_service.py +0 -200
- unrealon_sdk/src/clients/python_http/services/async_admin_service.py +0 -125
- unrealon_sdk/src/clients/python_websocket/__init__.py +0 -28
- unrealon_sdk/src/clients/python_websocket/client.py +0 -490
- unrealon_sdk/src/clients/python_websocket/events.py +0 -732
- unrealon_sdk/src/clients/python_websocket/example.py +0 -136
- unrealon_sdk/src/clients/python_websocket/types.py +0 -871
- unrealon_sdk/src/core/__init__.py +0 -64
- unrealon_sdk/src/core/client.py +0 -556
- unrealon_sdk/src/core/config.py +0 -465
- unrealon_sdk/src/core/exceptions.py +0 -239
- unrealon_sdk/src/core/metadata.py +0 -191
- unrealon_sdk/src/core/models.py +0 -142
- unrealon_sdk/src/core/types.py +0 -68
- unrealon_sdk/src/dto/__init__.py +0 -268
- unrealon_sdk/src/dto/authentication.py +0 -108
- unrealon_sdk/src/dto/cache.py +0 -208
- unrealon_sdk/src/dto/common.py +0 -19
- unrealon_sdk/src/dto/concurrency.py +0 -393
- unrealon_sdk/src/dto/events.py +0 -108
- unrealon_sdk/src/dto/health.py +0 -339
- unrealon_sdk/src/dto/load_balancing.py +0 -336
- unrealon_sdk/src/dto/logging.py +0 -230
- unrealon_sdk/src/dto/performance.py +0 -165
- unrealon_sdk/src/dto/rate_limiting.py +0 -295
- unrealon_sdk/src/dto/resource_pooling.py +0 -128
- unrealon_sdk/src/dto/structured_logging.py +0 -112
- unrealon_sdk/src/dto/task_scheduling.py +0 -121
- unrealon_sdk/src/dto/websocket.py +0 -55
- unrealon_sdk/src/enterprise/__init__.py +0 -59
- unrealon_sdk/src/enterprise/authentication.py +0 -401
- unrealon_sdk/src/enterprise/cache_manager.py +0 -578
- unrealon_sdk/src/enterprise/error_recovery.py +0 -494
- unrealon_sdk/src/enterprise/event_system.py +0 -549
- unrealon_sdk/src/enterprise/health_monitor.py +0 -747
- unrealon_sdk/src/enterprise/load_balancer.py +0 -964
- unrealon_sdk/src/enterprise/logging/__init__.py +0 -68
- unrealon_sdk/src/enterprise/logging/cleanup.py +0 -156
- unrealon_sdk/src/enterprise/logging/development.py +0 -744
- unrealon_sdk/src/enterprise/logging/service.py +0 -410
- unrealon_sdk/src/enterprise/multithreading_manager.py +0 -853
- unrealon_sdk/src/enterprise/performance_monitor.py +0 -539
- unrealon_sdk/src/enterprise/proxy_manager.py +0 -696
- unrealon_sdk/src/enterprise/rate_limiter.py +0 -652
- unrealon_sdk/src/enterprise/resource_pool.py +0 -763
- unrealon_sdk/src/enterprise/task_scheduler.py +0 -709
- unrealon_sdk/src/internal/__init__.py +0 -10
- unrealon_sdk/src/internal/command_router.py +0 -497
- unrealon_sdk/src/internal/connection_manager.py +0 -397
- unrealon_sdk/src/internal/http_client.py +0 -446
- unrealon_sdk/src/internal/websocket_client.py +0 -420
- unrealon_sdk/src/provider.py +0 -471
- unrealon_sdk/src/utils.py +0 -234
- /unrealon_browser/{src/cli → cli}/__init__.py +0 -0
- /unrealon_browser/{src/cli → cli}/interactive_mode.py +0 -0
- /unrealon_browser/{src/cli → cli}/main.py +0 -0
- /unrealon_browser/{src/core → core}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/__init__.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/config.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/core.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/dataclasses.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/detection.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/enums.py +0 -0
- /unrealon_browser/{src/dto → dto}/models/statistics.py +0 -0
- /unrealon_browser/{src/managers → managers}/__init__.py +0 -0
- /unrealon_browser/{src/managers → managers}/stealth.py +0 -0
|
@@ -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,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,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,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")
|