class OutNcFile(AbinitNcFile): """ Class representing the _OUT.nc file containing the dataset results produced at the end of the run. The netcdf variables can be accessed via instance attribute e.g. ``outfile.ecut``. Provides integration with ipython_. """ # TODO: This object is deprecated def __init__(self, filepath): super().__init__(filepath) self.reader = NetcdfReader(filepath) self._varscache = {k: None for k in self.reader.rootgrp.variables} def __dir__(self): """Ipython integration.""" return sorted(list(self._varscache.keys())) def __getattribute__(self, name): try: return super().__getattribute__(name) except AttributeError: # Look in self._varscache varscache = super().__getattribute__("_varscache") if name not in varscache: raise AttributeError("Cannot find attribute %s" % name) reader = super().__getattribute__("reader") if varscache[name] is None: varscache[name] = reader.read_value(name) return varscache[name] @lazy_property def params(self): """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" return {} def close(self): """Close the file.""" self.reader.close() def get_allvars(self): """ Read all netcdf_ variables present in the file. Return dictionary varname --> value """ for k, v in self._varscache.items(): if v is not None: continue self._varscache[k] = self.reader.read_value(k) return self._varscache
class OutNcFile(AbinitNcFile): """ Class representing the _OUT.nc file containing the dataset results produced at the end of the run. The netcdf variables can be accessed via instance attribute e.g. ``outfile.ecut``. Provides integration with ipython_. """ def __init__(self, filepath): super(OutNcFile, self).__init__(filepath) self.reader = NetcdfReader(filepath) self._varscache= {k: None for k in self.reader.rootgrp.variables} def __dir__(self): """Ipython integration.""" return sorted(list(self._varscache.keys())) def __getattribute__(self, name): try: return super(OutNcFile, self).__getattribute__(name) except AttributeError: # Look in self._varscache varscache = super(OutNcFile, self).__getattribute__("_varscache") if name not in varscache: raise AttributeError("Cannot find attribute %s" % name) reader = super(OutNcFile, self).__getattribute__("reader") if varscache[name] is None: varscache[name] = reader.read_value(name) return varscache[name] @lazy_property def params(self): """:class:`OrderedDict` with parameters that might be subject to convergence studies.""" return {} def close(self): """Close the file.""" self.reader.close() def get_allvars(self): """ Read all netcdf_ variables present in the file. Return dictionary varname --> value """ for k, v in self._varscache.items(): if v is not None: continue self._varscache[k] = self.reader.read_value(k) return self._varscache
class OutNcFile(AbinitNcFile): """ Class representing the _OUT.nc file containing the dataset results produced at the end of the run. The netcdf variables can be accessed via instance attribute e.g. `outfile.ecut`. Provides integration with ipython. """ def __init__(self, filepath): super(OutNcFile, self).__init__(filepath) self.reader = NetcdfReader(filepath) self._varscache = {k: None for k in self.reader.rootgrp.variables} def __dir__(self): """Ipython integration.""" return sorted(list(self._varscache.keys())) def __getattribute__(self, name): try: return super(OutNcFile, self).__getattribute__(name) except AttributeError: # Look in self._varscache varscache = super(OutNcFile, self).__getattribute__("_varscache") if name not in varscache: raise AttributeError("Cannot find attribute %s" % name) reader = super(OutNcFile, self).__getattribute__("reader") if varscache[name] is None: varscache[name] = reader.read_value(name) return varscache[name] def close(self): self.reader.close() def get_allvars(self): """ Read all netcdf variables present in the file. Return dictionary varname --> value """ for k, v in self._varscache.items(): if v is not None: continue self._varscache[k] = self.reader.read_value(k) return self._varscache