o
    `oi                     @   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	   e/var/www/html/kuke-dev/django-kuke/venv/lib/python3.10/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>   s    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rddd |D d}|S )N.c                 s   s    | ]}t |V  qd S r   )str).0or	   r	   r
   	<genexpr>.   s    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|rz| W S  ty   Y nw |S t |dr$|jS t |dr,|jS d S )Nr   VERSION__version__)hasattrr   callable	TypeErrorr.   r/   )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   r7   Zdebug_toolbar.panelsr   r   r	   r	   r	   r
   <module>   s    