U
    e                     @   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  }| |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-unpacked-wheel-lctamlir/django/contrib/sessions/base_session.pyr   
   s    
zBaseSessionManager.encodec                 C   s.   |  || ||}|r"|  n|  |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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 r   )r   )r   r   r   r   __str__&   s    zAbstractBaseSession.__str__c                 C   s   t d S r   )NotImplementedError)clsr   r   r   r   )   s    z+AbstractBaseSession.get_session_store_classc                 C   s   |   }| | jS r   )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   