# Path: shimehari/configuration.py
# class ConfigManager(object):
#     u"""Config インスタンスを管理します。"""
# 
#     configrations = {}
# 
#     @classmethod
#     def hasConfig(cls):
#         u"""Config インスタンスが登録されているかどうか
# 
#         :param bool: Config インスタンスが登録されているかどうかを返します。
#         """
#         if not cls.configrations or len(cls.configrations) < 1:
#             return False
#         else:
#             return True
# 
#     @classmethod
#     def getConfigs(cls):
#         u"""Config インスタンスが格納されたディクショナリを返します。"""
#         return cls.configrations
# 
#     @classmethod
#     def getConfig(cls, environ=None):
#         u"""Config インスタンスを取得します。
# 
#         :param environ: 取得したい環境。
#                         指定されない場合は現在の環境に合わせた Config が返されます。
#         """
#         if environ is None:
#             environ = getEnviron()
#         if environ in cls.configrations:
#             return cls.configrations[environ]
#         return None
# 
#     @classmethod
#     def addConfigs(cls, configs=[]):
#         u"""複数の Config インスタンスをまとめて登録します。
# 
#         :param configs: Config インスタンスを格納したディクショナリ
#         """
#         [cls.addConfig(c) for c in configs]
# 
#     @classmethod
#     def addConfig(cls, config):
#         u"""Config インスタンスを登録します。
# 
#         :param config: 登録したいコンフィグインスタンス
#         """
#         if isinstance(config, Config):
#             cls.configrations.setdefault(config.environment, config)
#         else:
#             raise TypeError('config じゃない')
# 
#     @classmethod
#     def removeConfig(cls, environment):
#         u"""Config インスタンスを削除します。
# 
#         :param enviroment: 削除したい環境
#         """
#         if cls.configrations[environment]:
#             cls.configrations.pop(environment)
# 
# Path: shimehari/helpers.py
# def _assertHaveJson():
# def _assertHaveRedis():
# def getHandlerAction(resource, action):
# def getHostName(url):
#     def __init__(self):
#     def strip(self, htmlTag):
#     def handle_data(self, data):
# def urlFor(endpoint, **values):
# def findPackage(importName):
# def getModulesFromPyFile(targetPath, rootPath):
# def getRootPath(importName):
# def getEnviron():
# def sendFromDirectory(directory, filename, **options):
# def safeJoin(directory, filename):
# def sendFile(filenameOrFp, mimetype=None, asAttachment=False,
#              attachmentFilename=None, addEtags=True,
#              cacheTimeout=None, conditional=False):
# def jsonify(*args, **kwargs):
# def fillSpace(text, length):
#     def __init__(self, func, name=None, doc=None):
#     def __get__(self, obj, type=None):
# def getTemplater(app, templaterName, *args, **options):
# def flash(message, category='message'):
# def getFlashedMessage(withCategory=False, categoryFilter=[]):
#     def __init__(self, importName, appFolder='app',
#                   controllerFolder='controllers', viewFolder=None):
#         def _assetsURL(self):
#     def getStaticFolder(self, key):
#     def setStaticFolder(self, value):
#     def getStaticFolders(self):
#     def setStaticFolders(self, **folders):
#     def getStaticURL(self, key):
#     def setStaticURL(self, value):
#     def getStaticURLs(self):
#     def setStaticURLs(self, **urls):
#     def hasStaticFolder(self):
#     def sendStaticFile(self, filename):
#     def getSendFileMaxAge(self, filename):
#     def openFile(self, filename, mode='rb'):
# class Stripper(sgmllib.SGMLParser):
# class lockedCachedProperty(object):
# class _Kouzi(object):
# 
# Path: shimehari/core/helpers.py
# def importPreferredMemcachedClient(servers):
#     try:
#         import pylibmc
#     except ImportError, e:
#         pass
#     else:
#         return pylibmc.Client(servers)
# 
#     try:
#         import memcache
#     except ImportError, e:
#         try:
#             import cmemcache as memcache
#         except ImportError, e:
#             pass
#     else:
#         return memcache.Client(servers)
# 
#     try:
#         from google.appengine.api import memecache
#     except ImportError, e:
#         pass
#     else:
#         return memcache.Client()
# 
#     raise RuntimeError('no memcache modules.')
# 
# Path: shimehari/shared.py
# class _SharedRequestClass(object):
# def _lookUpObjectInRequestContext(name):
# def findApp():


from datetime import datetime
from werkzeug.contrib.securecookie import SecureCookie
from werkzeug.contrib.sessions import SessionStore as SessionStoreBase, generate_key
from shimehari.configuration import ConfigManager
from shimehari.helpers import jsonAvailable
from shimehari.core.helpers import importPreferredMemcachedClient
        from shimehari.helpers import json as msg
from shimehari.shared import request
        from redis import Redis
    from werkzeug.contrib.sessions import FileSystemSessionStore
    import msgpack as msg
        import cpickle as msg
        import pickle as msg
#!/usr/bin/env python
# -*- coding: utf-8 -*-

u"""
===============================
    Shimehari.session
    ~~~~~~~~~~~~~~~~~
    セッション管理
===============================
"""


"""シリアライズで使用するモジュールを決定します。"""
try:
except ImportError:
    try:
    except ImportError:
    finally:

