Source code for ncbitaxonomist.cache.accession
"""
..
Copyright 2019, 2020 The University of Sydney
.. moduleauthor:: Jan P Buchmann <jan.buchmann@sydney.edu.au>
"""
from typing import Type
import ncbitaxonomist.model.accession
[docs]class AccessionCache:
"""
Class to handle caching of accessions. Accessions are stored mapping
accessions as key and class:`ncbitaxonomist.model.accession.AccessionData` as
value.
"""
def __init__(self):
self.accessions = {}
[docs] def cache(self, acc:Type[ncbitaxonomist.model.accession.Accession]):
"""Caches accession"""
accs = acc.get_accessions()
for i in accs:
if accs[i] not in self.accessions:
self.accessions[accs[i]] = acc
[docs] def incache(self, name=None, taxid=None):
"""Tests if given accession is in cache."""
del taxid # Unused
return name in self.accessions
[docs] def is_empty(self):
"""Tests if cache is empty."""
if self.accessions:
return False
return True
[docs] def get_accession(self, acc)->Type[ncbitaxonomist.model.accession.Accession]:
"""Returns given or all taxids in cache"""
if acc in self.accessions:
return self.accessions[acc]
return None