
vÅÏ^Ò  ã               @   s\   d  Z  d d l m Z d d l m Z Gd d „  d e j ƒ Z Gd d „  d e j ƒ Z	 d S)	zn
This module allows importing AbstractBaseSession even
when django.contrib.sessions is not in INSTALLED_APPS.
é    )Úmodels)Úgettext_lazyc               @   s(   e  Z d  Z d d „  Z d d „  Z d S)ÚBaseSessionManagerc             C   s   |  j  j ƒ  } | ƒ  j | ƒ S)zY
        Return the given session dictionary serialized and encoded as a string.
        )ÚmodelÚget_session_store_classÚencode)ÚselfÚsession_dictÚsession_store_class© r   úF/tmp/pip-build-8lau8j11/django/django/contrib/sessions/base_session.pyr   
   s    zBaseSessionManager.encodec             C   s?   |  j  | |  j | ƒ | ƒ } | r1 | j ƒ  n
 | j ƒ  | S)N)r   r   ÚsaveÚdelete)r   Úsession_keyr	   Úexpire_dateÚsr   r   r   r      s
    
zBaseSessionManager.saveN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   	   s   r   c               @   s§   e  Z d  Z e j e d ƒ d d d d ƒZ e j e d ƒ ƒ Z e j	 e d ƒ d d ƒZ
 e ƒ  Z Gd	 d
 „  d
 ƒ Z d d „  Z e d d „  ƒ Z d d „  Z d S)ÚAbstractBaseSessionzsession keyÚ
max_lengthé(   Zprimary_keyTzsession datazexpire dateZdb_indexc               @   s.   e  Z d  Z d Z e d ƒ Z e d ƒ Z d S)zAbstractBaseSession.MetaTÚsessionÚsessionsN)r   r   r   ZabstractÚ_Zverbose_nameZverbose_name_pluralr   r   r   r   ÚMeta!   s   r   c             C   s   |  j  S)N)r   )r   r   r   r   Ú__str__&   s    zAbstractBaseSession.__str__c             C   s
   t  ‚ d  S)N)ÚNotImplementedError)Úclsr   r   r   r   )   s    z+AbstractBaseSession.get_session_store_classc             C   s   |  j  ƒ  } | ƒ  j |  j ƒ S)N)r   ÚdecodeÚsession_data)r   r
   r   r   r   Úget_decoded-   s    zAbstractBaseSession.get_decodedN)r   r   r   r   Z	CharFieldr   r   Z	TextFieldr    ZDateTimeFieldr   r   Zobjectsr   r   Úclassmethodr   r!   r   r   r   r   r      s   !	r   N)
Ú__doc__Z	django.dbr   Zdjango.utils.translationr   r   ÚManagerr   ZModelr   r   r   r   r   Ú<module>   s   