3
7^                 @   sD   d Z ddlmZ ddlmZ G dd dejZ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.
    )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-8app2_gc/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_decoded-   s    zAbstractBaseSession.get_decodedN)r   r   r   r   Z	CharFieldr   r   Z	TextFieldr    ZDateTimeFieldr   r   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   