Пример #1
0
class AuctionsMapping(object):
    """Mapping for processed auctions"""

    def __init__(self, config):
        self.config = config
        if 'host' in self.config:
            config = {
                'host': self.config.get('host'),
                'port': self.config.get('port') or 6379,
                'db': self.config.get('name') or 0,
                'password': self.config.get('password') or None
            }
            self.db = StrictRedis(**config)
            LOGGER.info('Set redis store "{db}" at {host}:{port} '
                        'as auctions mapping'.format(**config))
            self._set_value = self.db.set
            self._has_value = self.db.exists
        else:
            db = self.config.get('name', 'auctions_mapping')
            self.db = LazyDB(db)
            LOGGER.info('Set lazydb "{}" as auctions mapping'.format(db))
            self._set_value = self.db.put
            self._has_value = self.db.has

    def get(self, key):
        return self.db.get(key)

    def put(self, key, value, **kwargs):
        LOGGER.info('Save ID {} in cache'.format(key))
        self._set_value(key, value, **kwargs)

    def has(self, key):
        return self._has_value(key)

    def delete(self, key):
        return self.db.delete(key)