a
    xd
                     @   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   i/var/www/html/Ranjet/env/lib/python3.9/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 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file)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
}|d rt|d d}|| W d    q1 s0    Y  n| j|  d S )Nr   r   r   r   r   )r   r   r   r   T)requestpublicr   )Zrenderer_contextr   wb)	r   get_generator_classZ
get_schemaget_rendererrenderopenwritestdoutdecode)	r   argsoptionsr   	generatorZschemaZ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   ZCoreJSONRendererZCoreAPIOpenAPIRendererZCoreAPIJSONOpenAPIRendererZOpenAPIRendererZJSONOpenAPIRenderer)r   r   Zrenderer_clsr   r   r   r(   3   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'   B   s    zCommand.get_generator_classN)	__name__
__module____qualname__helpr   r#   r3   r(   r'   r   r   r   r   r      s   r   N)Zdjango.core.management.baser   Zdjango.utils.module_loadingr   Zrest_frameworkr   Zrest_framework.schemasr   Zrest_framework.schemas.openapir   r   r   r   r   r   r   r   <module>   s   