| Server IP : 85.214.239.14 / Your IP : 216.73.216.27 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/httpcore/ |
Upload File : |
from types import TracebackType
from typing import Any, Dict, Optional, Type
from ._models import Request
class Trace:
def __init__(
self, name: str, request: Request, kwargs: Optional[Dict[str, Any]] = None
) -> None:
self.name = name
self.trace = request.extensions.get("trace")
self.kwargs = kwargs or {}
self.return_value: Any = None
def __enter__(self) -> "Trace":
if self.trace is not None:
info = self.kwargs
self.trace(f"{self.name}.started", info)
return self
def __exit__(
self,
exc_type: Optional[Type[BaseException]] = None,
exc_value: Optional[BaseException] = None,
traceback: Optional[TracebackType] = None,
) -> None:
if self.trace is not None:
if exc_value is None:
info = {"return_value": self.return_value}
self.trace(f"{self.name}.complete", info)
else:
info = {"exception": exc_value}
self.trace(f"{self.name}.failed", info)
async def __aenter__(self) -> "Trace":
if self.trace is not None:
info = self.kwargs
await self.trace(f"{self.name}.started", info)
return self
async def __aexit__(
self,
exc_type: Optional[Type[BaseException]] = None,
exc_value: Optional[BaseException] = None,
traceback: Optional[TracebackType] = None,
) -> None:
if self.trace is not None:
if exc_value is None:
info = {"return_value": self.return_value}
await self.trace(f"{self.name}.complete", info)
else:
info = {"exception": exc_value}
await self.trace(f"{self.name}.failed", info)