Source code for q2_sdk.hq.db.host_tran_code_group

from argparse import _SubParsersAction
from functools import partial
from typing import List

from lxml.objectify import IntElement, StringElement

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.hq.models.hq_params.stored_procedure import Param
from q2_sdk.tools.decorators import dev_only

from .db_object import DbObject
from .representation_row_base import RepresentationRowBase

D_TYPES = ExecuteStoredProcedure.DataType


[docs] class HostTranCodeGroupRow(RepresentationRowBase): TranCodeGroupID: IntElement = "TranCodeGroupID" Description: StringElement = "Description"
[docs] class HostTranCodeGroup(DbObject): GET_BY_NAME_KEY = "Description" NAME = "HostTranCodeGroup" REPRESENTATION_ROW_CLASS = HostTranCodeGroupRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_host_tran_code_groups") subparser.set_defaults(parser="get") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True)) subparser = parser.add_parser("create_host_tran_code_group") subparser.set_defaults(parser="create") subparser.set_defaults(func=partial(self.create)) subparser.add_argument("description", help="Q2_HostTranCodeGroup.Description") subparser = parser.add_parser("delete_host_tran_code_group") subparser.set_defaults(parser="delete") subparser.set_defaults(func=partial(self.delete)) subparser.add_argument("description", help="Q2_HostTranCodeGroup.Description")
[docs] async def get(self, serialize_for_cli=False) -> List[HostTranCodeGroupRow]: response = await self.call_hq("sdk_GetHostTranCodeGroup") if serialize_for_cli: columns = ["TranCodeGroupID", "Description"] response = self.serialize_for_cli(response, columns) return response
[docs] async def create(self, description): params = [] tran_code_group_id = -1 Param(tran_code_group_id, D_TYPES.Int, "TranCodeGroupID").add_to_param_list( params ) Param(description, D_TYPES.VarChar, "Description").add_to_param_list(params) await self.call_hq( "Q2_HostTranCodeGroupInsert", ExecuteStoredProcedure.SqlParameters(params) )
[docs] @dev_only async def delete(self, description): """Note: this only works in the dev environment""" await self.call_hq( "sdk_RemoveHostTranCodeGroup", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "Description", description, ) ]), )