o
    wvXj#
  ã                   @   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   ún/var/www/html/myproject/venv/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� 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_class)Ú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�}|jd dd�}|  |d	 ¡}|j|i d
�}| j | ¡ ¡ d S )Nr   r   r   r   r   )r   r   r   r   T)ÚrequestÚpublicr   )Úrenderer_context)r   Úget_generator_classÚ
get_schemaÚget_rendererÚrenderÚstdoutÚwriteÚdecode)r   ÚargsÚoptionsr   Ú	generatorÚschemaÚrendererÚoutputr   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(   -   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&   <   s   zCommand.get_generator_classN)	Ú__name__Ú
__module__Ú__qualname__Úhelpr   r"   r3   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    