enums.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from enum import Enum
  4. from enum import IntEnum as SourceIntEnum
  5. from typing import Type
  6. class _EnumBase:
  7. @classmethod
  8. def get_member_keys(cls: Type[Enum]) -> list[str]:
  9. return [name for name in cls.__members__.keys()]
  10. @classmethod
  11. def get_member_values(cls: Type[Enum]) -> list:
  12. return [item.value for item in cls.__members__.values()]
  13. class IntEnum(_EnumBase, SourceIntEnum):
  14. """整型枚举"""
  15. pass
  16. class StrEnum(_EnumBase, str, Enum):
  17. """字符串枚举"""
  18. pass
  19. class MenuType(IntEnum):
  20. """菜单类型"""
  21. directory = 0
  22. menu = 1
  23. button = 2
  24. class RoleDataScopeType(IntEnum):
  25. """数据范围"""
  26. all = 1
  27. custom = 2
  28. class MethodType(StrEnum):
  29. """请求方法"""
  30. GET = 'GET'
  31. POST = 'POST'
  32. PUT = 'PUT'
  33. DELETE = 'DELETE'
  34. PATCH = 'PATCH'
  35. OPTIONS = 'OPTIONS'
  36. class LoginLogStatusType(IntEnum):
  37. """登陆日志状态"""
  38. fail = 0
  39. success = 1
  40. class BuildTreeType(StrEnum):
  41. """构建树形结构类型"""
  42. traversal = 'traversal'
  43. recursive = 'recursive'
  44. class OperaLogCipherType(IntEnum):
  45. """操作日志加密类型"""
  46. aes = 0
  47. md5 = 1
  48. itsdangerous = 2
  49. plan = 3
  50. class StatusType(IntEnum):
  51. """状态类型"""
  52. disable = 0
  53. enable = 1
  54. class UserSocialType(StrEnum):
  55. """用户社交类型"""
  56. github = 'GitHub'
  57. linuxdo = 'LinuxDo'
  58. class GenModelColumnType(StrEnum):
  59. """代码生成模型列类型"""
  60. BIGINT = 'BIGINT'
  61. BINARY = 'BINARY'
  62. BIT = 'BIT'
  63. BLOB = 'BLOB'
  64. BOOL = 'BOOL'
  65. BOOLEAN = 'BOOLEAN'
  66. CHAR = 'CHAR'
  67. DATE = 'DATE'
  68. DATETIME = 'DATETIME'
  69. DECIMAL = 'DECIMAL'
  70. DOUBLE = 'DOUBLE'
  71. DOUBLE_PRECISION = 'DOUBLE PRECISION'
  72. ENUM = 'ENUM'
  73. FLOAT = 'FLOAT'
  74. GEOMETRY = 'GEOMETRY'
  75. GEOMETRYCOLLECTION = 'GEOMETRYCOLLECTION'
  76. INT = 'INT'
  77. INTEGER = 'INTEGER'
  78. JSON = 'JSON'
  79. LINESTRING = 'LINESTRING'
  80. LONGBLOB = 'LONGBLOB'
  81. LONGTEXT = 'LONGTEXT'
  82. MEDIUMBLOB = 'MEDIUMBLOB'
  83. MEDIUMINT = 'MEDIUMINT'
  84. MEDIUMTEXT = 'MEDIUMTEXT'
  85. MULTILINESTRING = 'MULTILINESTRING'
  86. MULTIPOINT = 'MULTIPOINT'
  87. MULTIPOLYGON = 'MULTIPOLYGON'
  88. NUMERIC = 'NUMERIC'
  89. POINT = 'POINT'
  90. POLYGON = 'POLYGON'
  91. REAL = 'REAL'
  92. SERIAL = 'SERIAL'
  93. SET = 'SET'
  94. SMALLINT = 'SMALLINT'
  95. TEXT = 'TEXT'
  96. TIME = 'TIME'
  97. TIMESTAMP = 'TIMESTAMP'
  98. TINYBLOB = 'TINYBLOB'
  99. TINYINT = 'TINYINT'
  100. TINYTEXT = 'TINYTEXT'
  101. VARBINARY = 'VARBINARY'
  102. VARCHAR = 'VARCHAR'
  103. YEAR = 'YEAR'