# Path: shimehari/configuration.py
# class ConfigManager(object):
#     u"""Config インスタンスを管理します。"""
# 
#     configrations = {}
# 
#     @classmethod
#     def hasConfig(cls):
#         u"""Config インスタンスが登録されているかどうか
# 
#         :param bool: Config インスタンスが登録されているかどうかを返します。
#         """
#         if not cls.configrations or len(cls.configrations) < 1:
#             return False
#         else:
#             return True
# 
#     @classmethod
#     def getConfigs(cls):
#         u"""Config インスタンスが格納されたディクショナリを返します。"""
#         return cls.configrations
# 
#     @classmethod
#     def getConfig(cls, environ=None):
#         u"""Config インスタンスを取得します。
# 
#         :param environ: 取得したい環境。
#                         指定されない場合は現在の環境に合わせた Config が返されます。
#         """
#         if environ is None:
#             environ = getEnviron()
#         if environ in cls.configrations:
#             return cls.configrations[environ]
#         return None
# 
#     @classmethod
#     def addConfigs(cls, configs=[]):
#         u"""複数の Config インスタンスをまとめて登録します。
# 
#         :param configs: Config インスタンスを格納したディクショナリ
#         """
#         [cls.addConfig(c) for c in configs]
# 
#     @classmethod
#     def addConfig(cls, config):
#         u"""Config インスタンスを登録します。
# 
#         :param config: 登録したいコンフィグインスタンス
#         """
#         if isinstance(config, Config):
#             cls.configrations.setdefault(config.environment, config)
#         else:
#             raise TypeError('config じゃない')
# 
#     @classmethod
#     def removeConfig(cls, environment):
#         u"""Config インスタンスを削除します。
# 
#         :param enviroment: 削除したい環境
#         """
#         if cls.configrations[environment]:
#             cls.configrations.pop(environment)
# 
# Path: shimehari/helpers.py
# def _assertHaveJson():
# def _assertHaveRedis():
# def getHandlerAction(resource, action):
# def getHostName(url):
#     def __init__(self):
#     def strip(self, htmlTag):
#     def handle_data(self, data):
# def urlFor(endpoint, **values):
# def findPackage(importName):
# def getModulesFromPyFile(targetPath, rootPath):
# def getRootPath(importName):
# def getEnviron():
# def sendFromDirectory(directory, filename, **options):
# def safeJoin(directory, filename):
# def sendFile(filenameOrFp, mimetype=None, asAttachment=False,
#              attachmentFilename=None, addEtags=True,
#              cacheTimeout=None, conditional=False):
# def jsonify(*args, **kwargs):
# def fillSpace(text, length):
#     def __init__(self, func, name=None, doc=None):
#     def __get__(self, obj, type=None):
# def getTemplater(app, templaterName, *args, **options):
# def flash(message, category='message'):
# def getFlashedMessage(withCategory=False, categoryFilter=[]):
#     def __init__(self, importName, appFolder='app',
#                   controllerFolder='controllers', viewFolder=None):
#         def _assetsURL(self):
#     def getStaticFolder(self, key):
#     def setStaticFolder(self, value):
#     def getStaticFolders(self):
#     def setStaticFolders(self, **folders):
#     def getStaticURL(self, key):
#     def setStaticURL(self, value):
#     def getStaticURLs(self):
#     def setStaticURLs(self, **urls):
#     def hasStaticFolder(self):
#     def sendStaticFile(self, filename):
#     def getSendFileMaxAge(self, filename):
#     def openFile(self, filename, mode='rb'):
# class Stripper(sgmllib.SGMLParser):
# class lockedCachedProperty(object):
# class _Kouzi(object):
# 
# Path: shimehari/core/helpers.py
# def importPreferredMemcachedClient(servers):
#     try:
#         import pylibmc
#     except ImportError, e:
#         pass
#     else:
#         return pylibmc.Client(servers)
# 
#     try:
#         import memcache
#     except ImportError, e:
#         try:
#             import cmemcache as memcache
#         except ImportError, e:
#             pass
#     else:
#         return memcache.Client(servers)
# 
#     try:
#         from google.appengine.api import memecache
#     except ImportError, e:
#         pass
#     else:
#         return memcache.Client()
# 
#     raise RuntimeError('no memcache modules.')
# 
# Path: shimehari/shared.py
# class _SharedRequestClass(object):
# def _lookUpObjectInRequestContext(name):
# def findApp():


# Path: shimehari/session.py
from datetime import datetime
from werkzeug.contrib.securecookie import SecureCookie
from werkzeug.contrib.sessions import SessionStore as SessionStoreBase, generate_key
from shimehari.configuration import ConfigManager
from shimehari.helpers import jsonAvailable
from shimehari.core.helpers import importPreferredMemcachedClient
        from shimehari.helpers import json as msg
from shimehari.shared import request
        from redis import Redis
    from werkzeug.contrib.sessions import FileSystemSessionStore
    import msgpack as msg
        import cpickle as msg
        import pickle as msg

#!/usr/bin/env python
# -*- coding: utf-8 -*-

u"""
===============================
    Shimehari.session
    ~~~~~~~~~~~~~~~~~
    セッション管理
===============================
"""


"""シリアライズで使用するモジュールを決定します。"""
try:
except ImportError:
    try:
    except ImportError:
    finally:

        if not jsonAvailable: