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.
- unrealon/__init__.py +23 -21
- unrealon-1.1.1.dist-info/METADATA +722 -0
- unrealon-1.1.1.dist-info/RECORD +82 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.1.dist-info}/WHEEL +1 -1
- unrealon-1.1.1.dist-info/entry_points.txt +9 -0
- {unrealon-1.0.9.dist-info → unrealon-1.1.1.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,35 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from typing import *
|
|
3
|
-
|
|
4
|
-
import httpx
|
|
5
|
-
|
|
6
|
-
from ..api_config import APIConfig, HTTPException
|
|
7
|
-
from ..models import *
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def root__get(api_config_override: Optional[APIConfig] = None) -> Any:
|
|
11
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
12
|
-
|
|
13
|
-
base_path = api_config.base_path
|
|
14
|
-
path = f"/"
|
|
15
|
-
headers = {
|
|
16
|
-
"Content-Type": "application/json",
|
|
17
|
-
"Accept": "application/json",
|
|
18
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
19
|
-
}
|
|
20
|
-
query_params: Dict[str, Any] = {}
|
|
21
|
-
|
|
22
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
23
|
-
|
|
24
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
25
|
-
response = client.request(
|
|
26
|
-
"get",
|
|
27
|
-
httpx.URL(path),
|
|
28
|
-
headers=headers,
|
|
29
|
-
params=query_params,
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
if response.status_code != 200:
|
|
33
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
34
|
-
|
|
35
|
-
return response.json()
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from typing import *
|
|
3
|
-
|
|
4
|
-
import httpx
|
|
5
|
-
|
|
6
|
-
from ..api_config import APIConfig, HTTPException
|
|
7
|
-
from ..models import *
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def list_parsers_api_v1_parsers__get(
|
|
11
|
-
authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
12
|
-
) -> SuccessResponse:
|
|
13
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
14
|
-
|
|
15
|
-
base_path = api_config.base_path
|
|
16
|
-
path = f"/api/v1/parsers/"
|
|
17
|
-
headers = {
|
|
18
|
-
"Content-Type": "application/json",
|
|
19
|
-
"Accept": "application/json",
|
|
20
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
21
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
22
|
-
}
|
|
23
|
-
query_params: Dict[str, Any] = {}
|
|
24
|
-
|
|
25
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
26
|
-
|
|
27
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
28
|
-
response = client.request(
|
|
29
|
-
"get",
|
|
30
|
-
httpx.URL(path),
|
|
31
|
-
headers=headers,
|
|
32
|
-
params=query_params,
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
if response.status_code != 200:
|
|
36
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
37
|
-
|
|
38
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def register_parser_api_v1_parsers_register_post(
|
|
42
|
-
data: ParserRegistrationRequest,
|
|
43
|
-
authorization: Optional[str] = None,
|
|
44
|
-
api_config_override: Optional[APIConfig] = None,
|
|
45
|
-
) -> ParserRegistrationResponse:
|
|
46
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
47
|
-
|
|
48
|
-
base_path = api_config.base_path
|
|
49
|
-
path = f"/api/v1/parsers/register"
|
|
50
|
-
headers = {
|
|
51
|
-
"Content-Type": "application/json",
|
|
52
|
-
"Accept": "application/json",
|
|
53
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
54
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
55
|
-
}
|
|
56
|
-
query_params: Dict[str, Any] = {}
|
|
57
|
-
|
|
58
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
59
|
-
|
|
60
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
61
|
-
response = client.request("post", httpx.URL(path), headers=headers, params=query_params, json=data.model_dump())
|
|
62
|
-
|
|
63
|
-
if response.status_code != 201:
|
|
64
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
65
|
-
|
|
66
|
-
return (
|
|
67
|
-
ParserRegistrationResponse(**response.json()) if response.json() is not None else ParserRegistrationResponse()
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
def get_parser_api_v1_parsers__parser_id__get(
|
|
72
|
-
parser_id: str, authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
73
|
-
) -> SuccessResponse:
|
|
74
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
75
|
-
|
|
76
|
-
base_path = api_config.base_path
|
|
77
|
-
path = f"/api/v1/parsers/{parser_id}"
|
|
78
|
-
headers = {
|
|
79
|
-
"Content-Type": "application/json",
|
|
80
|
-
"Accept": "application/json",
|
|
81
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
82
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
83
|
-
}
|
|
84
|
-
query_params: Dict[str, Any] = {}
|
|
85
|
-
|
|
86
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
87
|
-
|
|
88
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
89
|
-
response = client.request(
|
|
90
|
-
"get",
|
|
91
|
-
httpx.URL(path),
|
|
92
|
-
headers=headers,
|
|
93
|
-
params=query_params,
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
if response.status_code != 200:
|
|
97
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
98
|
-
|
|
99
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
def delete_parser_api_v1_parsers__parser_id__delete(
|
|
103
|
-
parser_id: str, authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
104
|
-
) -> None:
|
|
105
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
106
|
-
|
|
107
|
-
base_path = api_config.base_path
|
|
108
|
-
path = f"/api/v1/parsers/{parser_id}"
|
|
109
|
-
headers = {
|
|
110
|
-
"Content-Type": "application/json",
|
|
111
|
-
"Accept": "application/json",
|
|
112
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
113
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
114
|
-
}
|
|
115
|
-
query_params: Dict[str, Any] = {}
|
|
116
|
-
|
|
117
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
118
|
-
|
|
119
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
120
|
-
response = client.request(
|
|
121
|
-
"delete",
|
|
122
|
-
httpx.URL(path),
|
|
123
|
-
headers=headers,
|
|
124
|
-
params=query_params,
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
if response.status_code != 204:
|
|
128
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
129
|
-
|
|
130
|
-
return None
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
def execute_parser_command_api_v1_parsers__parser_id__commands_post(
|
|
134
|
-
parser_id: str,
|
|
135
|
-
data: ParserCommandRequest,
|
|
136
|
-
authorization: Optional[str] = None,
|
|
137
|
-
api_config_override: Optional[APIConfig] = None,
|
|
138
|
-
) -> SuccessResponse:
|
|
139
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
140
|
-
|
|
141
|
-
base_path = api_config.base_path
|
|
142
|
-
path = f"/api/v1/parsers/{parser_id}/commands"
|
|
143
|
-
headers = {
|
|
144
|
-
"Content-Type": "application/json",
|
|
145
|
-
"Accept": "application/json",
|
|
146
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
147
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
148
|
-
}
|
|
149
|
-
query_params: Dict[str, Any] = {}
|
|
150
|
-
|
|
151
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
152
|
-
|
|
153
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
154
|
-
response = client.request("post", httpx.URL(path), headers=headers, params=query_params, json=data.model_dump())
|
|
155
|
-
|
|
156
|
-
if response.status_code != 202:
|
|
157
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
158
|
-
|
|
159
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
def get_parser_status_api_v1_parsers__parser_id__status_get(
|
|
163
|
-
parser_id: str, authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
164
|
-
) -> SuccessResponse:
|
|
165
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
166
|
-
|
|
167
|
-
base_path = api_config.base_path
|
|
168
|
-
path = f"/api/v1/parsers/{parser_id}/status"
|
|
169
|
-
headers = {
|
|
170
|
-
"Content-Type": "application/json",
|
|
171
|
-
"Accept": "application/json",
|
|
172
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
173
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
174
|
-
}
|
|
175
|
-
query_params: Dict[str, Any] = {}
|
|
176
|
-
|
|
177
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
178
|
-
|
|
179
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
180
|
-
response = client.request(
|
|
181
|
-
"get",
|
|
182
|
-
httpx.URL(path),
|
|
183
|
-
headers=headers,
|
|
184
|
-
params=query_params,
|
|
185
|
-
)
|
|
186
|
-
|
|
187
|
-
if response.status_code != 200:
|
|
188
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
189
|
-
|
|
190
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from typing import *
|
|
3
|
-
|
|
4
|
-
import httpx
|
|
5
|
-
|
|
6
|
-
from ..api_config import APIConfig, HTTPException
|
|
7
|
-
from ..models import *
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def list_proxies_api_v1_proxies__get(
|
|
11
|
-
status: Optional[Union[ProxyStatus]] = None,
|
|
12
|
-
country: Optional[str] = None,
|
|
13
|
-
provider: Optional[Union[ProxyProvider]] = None,
|
|
14
|
-
healthy_only: Optional[bool] = None,
|
|
15
|
-
skip: Optional[int] = None,
|
|
16
|
-
limit: Optional[int] = None,
|
|
17
|
-
authorization: Optional[str] = None,
|
|
18
|
-
api_config_override: Optional[APIConfig] = None,
|
|
19
|
-
) -> ProxyListResponse:
|
|
20
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
21
|
-
|
|
22
|
-
base_path = api_config.base_path
|
|
23
|
-
path = f"/api/v1/proxies/"
|
|
24
|
-
headers = {
|
|
25
|
-
"Content-Type": "application/json",
|
|
26
|
-
"Accept": "application/json",
|
|
27
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
28
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
29
|
-
}
|
|
30
|
-
query_params: Dict[str, Any] = {
|
|
31
|
-
"status": status,
|
|
32
|
-
"country": country,
|
|
33
|
-
"provider": provider,
|
|
34
|
-
"healthy_only": healthy_only,
|
|
35
|
-
"skip": skip,
|
|
36
|
-
"limit": limit,
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
40
|
-
|
|
41
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
42
|
-
response = client.request(
|
|
43
|
-
"get",
|
|
44
|
-
httpx.URL(path),
|
|
45
|
-
headers=headers,
|
|
46
|
-
params=query_params,
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
if response.status_code != 200:
|
|
50
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
51
|
-
|
|
52
|
-
return ProxyListResponse(**response.json()) if response.json() is not None else ProxyListResponse()
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
def cleanup_expired_proxies_api_v1_proxies_maintenance_cleanup_post(
|
|
56
|
-
authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
57
|
-
) -> SuccessResponse:
|
|
58
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
59
|
-
|
|
60
|
-
base_path = api_config.base_path
|
|
61
|
-
path = f"/api/v1/proxies/maintenance/cleanup"
|
|
62
|
-
headers = {
|
|
63
|
-
"Content-Type": "application/json",
|
|
64
|
-
"Accept": "application/json",
|
|
65
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
66
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
67
|
-
}
|
|
68
|
-
query_params: Dict[str, Any] = {}
|
|
69
|
-
|
|
70
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
71
|
-
|
|
72
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
73
|
-
response = client.request(
|
|
74
|
-
"post",
|
|
75
|
-
httpx.URL(path),
|
|
76
|
-
headers=headers,
|
|
77
|
-
params=query_params,
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
if response.status_code != 200:
|
|
81
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
82
|
-
|
|
83
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
def sync_proxies_api_v1_proxies_maintenance_sync_get(
|
|
87
|
-
authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
88
|
-
) -> SuccessResponse:
|
|
89
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
90
|
-
|
|
91
|
-
base_path = api_config.base_path
|
|
92
|
-
path = f"/api/v1/proxies/maintenance/sync"
|
|
93
|
-
headers = {
|
|
94
|
-
"Content-Type": "application/json",
|
|
95
|
-
"Accept": "application/json",
|
|
96
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
97
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
98
|
-
}
|
|
99
|
-
query_params: Dict[str, Any] = {}
|
|
100
|
-
|
|
101
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
102
|
-
|
|
103
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
104
|
-
response = client.request(
|
|
105
|
-
"get",
|
|
106
|
-
httpx.URL(path),
|
|
107
|
-
headers=headers,
|
|
108
|
-
params=query_params,
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
if response.status_code != 200:
|
|
112
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
113
|
-
|
|
114
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
def purchase_proxies_api_v1_proxies_procurement_purchase_post(
|
|
118
|
-
data: ProxyPurchaseRequest,
|
|
119
|
-
authorization: Optional[str] = None,
|
|
120
|
-
api_config_override: Optional[APIConfig] = None,
|
|
121
|
-
) -> SuccessResponse:
|
|
122
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
123
|
-
|
|
124
|
-
base_path = api_config.base_path
|
|
125
|
-
path = f"/api/v1/proxies/procurement/purchase"
|
|
126
|
-
headers = {
|
|
127
|
-
"Content-Type": "application/json",
|
|
128
|
-
"Accept": "application/json",
|
|
129
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
130
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
131
|
-
}
|
|
132
|
-
query_params: Dict[str, Any] = {}
|
|
133
|
-
|
|
134
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
135
|
-
|
|
136
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
137
|
-
response = client.request("post", httpx.URL(path), headers=headers, params=query_params, json=data.model_dump())
|
|
138
|
-
|
|
139
|
-
if response.status_code != 200:
|
|
140
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
141
|
-
|
|
142
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def report_blocked_proxy_api_v1_proxies_rotation_block_post(
|
|
146
|
-
data: ProxyBlockRequest,
|
|
147
|
-
authorization: Optional[str] = None,
|
|
148
|
-
api_config_override: Optional[APIConfig] = None,
|
|
149
|
-
) -> SuccessResponse:
|
|
150
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
151
|
-
|
|
152
|
-
base_path = api_config.base_path
|
|
153
|
-
path = f"/api/v1/proxies/rotation/block"
|
|
154
|
-
headers = {
|
|
155
|
-
"Content-Type": "application/json",
|
|
156
|
-
"Accept": "application/json",
|
|
157
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
158
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
159
|
-
}
|
|
160
|
-
query_params: Dict[str, Any] = {}
|
|
161
|
-
|
|
162
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
163
|
-
|
|
164
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
165
|
-
response = client.request("post", httpx.URL(path), headers=headers, params=query_params, json=data.model_dump())
|
|
166
|
-
|
|
167
|
-
if response.status_code != 200:
|
|
168
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
169
|
-
|
|
170
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
def request_proxy_rotation_api_v1_proxies_rotation_request_post(
|
|
174
|
-
data: ProxyRotationRequest,
|
|
175
|
-
authorization: Optional[str] = None,
|
|
176
|
-
api_config_override: Optional[APIConfig] = None,
|
|
177
|
-
) -> SuccessResponse:
|
|
178
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
179
|
-
|
|
180
|
-
base_path = api_config.base_path
|
|
181
|
-
path = f"/api/v1/proxies/rotation/request"
|
|
182
|
-
headers = {
|
|
183
|
-
"Content-Type": "application/json",
|
|
184
|
-
"Accept": "application/json",
|
|
185
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
186
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
187
|
-
}
|
|
188
|
-
query_params: Dict[str, Any] = {}
|
|
189
|
-
|
|
190
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
191
|
-
|
|
192
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
193
|
-
response = client.request("post", httpx.URL(path), headers=headers, params=query_params, json=data.model_dump())
|
|
194
|
-
|
|
195
|
-
if response.status_code != 200:
|
|
196
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
197
|
-
|
|
198
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
def get_proxy_statistics_api_v1_proxies_statistics_get(
|
|
202
|
-
authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
203
|
-
) -> Dict[str, Any]:
|
|
204
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
205
|
-
|
|
206
|
-
base_path = api_config.base_path
|
|
207
|
-
path = f"/api/v1/proxies/statistics"
|
|
208
|
-
headers = {
|
|
209
|
-
"Content-Type": "application/json",
|
|
210
|
-
"Accept": "application/json",
|
|
211
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
212
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
213
|
-
}
|
|
214
|
-
query_params: Dict[str, Any] = {}
|
|
215
|
-
|
|
216
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
217
|
-
|
|
218
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
219
|
-
response = client.request(
|
|
220
|
-
"get",
|
|
221
|
-
httpx.URL(path),
|
|
222
|
-
headers=headers,
|
|
223
|
-
params=query_params,
|
|
224
|
-
)
|
|
225
|
-
|
|
226
|
-
if response.status_code != 200:
|
|
227
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
228
|
-
|
|
229
|
-
return response.json()
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
def get_proxy_details_api_v1_proxies__proxy_id__get(
|
|
233
|
-
proxy_id: str, authorization: Optional[str] = None, api_config_override: Optional[APIConfig] = None
|
|
234
|
-
) -> SuccessResponse:
|
|
235
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
236
|
-
|
|
237
|
-
base_path = api_config.base_path
|
|
238
|
-
path = f"/api/v1/proxies/{proxy_id}"
|
|
239
|
-
headers = {
|
|
240
|
-
"Content-Type": "application/json",
|
|
241
|
-
"Accept": "application/json",
|
|
242
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
243
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
244
|
-
}
|
|
245
|
-
query_params: Dict[str, Any] = {}
|
|
246
|
-
|
|
247
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
248
|
-
|
|
249
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
250
|
-
response = client.request(
|
|
251
|
-
"get",
|
|
252
|
-
httpx.URL(path),
|
|
253
|
-
headers=headers,
|
|
254
|
-
params=query_params,
|
|
255
|
-
)
|
|
256
|
-
|
|
257
|
-
if response.status_code != 200:
|
|
258
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
259
|
-
|
|
260
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
def record_proxy_usage_api_v1_proxies__proxy_id__usage_post(
|
|
264
|
-
proxy_id: str,
|
|
265
|
-
data: ProxyUsageRequest,
|
|
266
|
-
authorization: Optional[str] = None,
|
|
267
|
-
api_config_override: Optional[APIConfig] = None,
|
|
268
|
-
) -> SuccessResponse:
|
|
269
|
-
api_config = api_config_override if api_config_override else APIConfig()
|
|
270
|
-
|
|
271
|
-
base_path = api_config.base_path
|
|
272
|
-
path = f"/api/v1/proxies/{proxy_id}/usage"
|
|
273
|
-
headers = {
|
|
274
|
-
"Content-Type": "application/json",
|
|
275
|
-
"Accept": "application/json",
|
|
276
|
-
"Authorization": f"Bearer { api_config.get_access_token() }",
|
|
277
|
-
**({"authorization": authorization} if authorization is not None else {}),
|
|
278
|
-
}
|
|
279
|
-
query_params: Dict[str, Any] = {}
|
|
280
|
-
|
|
281
|
-
query_params = {key: value for (key, value) in query_params.items() if value is not None}
|
|
282
|
-
|
|
283
|
-
with httpx.Client(base_url=base_path, verify=api_config.verify) as client:
|
|
284
|
-
response = client.request("post", httpx.URL(path), headers=headers, params=query_params, json=data.model_dump())
|
|
285
|
-
|
|
286
|
-
if response.status_code != 200:
|
|
287
|
-
raise HTTPException(response.status_code, f" failed with status code: {response.status_code}")
|
|
288
|
-
|
|
289
|
-
return SuccessResponse(**response.json()) if response.json() is not None else SuccessResponse()
|