Source code for BasicTools.IO.IOFactory

# -*- coding: utf-8 -*-
#
# This file is subject to the terms and conditions defined in
# file 'LICENSE.txt', which is part of this source code package.
#


"""Factory for handling input and output
"""

from BasicTools.Helpers.Factory import Factory

[docs]def RegisterReaderClass(name, classtype, constructor=None, withError = True): return ReaderFactory.RegisterClass(name,classtype, constructor=constructor, withError = withError )
[docs]def CreateReader(name,ops=None): return ReaderFactory.Create(name,ops)
[docs]class ReaderFactory(Factory): _Catalog = {} _SetCatalog = set() def __init__(self): super(ReaderFactory,self).__init__()
[docs]def GetAvailableReaders(): return list(ReaderFactory._Catalog.keys())
[docs]def InitAllReaders(): import BasicTools.IO.InpReader as InpReader import BasicTools.IO.AscReader as AscReader import BasicTools.IO.AnsysReader as AnsysReader import BasicTools.IO.GeofReader as GeofReader import BasicTools.IO.GeoReader as GeoReader import BasicTools.IO.GmshReader as GmshReader import BasicTools.IO.MeshReader as MeshReader import BasicTools.IO.GReader as GReader import BasicTools.IO.FemReader as FemReader from BasicTools.IO.StlReader import ReadStl from BasicTools.IO.XdmfReader import ReadXdmf from BasicTools.IO.PipeIO import PipeReader from BasicTools.IO.OdbReader import OdbReader from BasicTools.IO.UtReader import UtReader from BasicTools.IO.VtkReader import VtkReader from BasicTools.IO.SamcefReader import DatReader import BasicTools.IO.SamcefOutputReader import BasicTools.IO.PickleTools import BasicTools.IO.CGNSReader import BasicTools.IO.FemmReader
[docs]def InitAllWriters(): from BasicTools.IO.GeofWriter import GeofWriter from BasicTools.IO.GmshWriter import GmshWriter from BasicTools.IO.MeshWriter import MeshWriter from BasicTools.IO.OdbWriter import OdbWriter from BasicTools.IO.StlWriter import StlWriter from BasicTools.IO.XdmfWriter import XdmfWriter from BasicTools.IO.PipeIO import PipeWriter from BasicTools.IO.CsvWriter import CsvWriter import BasicTools.IO.PickleTools import BasicTools.IO.Catalyst import BasicTools.IO.InpWriter import BasicTools.IO.CGNSWriter
[docs]def RegisterWriterClass(name, classtype, constructor=None, withError = True): WriterFactory.RegisterClass(name,classtype, constructor=constructor, withError = withError )
[docs]def CreateWriter(name,ops=None): return WriterFactory.Create("."+name.split(".")[-1],ops)
[docs]class WriterFactory(Factory): _Catalog = {} _SetCatalog = set() def __init__(self): super(WriterFactory,self).__init__()
[docs]def GetAvailableWriter(): return list(WriterFactory._Catalog.keys())
[docs]def CheckIntegrity(): from BasicTools.IO.IOFactory import WriterFactory, ReaderFactory from BasicTools.IO.IOFactory import GetAvailableReaders, RegisterReaderClass from BasicTools.IO.IOFactory import GetAvailableWriter ## InitAllReaders() class DummyReaderI: pass class DummyReaderII: pass RegisterReaderClass(".test",DummyReaderI,withError=True) RegisterReaderClass(".test",DummyReaderII,withError=False) print("Available Readers : ", GetAvailableReaders()) print("Available Readers for '.test': ", ReaderFactory.GetAvailablesFor(".test")) print(CreateReader(".test")) InitAllWriters() class DummyWriterI: pass class DummyWriterII: pass RegisterWriterClass(".test",DummyWriterI,withError=True) RegisterWriterClass(".test",DummyWriterII,withError=False) print("Available Writers : ", GetAvailableWriter()) print("Available Writers for '.test': ", WriterFactory.GetAvailablesFor(".test")) print(CreateWriter(".test")) print("---------------------") ReaderFactory.PrintAvailable() print("---------------------") WriterFactory.PrintAvailable() ReaderFactory() WriterFactory() return "ok"
if __name__ == '__main__': print(CheckIntegrity())# pragma: no cover