K iW |ddlmZddlmZddlmZddlmZmZgdZ GddZ Gd d Z Gd d Z y )) annotations)Sequence)Frame) ExtensionNameExtensionParameter) ExtensionClientExtensionFactoryServerExtensionFactoryc4eZdZUdZded< ddddZd dZy) r z% Base class for extensions. rnameN)max_sizect)a Decode an incoming frame. Args: frame: Incoming frame. max_size: Maximum payload size in bytes. Returns: Decoded frame. Raises: PayloadTooBig: If decoding the payload exceeds ``max_size``. NotImplementedError)selfframers `/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/websockets/extensions/base.pydecodezExtension.decodes "!ct)z Encode an outgoing frame. Args: frame: Outgoing frame. Returns: Encoded frame. r)rrs rencodezExtension.encode&s "!r)rrrz int | Nonereturnr)rrrr)__name__ __module__ __qualname____doc____annotations__rrrrr r s =A"" "rr c:eZdZUdZded< ddZ ddZy) r z: Base class for client-side extension factories. rr ct)z Build parameters to send to the server for this extension. Returns: Parameters to send to the server. r)rs rget_request_paramsz)ClientExtensionFactory.get_request_params=s "!rct)ah Process parameters received from the server. Args: params: Parameters received from the server for this extension. accepted_extensions: List of previously accepted extensions. Returns: An extension instance. Raises: NegotiationError: If parameters aren't acceptable. rrparamsaccepted_extensionss rprocess_response_paramsz.ClientExtensionFactory.process_response_paramsGs &"!rN)rSequence[ExtensionParameter])r%r(r&Sequence[Extension]rr )rrrrrr"r'rrrr r 4s8 "","1"  "rr c2eZdZUdZded< ddZy)r z: Base class for server-side extension factories. rr ct)a Process parameters received from the client. Args: params: Parameters received from the client for this extension. accepted_extensions: List of previously accepted extensions. Returns: To accept the offer, parameters to send to the client for this extension and an extension instance. Raises: NegotiationError: To reject the offer, if parameters received from the client aren't acceptable. rr$s rprocess_request_paramsz-ServerExtensionFactory.process_request_paramsfs *"!rN)r%r(r&r)rz*tuple[list[ExtensionParameter], Extension])rrrrrr,rrrr r ]s3 ","1" 4 "rr N) __future__rcollections.abcrframesrtypingrr__all__r r r rrrr2s9"$6 L%"%"P&"&"R""r