3
( \,                 @   sD   d dl mZ d dlmZ G dd deZdd Zdd Zd	d
 ZdS )    )DispatchingJinjaLoader)TemplateNotFoundc                   s   e Zd Z fddZ  ZS )VersionedTemplateLoaderc       	         s   t |\}}|s"tt| j||S t|\}}x\t|D ]P}|d |krJq8dj||d |g}ytt| j||S  tk
r   w8Y q8X q8W t|d S )Nnumber/name)parse_versionsuperr   
get_sourceparse_templateget_version_mappingjoinr   )	selfZenvironmenttemplateZspecified_version_numberexistsZtemplate_dir	file_nameZversion_mappingZtemplate_path)	__class__ B/usr/share/pgadmin4/web/pgadmin/utils/versioned_template_loader.pyr
      s$    

z"VersionedTemplateLoader.get_source)__name__
__module____qualname__r
   __classcell__r   r   )r   r   r      s   r   c             C   sn   | j dd}t|dkrdS t|dkr>|\}}}t|dfS t|dkrb|\}}}}t|dfS t| d S )	N#       FT   )r   F)splitlenintr   )r   template_path_parts_versionr   r   r   r   *   s    
r   c             C   s4   | j dd}|d jdjd|d jdjdfS )Nr   r   r   \r   r   )r   strip)r   r!   r   r   r   r   :   s    r   c             C   s   | j dd}d }t|dkr(|\}}}}|dkrLddddddd	d
dfS dddddddddddddddddddddddddddd	d
df
S )Nr   r   r   Zgpdbzgpdb_5.0_plusi9 )r   r   Z5_plusdefaultr   Z11_plusi Z10_plusi z9.6_plusia z9.5_plusia z9.4_plusi a z9.3_plusi` z9.2_plusiX` z9.1_plusi_ z9.0_plusi_ )r   r   )r   r!   Zserver_typer"   r   r   r   r   @   s$    r   N)Zflask.templatingr   Zjinja2r   r   r   r   r   r   r   r   r   <module>	   s
   