Source code for ncbitaxonomist.convert.converter

"""
..
  Copyright 2019, 2020 The University of Sydney

.. moduleauthor:: Jan P Buchmann <jan.buchmann@sydney.edu.au>
"""


from typing import Dict, Mapping, Type

import ncbitaxonomist.model.datamodel

[docs]class ModelConverter: """Base class for converters between attributes and models.""" def __init__(self): pass
[docs] def convert_to_model(self, attributes:Mapping[str,any], srcdb=None)->Type[ncbitaxonomist.model.datamodel.DataModel]: """Virtual method converts attributes to model""" raise NotImplementedError
[docs] def convert_from_model(self, model:Type[ncbitaxonomist.model.datamodel.DataModel], outdict:Mapping=None)->Dict: """Virtual method converts model to attributes""" raise NotImplementedError
[docs] def map_inattributes(self, mattribs:Mapping[str,any], indata:Mapping[str,any], convmap:Mapping[str,str], switch:bool=False): """Map input attributes to wanted model attributes""" for i in convmap: if i in indata and convmap[i] is None and indata[i]: if switch: mattribs[indata.pop(i)] = i else: mattribs[i] = indata.pop(i) if i in indata and convmap[i] is not None and indata[i]: if switch: mattribs[indata.pop(i)] = convmap[i] else: mattribs[convmap[i]] = indata.pop(i)