î
à^Q\î  ã               @   sx   d  d l  m Z m Z d  d l Z d  d l Z d  d l m Z d  d l m Z	 d  d l
 m Z Gd d „  d e ƒ Z d S)é    )Úabsolute_importÚunicode_literalsN)Úapps)Úugettext_lazy)ÚPanelc               @   sj   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  j ƒ  S)Nz	Django %s)ÚdjangoÚget_version)Úself© r   úQ/var/www/dbchiro/venv/build/django-debug-toolbar/debug_toolbar/panels/versions.pyÚnav_subtitle   s    zVersionsPanel.nav_subtitleZVersionsz"debug_toolbar/panels/versions.htmlc             C   s‚   d d d t  j d  d … f d d |  j t ƒ f g } | t |  j ƒ  ƒ 7} |  j i t | d d d „  ƒd	 6t  j d
 6ƒ d  S)NÚPythonÚ z%d.%d.%dé   ZDjangoÚkeyc             S   s   |  d S)Nr   r   )Úvr   r   r   Ú<lambda>   s    z.VersionsPanel.generate_stats.<locals>.<lambda>Ú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   sV   xO t  j ƒ  D]A } | j } | j } |  j | ƒ } | r | j | | f Vq q Wd  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   sP   |  j  | ƒ } t | t t f ƒ rL d j d d „  | Dƒ ƒ j d ƒ } n  | S)NÚ.c             s   s   |  ] } t  | ƒ Vq d  S)N)Ústr)Ú.0Úor   r   r   ú	<genexpr>0   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 ƒ rN | j } t | ƒ rG y | ƒ  SWqK t k
 rC YqK XqN | Sn  t  | d ƒ rd | j St  | d ƒ rz | j Sd  S)Nr	   ÚVERSIONÚ__version__)Úhasattrr	   ÚcallableÚ	TypeErrorr/   r0   )r
   r#   r	   r   r   r   r*   3   s    	z"VersionsPanel.get_version_from_appN)r!   Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   Ú_ÚtitleÚtemplater   r   r   r*   r   r   r   r   r      s   r   )Ú
__future__r   r   r   r   Zdjango.appsr   Zdjango.utils.translationr   r8   Zdebug_toolbar.panelsr   r   r   r   r   r   Ú<module>   s   