1+ from _typeshed import Incomplete
12from aiohttp .client_reqrep import ClientResponse
23from aiohttp .tracing import TraceRequestEndParams , TraceRequestExceptionParams , TraceRequestStartParams
4+ from email .headerregistry import ContentTypeHeader
35from logfire import Logfire as Logfire , LogfireSpan as LogfireSpan
6+ from logfire ._internal .config import GLOBAL_CONFIG as GLOBAL_CONFIG
7+ from logfire ._internal .main import set_user_attributes_on_raw_span as set_user_attributes_on_raw_span
8+ from logfire ._internal .stack_info import warn_at_user_stacklevel as warn_at_user_stacklevel
49from logfire ._internal .utils import handle_internal_errors as handle_internal_errors
510from logfire .integrations .aiohttp_client import AioHttpRequestHeaders as AioHttpRequestHeaders , AioHttpResponseHeaders as AioHttpResponseHeaders , RequestHook as RequestHook , ResponseHook as ResponseHook
611from opentelemetry .trace import Span
@@ -9,18 +14,30 @@ from yarl import URL
914
1015P = ParamSpec ('P' )
1116
12- def instrument_aiohttp_client (logfire_instance : Logfire , capture_response_body : bool , capture_headers : bool , request_hook : RequestHook | None , response_hook : ResponseHook | None , ** kwargs : Any ) -> None :
17+ def instrument_aiohttp_client (logfire_instance : Logfire , capture_all : bool | None , capture_request_body : bool , capture_response_body : bool , capture_headers : bool , request_hook : RequestHook | None , response_hook : ResponseHook | None , ** kwargs : Any ) -> None :
1318 """Instrument the `aiohttp` module so that spans are automatically created for each client request.
1419
1520 See the `Logfire.instrument_aiohttp_client` method for details.
1621 """
1722
1823class LogfireClientInfoMixin :
24+ """Mixin providing content-type header parsing for charset detection."""
1925 headers : AioHttpRequestHeaders
26+ @property
27+ def content_type_header_object (self ) -> ContentTypeHeader :
28+ """Parse the Content-Type header into a structured object."""
29+ @property
30+ def content_type_header_string (self ) -> str :
31+ """Get the raw Content-Type header value."""
32+ @property
33+ def content_type_charset (self ) -> str :
34+ """Extract charset from Content-Type header, defaulting to utf-8."""
2035
2136class LogfireAioHttpRequestInfo (TraceRequestStartParams , LogfireClientInfoMixin ):
2237 span : Span
2338 def capture_headers (self ) -> None : ...
39+ @handle_internal_errors
40+ def capture_body_if_text (self , attr_name : str = 'http.request.body.text' ): ...
2441
2542class LogfireAioHttpResponseInfo (LogfireClientInfoMixin ):
2643 span : Span
@@ -37,9 +54,11 @@ class LogfireAioHttpResponseInfo(LogfireClientInfoMixin):
3754 @classmethod
3855 def create_from_trace_params (cls , span : Span , params : TraceRequestEndParams | TraceRequestExceptionParams , logfire_instance : Logfire ) -> LogfireAioHttpResponseInfo : ...
3956
40- def make_request_hook (hook : RequestHook | None , capture_headers : bool ) -> RequestHook | None : ...
57+ def make_request_hook (hook : RequestHook | None , capture_headers : bool , capture_request_body : bool ) -> RequestHook | None : ...
4158def make_response_hook (hook : ResponseHook | None , logfire_instance : Logfire , capture_headers : bool , capture_response_body : bool ) -> ResponseHook | None : ...
42- def capture_request (span : Span , request : TraceRequestStartParams , capture_headers : bool ) -> LogfireAioHttpRequestInfo : ...
59+ def capture_request (span : Span , request : TraceRequestStartParams , capture_headers : bool , capture_request_body : bool ) -> LogfireAioHttpRequestInfo : ...
4360def capture_response (span : Span , response : TraceRequestEndParams | TraceRequestExceptionParams , logfire_instance : Logfire , capture_headers : bool , capture_response_body : bool ) -> LogfireAioHttpResponseInfo : ...
4461def run_hook (hook : Callable [P , Any ] | None , * args : P .args , ** kwargs : P .kwargs ) -> None : ...
4562def capture_request_or_response_headers (span : Span , headers : AioHttpRequestHeaders | AioHttpResponseHeaders , request_or_response : Literal ['request' , 'response' ]) -> None : ...
63+
64+ CODES_FOR_METHODS_WITH_DATA_OR_JSON_PARAM : Incomplete
0 commit comments