Source code for q2_sdk.hq.db.data_type

from lxml.objectify import IntElement, StringElement
from argparse import _SubParsersAction
from functools import partial
from typing import Optional

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)

from q2_sdk.hq.db.db_object import DbObject
from q2_sdk.hq.db.representation_row_base import RepresentationRowBase
from q2_sdk.hq.models.hq_params.stored_procedure import Param

D_TYPES = ExecuteStoredProcedure.DataType


[docs] class DataTypeRow(RepresentationRowBase): DataTypeID: IntElement = "DataTypeID" DataType: StringElement = "DataType" ValidationRegexID: IntElement = "ValidationRegexID" EditMask: StringElement = "EditMask"
[docs] class DataType(DbObject): NAME = "DataType" REPRESENTATION_ROW_CLASS = DataTypeRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_data_types") subparser.set_defaults(parser="get_data_types") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True))
[docs] async def get( self, data_type: Optional[str] = None, serialize_for_cli=False ) -> list[DataTypeRow]: sql_params = [] if data_type: Param(data_type, D_TYPES.VarChar, "DataType").add_to_param_list(sql_params) response = await self.call_hq( "sdk_GetDataTypes", sql_parameters=ExecuteStoredProcedure.SqlParameters(sql_params), ) if serialize_for_cli: fields_to_truncate = [] columns = [ "DataTypeID", "DataType", "ValidationRegexID", "EditMask", ] response = self.serialize_for_cli( response, fields_to_display=columns, fields_to_truncate=fields_to_truncate, ) return response