
    rf                     t    d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	 d Z
d Zd Zd Zd	 Zd
 Zd Zd Zd ZdS )    N)OrderedDict)urlparse)
get_methodget_encodingget_locationget_links_from_documentc                 @   t          j         | j                  }t                      }d|d<   t                      |d<   | j        |d         d<   | j        |d         d<   d|d         d<   |j        r
|j        |d<   |j        r|j        g|d	<   t          |           |d
<   |S )z-
    Generates root of the Swagger spec.
    z2.0swaggerinfotitledescription versionhostschemespaths)r   urlr   r   r   netlocscheme_get_paths_object)document
parsed_urlr
   s      Q/var/www/html/software/conda/lib/python3.11/site-packages/openapi_codec/encode.pygenerate_swagger_objectr      s     "8<00JmmGGI!mmGFO'~GFOG%-%9GFOM"!#GFOI ,$+ 1(/0	(22GGN    c                 8    | \  }}}|r|d         dz   |z   }|||fS )Nr   _ )itemoperation_idlinktagss       r   _add_tag_prefixr#      s5    #L$ 4Aw}|3$%%r   c                 z   g }t          |           D ]a\  }}t          |          dk    r'd                    |dd                   }|d         g}n
|d         }g }|                    |||f           bd |D             }t          t	          |                    t          |          k    }|sd |D             S |S )z7
    Return a list of (operation_id, link, [tags])
       r   Nr   c                     g | ]
}|d          S )r   r   .0r   s     r   
<listcomp>z_get_links.<locals>.<listcomp>6   s    ///T!W///r   c                 ,    g | ]}t          |          S r   )r#   r'   s     r   r)   z_get_links.<locals>.<listcomp>;   s     888$%%888r   )r   lenjoinappendset)r   linkskeysr!   r    r"   operation_idsuniques           r   
_get_linksr3   &   s    
 E-h77 1 1
dt99q==88DH--LG9DD7LDlD$/0000 0////M]##$$E

2F  988%8888Lr   c                    t                      }t          |           }|D ]g\  }}}|j        |vrt                      ||j        <   t          |          }t	          |||          }||j                                     ||i           h|S )N)r   r3   r   r   _get_operationupdate)r   r   r/   r    r!   r"   method	operations           r   r   r   @   s    MMEx  E$) 4 4 dD85  )mmE$(OD!!"<t<<	dh	23333Lr   c                    t          |          }|j                                        }|r|                                d         nd }| t	          |          t          ||          d}|r||d<   |r||d<   |r|g|d<   |r||d<   |S )Nr   )operationId	responses
parametersr   summaryconsumesr"   )r   r   strip
splitlines_get_responses_get_parameters)r    r!   r"   encodingr   r=   r8   s          r   r5   r5   P   s    D!!H"((**K-8Bk$$&&q))dG $#D))%dH55 I  /#.	-  '&	) +!)
	* ! 	&r   c                 \    t          | dd           | j        S | j        dS | j        j        S )Nr   r   )getattrr   schemafields    r   _get_field_descriptionrI   f   s5    umT**6  |r<##r   c                    t          | dd           | j        S | j        dS t          j        dt          j        dt          j        dt          j        dt          j        dt          j	        di
                    | j        j        d          S )Ntypestringintegernumberbooleanarrayobject)rE   rK   rF   
coreschemaStringIntegerNumberBooleanArrayObjectget	__class__rG   s    r   _get_field_typer[   q   s{    ufd##/z|x 	8I8I'8 
c%,
 (++,r   c                    g }i }g }| j         D ] }t          | |          }t          |          }t          |          }|dk    rw|dv r5|j        |j        d||d}	|dk    rddi|	d<   |                    |	           p||d	}
|dk    rddi|
d<   |
||j        <   |j        r|                    |j                   |d
k    r6|dk    rddd}ni }|j        |j        |||d}	|                    |	           |j        |j        |||pdd}	|dk    rddi|	d<   |                    |	           "|r+dd
d|dd}	|r||	d         d<   |                    |	           |S )z2
    Generates Swagger Parameter Item object.
    form)zmultipart/form-dataz!application/x-www-form-urlencodedformData)namerequiredinr   rK   rP   rK   rL   items)r   rK   bodyzapplication/octet-streambinary)rK   format)r_   r`   ra   r   rF   datarQ   )rK   
properties)r_   ra   rF   rF   r`   )fieldsr   rI   r[   r_   r`   r-   )r!   rC   r<   rg   r`   rH   locationfield_description
field_type	parameterschema_propertyrF   s               r   rB   rB      s-    JJH 6) 6)e,,2599$U++
vWWW "J %$#4& 	 ((*0();Ig&!!),,,, $5&# # ((06/AOG,)8
5:&> 0OOEJ///555"*h??
!N0  I i(((( 
!N0".h I W$$&,h%7	'"i(((( % ( 
 
	  	7.6Ih
+)$$$r   c                     ddi}| j                                         dk    rd|iS | j                                         dk    rd|iS d|iS )zZ
    Returns minimally acceptable responses object based
    on action / method type.
    r   r   post201delete204200)actionlower)r!   templates     r   rA   rA      sa    
 r"H{f$$x  {h&&x  8r   )rR   collectionsr   coreapi.compatr   openapi_codec.utilsr   r   r   r   r   r#   r3   r   r5   rI   r[   rB   rA   r   r   r   <module>rz      s        # # # # # # # # # # # # _ _ _ _ _ _ _ _ _ _ _ _  0& & &  4     ,$ $ $, , ,$M M M`
 
 
 
 
r   