
    7 f                     V    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e          Z	dS )    N)apps)gettext_lazy)Panelc                   Z    e Zd ZdZed             Z ed          ZdZd Z	d Z
d Zd Zd	S )
VersionsPanelzK
    Shows versions of Python, Django, and installed apps if possible.
    c                 .    dt          j                    z  S )Nz	Django %s)djangoget_version)selfs    S/var/www/equiseq/venv/lib/python3.11/site-packages/debug_toolbar/panels/versions.pynav_subtitlezVersionsPanel.nav_subtitle   s    V/1111    Versionsz"debug_toolbar/panels/versions.htmlc                     dddt           j        d d         z  fdd|                     t                    fg}|t	          |                                           z  }|                     t          |d           t           j        d           d S )	NPython z%d.%d.%d   Djangoc                     | d         S )Nr    )vs    r   <lambda>z.VersionsPanel.generate_stats.<locals>.<lambda>   s
    ! r   )key)versionspaths)	sysversion_infoget_app_versionr	   listgen_app_versionsrecord_statssortedpath)r   requestresponser   s       r   generate_statszVersionsPanel.generate_stats   s    r:(8!(<<=r4//778
 	D..00111nn===QQ	
 	
 	
 	
 	
r   c              #      K   t          j                    D ]3}|j        }|j        }|                     |          }|r|j        ||fV  4d S N)r   get_app_configsverbose_namemoduler   __name__)r   
app_confignameappversions        r   r    zVersionsPanel.gen_app_versions!   si      .00 	2 	2J*D#C**3//G 2lD'1111	2 	2r   c                     |                      |          }t          |t          t          f          r2d                    d |D                                           d          }|S )N.c              3   4   K   | ]}t          |          V  d S r(   )str).0os     r   	<genexpr>z0VersionsPanel.get_app_version.<locals>.<genexpr>.   s(      77!s1vv777777r   )get_version_from_app
isinstancer   tuplejoinrstrip)r   r/   r0   s      r   r   zVersionsPanel.get_app_version)   sa    ++C00ge}-- 	D hh77w77777>>sCCGr   c                     t          |d          r3|j        }t          |          r	  |            S # t          $ r Y nw xY w|S t          |d          r|j        S t          |d          r|j        S d S )Nr
   VERSION__version__)hasattrr
   callable	TypeErrorr>   r?   )r   r/   r
   s      r   r8   z"VersionsPanel.get_version_from_app1   s    3&& 	#/K$$ #&;==(    D #"3	"" 	;3&& 	#?"s   	2 
??N)r,   
__module____qualname____doc__propertyr   _titletemplater&   r    r   r8   r   r   r   r   r   
   s          2 2 X2 AjMME3H
 
 
2 2 2      r   r   )
r   r	   django.appsr   django.utils.translationr   rG   debug_toolbar.panelsr   r   r   r   r   <module>rM      s    



        6 6 6 6 6 6 & & & & & &5 5 5 5 5E 5 5 5 5 5r   