• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3
4#
5# Copyright (c) 2023 Huawei Device Co., Ltd.
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10#     http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18
19from exceptions.ohos_exception import OHOSException
20from helper.noInstance import NoInstance
21
22
23class TypeCheckUtil(metaclass=NoInstance):
24
25    @staticmethod
26    def check_arg_type(arg_object, target_class):
27        if not isinstance(arg_object, target_class):
28            raise OHOSException(f'type error')
29
30    @staticmethod
31    def is_bool_type(value):
32        if isinstance(value, bool):
33            return True
34        elif isinstance(value, str):
35            return value in ['true', 'True', 'false', 'False']
36        else:
37            return False
38
39    @staticmethod
40    def is_int_type(value):
41        if isinstance(value, int):
42            return True
43        elif isinstance(value, str):
44            return value.isdigit()
45        else:
46            return False
47
48    @staticmethod
49    def tile_list(value: list) -> list:
50        result = []
51        for entity in value:
52            if isinstance(entity, list):
53                result += TypeCheckUtil.tile_list(entity)
54            elif isinstance(entity, str):
55                result.append(entity)
56            else:
57                pass
58        return result
59