Пример #1
0
class NameParserCache(object):
    def __init__(self):
        super(NameParserCache, self).__init__()
        self._previous_parsed = OrderedDefaultdict()
        self._cache_size = 1000
        self.lock = threading.Lock()

    def add(self, name, parse_result):
        with self.lock:
            self._previous_parsed[name] = parse_result
            _current_cache_size = len(self._previous_parsed)
            if _current_cache_size > self._cache_size:
                key = None
                for i in range(_current_cache_size - self._cache_size):
                    try:
                        key = self._previous_parsed.first_key()
                        del self._previous_parsed[key]
                    except KeyError:
                        logger.log(
                            'Could not remove old NameParserCache entry: %s' %
                            key, logger.DEBUG)

    def get(self, name):
        with self.lock:
            if name in self._previous_parsed:
                logger.log('Using cached parse result for: ' + name,
                           logger.DEBUG)
                self._previous_parsed.move_to_end(name)
                return self._previous_parsed[name]
Пример #2
0
class NameParserCache(object):
    def __init__(self):
        super(NameParserCache, self).__init__()
        self._previous_parsed = OrderedDefaultdict()
        self._cache_size = 1000
        self.lock = threading.Lock()

    def add(self, name, parse_result):
        with self.lock:
            self._previous_parsed[name] = parse_result
            _current_cache_size = len(self._previous_parsed)
            if _current_cache_size > self._cache_size:
                key = None
                for i in range(_current_cache_size - self._cache_size):
                    try:
                        key = self._previous_parsed.first_key()
                        del self._previous_parsed[key]
                    except KeyError:
                        logger.log('Could not remove old NameParserCache entry: %s' % key, logger.DEBUG)

    def get(self, name):
        with self.lock:
            if name in self._previous_parsed:
                logger.log('Using cached parse result for: ' + name, logger.DEBUG)
                self._previous_parsed.move_to_end(name)
                return self._previous_parsed[name]
Пример #3
0
def get_all_scene_exceptions(indexer_id):
    exceptions_dict = OrderedDefaultdict(list)

    my_db = db.DBConnection()
    exceptions = my_db.select('SELECT show_name,season FROM scene_exceptions WHERE indexer_id = ? ORDER BY season', [indexer_id])

    if exceptions:
        for cur_exception in exceptions:
            exceptions_dict[cur_exception['season']].append(cur_exception['show_name'])

    return exceptions_dict
Пример #4
0
    def test_ordereddefaultdict(self):

        d = OrderedDefaultdict()
        d['key1'] = 'test_item1'
        d['key2'] = 'test_item2'
        d['key3'] = 'test_item3'
        self.assertEqual('key1', d.first_key())
        del d['key1']
        d['key4'] = 'test_item4'
        d.move_to_end('key2')
        self.assertEqual('test_item2', d['key2'])
        self.assertEqual('key2', d.last_key())
        _ = 'end'
Пример #5
0
 def __init__(self):
     super(NameParserCache, self).__init__()
     self._previous_parsed = OrderedDefaultdict()
     self._cache_size = 1000
     self.lock = threading.Lock()
Пример #6
0
 def __init__(self):
     super(NameParserCache, self).__init__()
     self._previous_parsed = OrderedDefaultdict()
     self._cache_size = 1000
     self.lock = threading.Lock()