Source code for pystratum_pgsql.wrapper

"""
PyStratum
"""
from typing import Dict

from pystratum_pgsql.wrapper.PgSqlFunctionsWrapper import PgSqlFunctionsWrapper
from pystratum_pgsql.wrapper.PgSqlLogWrapper import PgSqlLogWrapper
from pystratum_pgsql.wrapper.PgSqlNoneWrapper import PgSqlNoneWrapper
from pystratum_pgsql.wrapper.PgSqlRow0Wrapper import PgSqlRow0Wrapper
from pystratum_pgsql.wrapper.PgSqlRow1Wrapper import PgSqlRow1Wrapper
from pystratum_pgsql.wrapper.PgSqlRowsWithIndexWrapper import PgSqlRowsWithIndexWrapper
from pystratum_pgsql.wrapper.PgSqlRowsWithKeyWrapper import PgSqlRowsWithKeyWrapper
from pystratum_pgsql.wrapper.PgSqlRowsWrapper import PgSqlRowsWrapper
from pystratum_pgsql.wrapper.PgSqlSingleton0Wrapper import PgSqlSingleton0Wrapper
from pystratum_pgsql.wrapper.PgSqlSingleton1Wrapper import PgSqlSingleton1Wrapper
from pystratum_pgsql.wrapper.PgSqlTableWrapper import PgSqlTableWrapper
from pystratum_pgsql.wrapper.PgSqlWrapper import PgSqlWrapper


[docs]def create_routine_wrapper(routine: Dict, lob_as_string_flag: bool) -> PgSqlWrapper: """ A factory for creating the appropriate object for generating a wrapper method for a stored routine. :param dict[str,str] routine: The metadata of the sored routine. :param bool lob_as_string_flag: If True BLOBs and CLOBs must be treated as strings. :rtype: PgSqlWrapper """ if routine['designation'] == 'none': wrapper = PgSqlNoneWrapper(routine, lob_as_string_flag) elif routine['designation'] == 'row0': wrapper = PgSqlRow0Wrapper(routine, lob_as_string_flag) elif routine['designation'] == 'row1': wrapper = PgSqlRow1Wrapper(routine, lob_as_string_flag) elif routine['designation'] == 'rows': wrapper = PgSqlRowsWrapper(routine, lob_as_string_flag) elif routine['designation'] == 'rows_with_index': wrapper = PgSqlRowsWithIndexWrapper(routine, lob_as_string_flag) elif routine['designation'] == 'rows_with_key': wrapper = PgSqlRowsWithKeyWrapper(routine, lob_as_string_flag) elif routine['designation'] == 'singleton0': wrapper = PgSqlSingleton0Wrapper(routine, lob_as_string_flag) elif routine['designation'] == 'singleton1': wrapper = PgSqlSingleton1Wrapper(routine, lob_as_string_flag) elif routine['designation'] == 'function': wrapper = PgSqlFunctionsWrapper(routine, lob_as_string_flag) elif routine['designation'] == 'log': wrapper = PgSqlLogWrapper(routine, lob_as_string_flag) elif routine['designation'] == 'table': wrapper = PgSqlTableWrapper(routine, lob_as_string_flag) # elif routine['designation'] == 'bulk': # wrapper = BulkWrapper(routine, lob_as_string_flag) # elif routine['designation'] == 'bulk_insert': # wrapper = BulkInsertWrapper(routine, lob_as_string_flag) else: raise Exception("Unknown routine type '{0!s}'.".format(routine['designation'])) return wrapper
# ----------------------------------------------------------------------------------------------------------------------