a
    Ig                     @   sH   d dl Z d dlZd dlmZ d dlmZ d dlmZ G dd deZ	dS )    N)apps)gettext_lazy)Panelc                   @   sH   e Zd ZdZedd ZedZdZdd Z	dd	 Z
d
d Zdd ZdS )VersionsPanelzK
    Shows versions of Python, Django, and installed apps if possible.
    c                 C   s   dt   S )Nz	Django %s)djangoget_version)self r	   Y/var/www/html/django/DPS/env/lib/python3.9/site-packages/debug_toolbar/panels/versions.pynav_subtitle   s    zVersionsPanel.nav_subtitleZVersionsz"debug_toolbar/panels/versions.htmlc                 C   sZ   dddt jd d  fdd| tfg}|t|  7 }| t|dd dt jd	 d S )
NPython z%d.%d.%d   ZDjangoc                 S   s   | d S )Nr   r	   )vr	   r	   r
   <lambda>       z.VersionsPanel.generate_stats.<locals>.<lambda>)key)versionspaths)	sysversion_infoget_app_versionr   listgen_app_versionsZrecord_statssortedpath)r   requestresponser   r	   r	   r
   generate_stats   s    zVersionsPanel.generate_statsc                 c   s:   t  D ],}|j}|j}| |}|r|j||fV  qd S N)r   Zget_app_configsZverbose_namemoduler   __name__)r   Z
app_confignameappversionr	   r	   r
   r   !   s    
zVersionsPanel.gen_app_versionsc                 C   s6   |  |}t|ttfr2ddd |D d}|S )N.c                 s   s   | ]}t |V  qd S r   )str).0or	   r	   r
   	<genexpr>.   r   z0VersionsPanel.get_app_version.<locals>.<genexpr>)get_version_from_app
isinstancer   tuplejoinrstrip)r   r#   r$   r	   r	   r
   r   )   s    
zVersionsPanel.get_app_versionc                 C   s^   t |dr:|j}t|r6z| W S  ty2   Y q:0 n|S t |drJ|jS t |drZ|jS d S )Nr   VERSION__version__)hasattrr   callable	TypeErrorr/   r0   )r   r#   r   r	   r	   r
   r*   1   s    


z"VersionsPanel.get_version_from_appN)r!   
__module____qualname____doc__propertyr   _titletemplater   r   r   r*   r	   r	   r	   r
   r   
   s   

r   )
r   r   Zdjango.appsr   Zdjango.utils.translationr   r8   Zdebug_toolbar.panelsr   r   r	   r	   r	   r
   <module>   s
   