Source code for bmtk.utils.reports.compartment.compartment_report

from .compartment_reader import CompartmentReaderVer01 as SonataReaderDefault
from .compartment_writer import CompartmentWriterv01 as SonataWriterDefault
from .core import CompartmentReaderABC, CompartmentWriterABC
from bmtk.utils.io import bmtk_world_comm

try:
    comm = bmtk_world_comm.comm
    rank = comm.Get_rank()
    nhosts = comm.Get_size()

except Exception as exc:
    pass


[docs]class CompartmentReport(object): def __new__(cls, path, mode='r', adaptor=None, *args, **kwargs): if adaptor is not None: return adaptor else: if mode == 'r': return SonataReaderDefault(path, mode, **kwargs) else: return SonataWriterDefault(path, mode, **kwargs)
[docs] @staticmethod def load(report): if isinstance(report, CompartmentReaderABC): return report elif isinstance(report, CompartmentWriterABC): raise AttributeError('Unable to load a CompartmentWriter object.') else: return CompartmentReport(report, mode='r')