o
    ii                     @   sl   d Z ddlZejdk rddlmZ nddlmZ ddlmZmZ ddl	m
Z
 ddlmZ G d	d
 d
eZdS )z5Generic script exporter class for any kernel language    N)   
   )entry_points)Dictdefault   )get_exporter)TemplateExporterc                       sZ   e Zd ZdZe Ze ZdZeddd Z	eddd Z
d	d
 Zd fdd	Z  ZS )ScriptExporterzA script exporter.Scripttemplate_filec                 C      dS )Nz	script.j2 selfr   r   U/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nbconvert/exporters/script.py_template_file_default      z%ScriptExporter._template_file_defaulttemplate_namec                 C   r   )Nscriptr   r   r   r   r   _template_name_default   r   z%ScriptExporter._template_name_defaultc              	      sr    | j vr4ztdd} fdd|D d  }W n ttfy)   d| j  < Y nw || j| d| j  < | j   S )zFind an exporter for the language name from notebook metadata.

        Uses the nbconvert.exporters.script group of entry points.
        Returns None if no exporter is found.
        znbconvert.exporters.script)groupc                    s   g | ]	}|j  kr|qS r   )name).0e	lang_namer   r   
<listcomp>*   s    z9ScriptExporter._get_language_exporter.<locals>.<listcomp>r   Nconfigparent)_lang_exportersr   loadKeyError
IndexErrorr   )r   r   	exportersexporterr   r   r   _get_language_exporter!   s   


z%ScriptExporter._get_language_exporterNc                    s   |j di }|d}|r;|dkr;| jd| || jvr,t|}|| j| d| j|< | j| }|j||fi |S |d}|r\| jd| | |}|dur\|j||fi |S |d	d
| _	|dd| _
t j||fi |S )zConvert from notebook node.language_infonbconvert_exporterr   zLoading script exporter: %sr   r   z&Using script exporter for language: %sNfile_extensionz.txtmimetypez
text/plain)metadatagetlogdebug
_exportersr   r   from_notebook_noder'   r*   output_mimetypesuper)r   nb	resourceskwlanginfoexporter_namer&   r   	__class__r   r   r1   2   s$   




z!ScriptExporter.from_notebook_node)N)__name__
__module____qualname____doc__r   r0   r!   export_from_notebookr   r   r   r'   r1   __classcell__r   r   r9   r   r
      s    

r
   )r>   sysversion_infoimportlib_metadatar   importlib.metadata	traitletsr   r   baser   templateexporterr	   r
   r   r   r   r   <module>   s    
