
    +h$                     >    d dl mZ d dlmZmZmZ d dlmZ 	 	 	 ddZy)    )	timedelta)make_responserequestcurrent_app)update_wrapperNc                    	 !dj                  t        d D                    (t        t              sdj                  d D              (t        t              sdj                  d D              t         t              sdj                          t        t              rj                         fd		 fd}|S )z-
    http://flask.pocoo.org/snippets/56/
    z, c              3   <   K   | ]  }|j                           y wNupper.0xs     K/var/www/html/venv/lib/python3.12/site-packages/flask_restful/utils/cors.py	<genexpr>zcrossdomain.<locals>.<genexpr>   s     ">1779">   c              3   <   K   | ]  }|j                           y wr
   r   r   s     r   r   zcrossdomain.<locals>.<genexpr>   s     7!AGGI7r   c              3   <   K   | ]  }|j                           y wr
   r   r   s     r   r   zcrossdomain.<locals>.<genexpr>   s     "E1779"Er   c                  R    S t        j                         } | j                  d   S )Nallow)r   make_default_options_responseheaders)options_respmethodss    r   get_methodsz crossdomain.<locals>.get_methods   s-    N"@@B##G,,    c           	      F      	f	d}d _         t        |       S )Nc                  (  	 r(t         j                  dk(  rt        j                         }nt	         | i |      }st         j                  dk7  r|S |j
                  }|d<    	       |d<   t              |d<   rd|d<   

|d<   |d<   |S )	NOPTIONSzAccess-Control-Allow-OriginzAccess-Control-Allow-MethodszAccess-Control-Max-Agetruez Access-Control-Allow-CredentialszAccess-Control-Allow-HeaderszAccess-Control-Expose-Headers)r   methodr   r   r   r   str)argskwargsresphattach_to_allautomatic_optionscredentialsexpose_headersfr   r   max_ageorigins       r   wrapped_functionz8crossdomain.<locals>.decorator.<locals>.wrapped_function   s     W^^y%@"@@B$Q%7%78 W^^y%@A/5A+,0;A,-*-g,A&'8>45"4;01)5C12Kr   F)provide_automatic_optionsr   )
r+   r.   r'   r(   r)   r*   r   r   r,   r-   s
   ` r   	decoratorzcrossdomain.<locals>.decorator   s%    	 	* ',#.22r   )joinsorted
isinstancer"   r   total_seconds)
r-   r   r   r*   r,   r'   r(   r)   r0   r   s
   ```````` @r   crossdomainr5      s     ))F">g">>?:gs#;))7w77!*^S*I"En"EEfc"6"'9%'')-3 30 r   )NNNNi`T  TTF)	datetimer   flaskr   r   r   	functoolsr   r5    r   r   <module>r:      s#     5 5 $ IM-1490r   