3
(hW                 @   s`   d Z ddlmZ ddlmZ ddlmZ ddlmZ	 G dd dej
ZeG dd	 d	ejZd
S )zn
This module allows importing AbstractBaseSession even
when django.contrib.sessions is not in INSTALLED_APPS.
    )unicode_literals)models)python_2_unicode_compatible)ugettext_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   H/tmp/pip-install-q3hcpn_q/Django/django/contrib/sessions/base_session.pyr	      s    
zBaseSessionManager.encodec             C   s.   | j || j||}|r"|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               @   sp   e Zd ZejeddddZejedZej	edddZ
e ZG dd	 d	Zd
d Zedd Zdd ZdS )AbstractBaseSessionzsession key(   T)
max_lengthZprimary_keyzsession datazexpire date)Z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_decoded1   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__
__future__r   Z	django.dbr   Zdjango.utils.encodingr   Zdjango.utils.translationr   r   Managerr   ZModelr   r   r   r   r   <module>   s   