Coverage for /opt/cloud/slavespace/usr1/096471637100f3de0fcfc01072822a80/dttest/api/python/llm_datadist_v1/data_type.py: 86%

28 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-07-27 10:02 +0800

1#!/usr/bin/env python3 

2# -*- coding: utf-8 -*- 

3# ------------------------------------------------------------------- 

4# ----------------------------------------------------------------------------------------------------------- 

5# Copyright (c) 2025 Huawei Technologies Co., Ltd. 

6# This program is free software, you can redistribute it and/or modify it under the terms and conditions of 

7# CANN Open Software License Agreement Version 2.0 (the "License"). 

8# Please refer to the License for details. You may not use this file except in compliance with the License. 

9# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, 

10# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. 

11# See LICENSE in the root of the software repository for the full text of the License. 

12# ----------------------------------------------------------------------------------------------------------- 

13 

14from enum import Enum 

15 

16import numpy as np 

17 

18from . import llm_wrapper as metadef_wrapper 

19 

20 

21class DataType(Enum): 

22 DT_FLOAT = int(metadef_wrapper.DT_FLOAT) 

23 DT_FLOAT16 = int(metadef_wrapper.DT_FLOAT16) 

24 DT_BF16 = int(metadef_wrapper.DT_BF16) 

25 DT_INT8 = int(metadef_wrapper.DT_INT8) 

26 DT_INT16 = int(metadef_wrapper.DT_INT16) 

27 DT_UINT16 = int(metadef_wrapper.DT_UINT16) 

28 DT_UINT8 = int(metadef_wrapper.DT_UINT8) 

29 DT_INT32 = int(metadef_wrapper.DT_INT32) 

30 DT_INT64 = int(metadef_wrapper.DT_INT64) 

31 DT_UINT32 = int(metadef_wrapper.DT_UINT32) 

32 DT_UINT64 = int(metadef_wrapper.DT_UINT64) 

33 DT_BOOL = int(metadef_wrapper.DT_BOOL) 

34 DT_DOUBLE = int(metadef_wrapper.DT_DOUBLE) 

35 DT_STRING = int(metadef_wrapper.DT_STRING) 

36 

37 

38_dwrapper_dtype_to_python_dtype = { 

39 metadef_wrapper.DT_FLOAT: DataType.DT_FLOAT, 

40 metadef_wrapper.DT_FLOAT16: DataType.DT_FLOAT16, 

41 metadef_wrapper.DT_BF16: DataType.DT_BF16, 

42 metadef_wrapper.DT_INT8: DataType.DT_INT8, 

43 metadef_wrapper.DT_INT16: DataType.DT_INT16, 

44 metadef_wrapper.DT_UINT16: DataType.DT_UINT16, 

45 metadef_wrapper.DT_UINT8: DataType.DT_UINT8, 

46 metadef_wrapper.DT_INT32: DataType.DT_INT32, 

47 metadef_wrapper.DT_INT64: DataType.DT_INT64, 

48 metadef_wrapper.DT_UINT32: DataType.DT_UINT32, 

49 metadef_wrapper.DT_UINT64: DataType.DT_UINT64, 

50 metadef_wrapper.DT_BOOL: DataType.DT_BOOL, 

51 metadef_wrapper.DT_DOUBLE: DataType.DT_DOUBLE, 

52 metadef_wrapper.DT_STRING: DataType.DT_STRING, 

53} 

54 

55python_dtype_2_dwrapper_dtype = { 

56 DataType.DT_FLOAT: metadef_wrapper.DT_FLOAT, 

57 DataType.DT_FLOAT16: metadef_wrapper.DT_FLOAT16, 

58 DataType.DT_BF16: metadef_wrapper.DT_BF16, 

59 DataType.DT_INT8: metadef_wrapper.DT_INT8, 

60 DataType.DT_INT16: metadef_wrapper.DT_INT16, 

61 DataType.DT_UINT16: metadef_wrapper.DT_UINT16, 

62 DataType.DT_UINT8: metadef_wrapper.DT_UINT8, 

63 DataType.DT_INT32: metadef_wrapper.DT_INT32, 

64 DataType.DT_INT64: metadef_wrapper.DT_INT64, 

65 DataType.DT_UINT32: metadef_wrapper.DT_UINT32, 

66 DataType.DT_UINT64: metadef_wrapper.DT_UINT64, 

67 DataType.DT_BOOL: metadef_wrapper.DT_BOOL, 

68 DataType.DT_DOUBLE: metadef_wrapper.DT_DOUBLE, 

69 DataType.DT_STRING: metadef_wrapper.DT_STRING, 

70} 

71 

72 

73def get_python_dtype_from_wrapper_dtype(wrapper_dtype): 

74 dtype = _dwrapper_dtype_to_python_dtype.get(wrapper_dtype, None) 

75 if not dtype: 

76 raise ValueError(f"The data type {wrapper_dtype} is not support.") 

77 return dtype 

78 

79 

80dtype_to_np_dtype = { 

81 DataType.DT_FLOAT: np.float32, 

82 DataType.DT_FLOAT16: np.float16, 

83 DataType.DT_BF16: np.float16, 

84 DataType.DT_INT8: np.int8, 

85 DataType.DT_INT16: np.int16, 

86 DataType.DT_UINT16: np.uint16, 

87 DataType.DT_UINT8: np.uint8, 

88 DataType.DT_INT32: np.int32, 

89 DataType.DT_INT64: np.int64, 

90 DataType.DT_UINT32: np.uint32, 

91 DataType.DT_UINT64: np.uint64, 

92 DataType.DT_BOOL: np.bool_, 

93 DataType.DT_DOUBLE: np.double, 

94 DataType.DT_STRING: np.bytes_, 

95} 

96 

97valid_np_dtypes = list(dtype_to_np_dtype.values()) 

98 

99np_dtype_to_dtype = { 

100 np.dtype(np.float32): DataType.DT_FLOAT, 

101 np.dtype(np.float16): DataType.DT_FLOAT16, 

102 np.dtype(np.int8): DataType.DT_INT8, 

103 np.dtype(np.int16): DataType.DT_INT16, 

104 np.dtype(np.uint16): DataType.DT_UINT16, 

105 np.dtype(np.uint8): DataType.DT_UINT8, 

106 np.dtype(np.int32): DataType.DT_INT32, 

107 np.dtype(np.int64): DataType.DT_INT64, 

108 np.dtype(np.uint32): DataType.DT_UINT32, 

109 np.dtype(np.uint64): DataType.DT_UINT64, 

110 np.dtype(np.bool_): DataType.DT_BOOL, 

111 np.dtype(np.double): DataType.DT_DOUBLE, 

112 np.dtype(np.bytes_): DataType.DT_STRING, 

113}