
    ZThB	                        d dl mZ d dlZd dlmZmZmZ d dlmZ d dl	m
Z
  G d d      Z G d d	e      Z G d
 de      Z G d de      Zy)    )annotationsN)DictList	TypedDict)
StatusCode)Selfc                  8   e Zd ZU dZded<   di gddddej                  j                  ej                  j                  ej                  j                  ej                  j                  ej                  j                  gd	d
giZded<   ddZddZedd       Zy)RetryPolicya  
    Retry policy meant to be used for `sift_py.grpc.transport.SiftChannel`. Users may have the ability to configure their own
    custom retry policy in the future, but for now this is primarily intended for internal use.

    - [Retry policy schema](https://github.com/grpc/grpc-proto/blob/ec30f589e2519d595688b9a42f88a91bdd6b733f/grpc/service_config/service_config.proto#L136)
    - [Enable gRPC retry option](https://github.com/grpc/grpc/blob/9a5fdfc3d3a7fc575a394360be4532ee09a85620/include/grpc/impl/channel_arg_names.h#L311)
    - [Service config option](https://github.com/grpc/grpc/blob/9a5fdfc3d3a7fc575a394360be4532ee09a85620/include/grpc/impl/channel_arg_names.h#L207)
    RetryConfigconfigmethodConfig   z0.05s5s   )maxAttemptsinitialBackoff
maxBackoffbackoffMultiplierretryableStatusCodes)nameretryPolicyDEFAULT_POLICYc                    || _         y Nr   )selfr   s     X/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_py/grpc/_retry.py__init__zRetryPolicy.__init__.   s	        c                @    t        j                  | j                        S r   )jsondumpsr   )r   s    r   as_jsonzRetryPolicy.as_json1   s    zz$++&&r   c                (     | | j                         S )Nr   )r   )clss    r   defaultzRetryPolicy.default4   s    #,,--r   N)r   r   )returnstr)r'   r   )__name__
__module____qualname____doc____annotations__r   INTERNALr   UNKNOWNUNAVAILABLEABORTEDDEADLINE_EXCEEDEDr   r   r#   classmethodr&    r   r   r
   r
   
   s      	  $%&-"&)*"++00"**//"..33"**//"4499- 	
#NK 0' . .r   r
   c                      e Zd ZU ded<   y)r   zList[MethodConfigDict]r   Nr)   r*   r+   r-   r4   r   r   r   r   9   s    ((r   r   c                  "    e Zd ZU ded<   ded<   y)MethodConfigDictzList[Dict[str, str]]r   RetryConfigDictr   Nr6   r4   r   r   r8   r8   =   s    
  r   r8   c                  @    e Zd ZU ded<   ded<   ded<   ded<   ded<   y	)
r9   intr   r(   r   r   r   z	List[str]r   Nr6   r4   r   r   r9   r9   B   s    O##r   r9   )
__future__r   r!   typingr   r   r   grpcr   typing_extensionsr   r
   r   r8   r9   r4   r   r   <module>r@      sF    "  ( (  ",. ,.^)) )!y !
$i $r   