TransParam.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2024/5/16
  3. # @Author : 魏志亮
  4. from typing import Optional, Dict, List
  5. class TransParam(object):
  6. """转换参数类
  7. 存储数据转换过程中的各种参数配置
  8. """
  9. def __init__(self,
  10. read_type: Optional[str] = None,
  11. read_path: Optional[str] = None,
  12. cols_tran: Dict[str, str] = None,
  13. wind_name_exec: str = "",
  14. is_vertical_table: bool = False,
  15. vertical_cols: List[str] = None,
  16. vertical_key: Optional[str] = None,
  17. vertical_value: Optional[str] = None,
  18. index_cols: List[str] = None,
  19. merge_columns: bool = False,
  20. resolve_col_prefix: Optional[str] = None,
  21. need_valid_cols: bool = True,
  22. wind_col_trans: Optional[Dict[str, str]] = None,
  23. boolean_sec_to_min: bool = False):
  24. """
  25. 初始化转换参数
  26. Args:
  27. read_type: 读取类型,如 'second' 或 'minute'
  28. read_path: 读取路径
  29. cols_tran: 列名转换映射
  30. wind_name_exec: 风机名称处理表达式
  31. is_vertical_table: 是否为垂直表
  32. vertical_cols: 垂直表列名列表
  33. vertical_key: 垂直表键列
  34. vertical_value: 垂直表值列
  35. index_cols: 索引列列表
  36. merge_columns: 是否合并列
  37. resolve_col_prefix: 列名前缀解析表达式
  38. need_valid_cols: 是否需要验证列
  39. wind_col_trans: 风机列转换映射
  40. boolean_sec_to_min: 是否将秒级数据转换为分钟级
  41. """
  42. self.read_type = read_type
  43. self.read_path = read_path
  44. self.cols_tran = cols_tran or {}
  45. self.is_vertical_table = is_vertical_table
  46. self.wind_name_exec = wind_name_exec
  47. self.vertical_cols = vertical_cols or []
  48. self.vertical_key = vertical_key
  49. self.vertical_value = vertical_value
  50. self.index_cols = index_cols or []
  51. self.merge_columns = merge_columns
  52. self.resolve_col_prefix = resolve_col_prefix
  53. self.need_valid_cols = need_valid_cols
  54. self.wind_col_trans = wind_col_trans
  55. self.boolean_sec_to_min = boolean_sec_to_min