
    Nwgs                     ^    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	e      Zy
)    )BaseCommand)import_string)	renderers)coreapi)SchemaGeneratoropenapir   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)Commandz,Generates configured API schema for project.c                 B    t        j                         rt        S t        S N)r   
is_enabledCOREAPI_MODEOPENAPI_MODEselfs    h/var/www/horilla/myenv/lib/python3.12/site-packages/rest_framework/management/commands/generateschema.pyget_modezCommand.get_mode   s    &113|EE    c                    |j                  dddt               |j                  ddd t               |j                  ddd t               | j                         t        k(  r|j                  d	d
g ddt               n|j                  d	d
ddgdt               |j                  ddd t               |j                  ddd t               |j                  ddd t               |j                  dddt               y )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   parsers     r   add_argumentszCommand.add_arguments   s    IGRcJG%CHO-TWX==?l*
Cjt}  EH  I
I~C^hqx{|KiCP/6GQU\_`H64cJO-RUVr   c                    |d   rt        |d         }n| j                         } ||d   |d   |d   |d   |d         }|j                  d d	      }| j                  |d
         }|j	                  |i       }|d   r*t        |d   d      5 }|j                  |       d d d        y | j                  j                  |j                                y # 1 sw Y   y xY w)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fs	            r   handlezCommand.handle   s    $%+G4E,FGO"668O#'".I&M*
	 %%d4%@$$WX%67"=6?gfot,      KKfmmo.   s   CCc                     | j                         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_clss      r   r1   zCommand.get_renderer5   su    ==?l*%66$;; ) D D 	L
  >! !00%99
  ~r   c                 \    | j                         t        k(  rt        j                  S t        S r   )r   r   r   r   r   s    r   r/   zCommand.get_generator_classD   s"    ==?l****r   N)	__name__
__module____qualname__helpr   r(   r>   r1   r/    r   r   r
   r
      s"    9DFW/,r   r
   N)django.core.management.baser   django.utils.module_loadingr   rest_frameworkr   rest_framework.schemasr   rest_framework.schemas.openapir   r   r   r
   rK   r   r   <module>rQ      s*    3 5 $ * :;k ;r   