o
    ÖèFhs  ã                   @   sX   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 dZ
dZG dd	„ d	eƒZd
S )é    )ÚBaseCommand)Úimport_string)Ú	renderers)Úcoreapi)ÚSchemaGeneratorÚopenapir   c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚCommandz,Generates configured API schema for project.c                 C   s   t  ¡ rtS tS ©N)r   Ú
is_enabledÚCOREAPI_MODEÚOPENAPI_MODE©Úself© r   új/var/www/html/loop/nvenv/lib/python3.10/site-packages/rest_framework/management/commands/generateschema.pyÚget_mode   s   zCommand.get_modec                 C   sÀ   |j dddtd� |j ddd td� |j ddd td� |  ¡ tkr.|j d	d
g d¢dtd� n|j d	d
ddgdtd� |j ddd td� |j ddd td� |j ddd td� |j dddtd� d S )Nz--titleÚtitleÚ )ÚdestÚdefaultÚtypez--urlÚurlz--descriptionÚdescriptionz--formatÚformat)r   úopenapi-jsonÚcorejsonr   )r   Úchoicesr   r   r   z	--urlconfÚurlconfz--generator_classÚgenerator_classz--fileÚfilez--api_versionÚapi_version)Úadd_argumentÚstrr   r   )r   Úparserr   r   r   Úadd_arguments   s   zCommand.add_argumentsc           	      O   sÈ   |d rt |d ƒ}n|  ¡ }||d |d |d |d |d d�}|jd dd	�}|  |d
 ¡}|j|i d�}|d rZt|d dƒ�}| |¡ W d   ƒ d S 1 sSw   Y  d S | j | ¡ ¡ d S )Nr   r   r   r   r   r    )r   r   r   r   ÚversionT)ÚrequestÚpublicr   )Úrenderer_contextr   Úwb)	r   Úget_generator_classÚ
get_schemaÚget_rendererÚrenderÚopenÚwriteÚstdoutÚdecode)	r   ÚargsÚoptionsr   Ú	generatorÚschemaÚrendererÚoutputÚfr   r   r   Úhandle   s$   û"ÿzCommand.handlec                 C   s@   |   ¡ tkrtjtjtjdœ| }|ƒ S tjtjdœ| }|ƒ S )N)r   r   r   )r   r   )r   r   r   ÚCoreJSONRendererÚCoreAPIOpenAPIRendererÚCoreAPIJSONOpenAPIRendererÚOpenAPIRendererÚJSONOpenAPIRenderer)r   r   Úrenderer_clsr   r   r   r,   5   s   ýüþýzCommand.get_rendererc                 C   s   |   ¡ tkr	tjS tS r	   )r   r   r   r   r   r   r   r   r*   D   s   zCommand.get_generator_classN)	Ú__name__Ú
__module__Ú__qualname__Úhelpr   r$   r9   r,   r*   r   r   r   r   r      s    r   N)Údjango.core.management.baser   Údjango.utils.module_loadingr   Úrest_frameworkr   Úrest_framework.schemasr   Úrest_framework.schemas.openapir   r   r   r   r   r   r   r   Ú<module>   s    