def __init__(self, url=None, CacheClass=LRUCache, cache_size=float('inf'), default_waveunit=None): if url is None: url = sunpy.config.get('database', 'url') self._engine = create_engine(url) self._session_cls = sessionmaker(bind=self._engine) self.session = scoped_session(self._session_cls) self._command_manager = commands.CommandManager() self.default_waveunit = default_waveunit if self.default_waveunit is not None: try: self.default_waveunit = units.Unit(default_waveunit) except ValueError: raise tables.WaveunitNotConvertibleError(default_waveunit) self._enable_history = True class Cache(CacheClass): def callback(this, entry_id, database_entry): self.remove(database_entry) def append(this, value): try: this[max(this or [0]) + 1] = value except TypeError: this[1] = value self._create_tables() self._cache = Cache(cache_size) for entry in self: self._cache[entry.id] = entry
def __init__(self, url=None, CacheClass=LRUCache, cache_size=float('inf'), default_waveunit=None): if url is None: url = sunpy.config.get('database', 'url') self._engine = create_engine(url) self._session_cls = sessionmaker(bind=self._engine) self.session = self._session_cls() self._command_manager = commands.CommandManager() self.default_waveunit = default_waveunit self._enable_history = True class Cache(CacheClass): def callback(this, entry_id, database_entry): self.remove(database_entry) def append(this, value): this[max(this or [0]) + 1] = value self._create_tables() self._cache = Cache(cache_size) for entry in self: self._cache[entry.id] = entry