Source code for pyoko.conf

# -*-  coding: utf-8 -*-
"""
"""

# Copyright (C) 2015 ZetaOps Inc.
#
# This file is licensed under the GNU General Public License v3
# (GPLv3).  See LICENSE.txt for details.

import importlib
import os


[docs]class Settings(object): def __init__(self): """ Proxy object for both static and dynamic app settings :return: """ self.DEBUG = bool(os.environ.get('DEBUG')) self.DEBUG_LEVEL = int(os.environ.get('DEBUG_LEVEL', 0)) self.SEARCH_INDEXES = {} self.CATALOG_DATA_MANAGER = "pyoko.lib.utils.simple_choices_manager" self.FILE_MANAGER = "pyoko.lib.utils.SimpleRiakFileManager" self.DATE_DEFAULT_FORMAT = "" self.DATETIME_DEFAULT_FORMAT = "" self.SETTINGS_MODULE = os.environ.get('PYOKO_SETTINGS') self.MODELS_MODULE = '.'.join( self.SETTINGS_MODULE.split('.')[:1]) + '.models' try: mod = importlib.import_module(self.SETTINGS_MODULE) except ImportError as e: raise ImportError( "Could not import settings '%s' (Is it on sys.path? " "Is there an import error in the settings file?): %s" % (self.SETTINGS_MODULE, e) ) for setting in dir(mod): if setting.isupper(): setting_value = getattr(mod, setting) setattr(self, setting, setting_value) if self.DEBUG: import sys # Will be used to store solr query logs sys._debug_db_queries = []
# def get_index(self, bucket_name): # """ # returns index name of given bucket (model) # if index can not found in SEARCH_INDEX dict of settings instance # we get up to date data from db and cache it for future requests # :type bucket_name: str # :return: index name # """ # if not self.SEARCH_INDEXES: # from pyoko.db.connection import client # self.SEARCH_INDEXES = client.bucket('pyoko_settings').get( # 'search_indexes').data or {} # if not self.SEARCH_INDEXES: # self.update_index() # try: # return self.SEARCH_INDEXES[bucket_name] # except KeyError: # raise Exception("Error: No index found for %s" % bucket_name) # # def update_index(self, bucket_name=None, index_name=None): # """ # Creates and updates search index cache # (settings.SEARCH_INDEX[bucket_name: index_name]) # If bucket_name not given, updates all buckets, # if index_name not given, gets it's value from riak # :param bucket_name: # :param index_name: # """ # from pyoko.model import _registry # from pyoko.db.connection import client # pyoko_bucket_type = client.bucket_type(self.DEFAULT_BUCKET_TYPE) # if not bucket_name: # for model in _registry.registry: # bucket = pyoko_bucket_type.bucket(model._get_bucket_name()) # self.SEARCH_INDEXES[bucket.name] = bucket.get_property( # 'search_index') # else: # self.SEARCH_INDEXES[ # bucket_name] = index_name or pyoko_bucket_type.bucket( # bucket_name).get_property('search_index') # settings_bucket = client.bucket('pyoko_settings_%s' % self.DEFAULT_BUCKET_TYPE) # search_indexes = settings_bucket.get('search_indexes') # search_indexes.data = self.SEARCH_INDEXES # search_indexes.store() settings = Settings()