예제 #1
0
파일: database.py 프로젝트: s0nskar/sunpy
    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
예제 #2
0
    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