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
« 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# -----------------------------------------------------------------------------------------------------------
14from enum import Enum
16import numpy as np
18from . import llm_wrapper as metadef_wrapper
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)
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}
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}
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
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}
97valid_np_dtypes = list(dtype_to_np_dtype.values())
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}