feat(tools): 新增常量字典基类 ConstantDict

This commit is contained in:
han0
2021-08-09 15:19:54 +08:00
parent 6959e394d7
commit 9ff9c04c35
2 changed files with 75 additions and 0 deletions

View File

View File

@@ -0,0 +1,75 @@
import re
class ConstantDict:
"""
常量字典基类
"""
values = {}
@classmethod
def get_keys(cls):
return cls.values.keys()
@classmethod
def get_values(cls):
return cls.values.values()
@classmethod
def get_data(cls):
return cls.values
@classmethod
def present(cls):
return [{"id": key, "name": val} for key, val in cls.values.items()]
@classmethod
def get_value(cls, key):
return cls.values.get(int(key))
@classmethod
def validate(cls, key):
return int(key) in cls.values
@classmethod
def get_multi_dict(cls, keys):
return [{"id": key, "name": cls.get_value(key)} for key in keys if int(key) in cls.values.keys()]
@classmethod
def get_dict(cls, key):
return [{"id": key, "name": cls.get_value(key)} if int(key) in cls.values.keys() else {}][0]
@classmethod
def get_key_str(cls, val):
for key, value in cls.__dict__.items():
if re.match('^[A-Z_]+$', key):
if value == val:
return key
return ''
@classmethod
def get_key_value_str(cls):
res = {}
for key, value in cls.__dict__.items():
if re.match('^[A-Z_]+$', key):
res[key] = value
return res
@classmethod
def get_id_by_name(cls, name):
for key, value in cls.values.items():
if value == name:
return key
return None
@classmethod
def get_key_choices(cls):
keys = cls.get_keys()
return ','.join(str(i) for i in keys)
@classmethod
def contains(cls, keyword):
keyword = keyword.strip()
result = [key for key, value in cls.values.items() if keyword in value]
return result