__init__.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. """
  2. utils/__init__.py
  3. 该模块初始化文件,导入了多个辅助工具类,并定义了一系列便捷函数,用于日志记录、配置管理、文件操作、字符串处理和邮件发送等功能。
  4. """
  5. import json
  6. from utils.ai_helper import AiHelper
  7. from utils.config_helper import ConfigHelper
  8. from utils.email_helper import EmailHelper
  9. from utils.file_helper import FileHelper
  10. from utils.logger_helper import LoggerHelper
  11. from utils.string_helper import StringHelper
  12. def get_logger():
  13. """
  14. 获取日志记录器实例。
  15. 该函数通过调用LoggerHelper类的静态方法get_logger()来获取一个日志记录器实例。
  16. 主要用于需要记录日志的位置,通过该函数获取日志记录器实例,然后进行日志记录。
  17. 这样做可以保持日志记录的一致性和集中管理。
  18. :return: Logger实例,用于记录日志。
  19. """
  20. return LoggerHelper.get_logger()
  21. def clean_log_file(day: int):
  22. """
  23. 清理指定天数之前的日志文件。
  24. :param day: 整数,表示清理多少天前的日志文件。
  25. """
  26. LoggerHelper.clean_log_file(day)
  27. def get_config():
  28. """
  29. 获取配置管理器实例。
  30. 该函数返回一个ConfigHelper实例,用于读取和管理应用程序的配置信息。
  31. :return: ConfigHelper实例,用于配置管理。
  32. """
  33. return ConfigHelper()
  34. def reload_config():
  35. """
  36. 重新加载配置文件。
  37. 该函数会重新加载配置文件中的内容,适用于配置文件发生更改后需要重新加载的情况。
  38. """
  39. get_config().load_config()
  40. def get_config_value(key: str, default: str = None):
  41. """
  42. 获取配置项的值。
  43. :param key: 字符串,配置项的键。
  44. :param default: 字符串,默认值(可选)。
  45. :return: 配置项的值,如果不存在则返回默认值。
  46. """
  47. return get_config().get(key, default)
  48. def get_config_int(key: str, default: int = None):
  49. """
  50. 获取配置项的整数值。
  51. :param key: 字符串,配置项的键。
  52. :param default: 整数,默认值(可选)。
  53. :return: 配置项的整数值,如果不存在则返回默认值。
  54. """
  55. return get_config().get_int(key, default)
  56. def get_config_bool(key: str):
  57. """
  58. 获取配置项的布尔值。
  59. :param key: 字符串,配置项的键。
  60. :return: 配置项的布尔值。
  61. """
  62. return get_config().get_bool(key)
  63. def download_remote_file(file_url: str, file_name: str) -> str:
  64. """
  65. 下载远程文件并保存到本地。
  66. :param file_url: 字符串,远程文件的URL。
  67. :param file_name: 字符串,保存到本地的文件名。
  68. :return: 字符串,下载后的文件路径。
  69. """
  70. return FileHelper().download_remote_file(file_url, file_name)
  71. def clean_attach_file(day: int):
  72. """
  73. 清理指定天数之前的附件文件。
  74. :param day: 整数,表示清理多少天前的附件文件。
  75. """
  76. FileHelper().clean_attach_file(day)
  77. def save_report_excel(data, file_name: str = None) -> str:
  78. """
  79. 保存报表数据到Excel文件。
  80. :param data: 列表,报表数据。
  81. :param file_name: 字符串,保存的文件名(可选)。
  82. :return: 字符串,保存的文件路径。
  83. """
  84. return FileHelper().save_report_excel(data, file_name)
  85. def clean_report_file(day: int):
  86. """
  87. 清理指定天数之前的报表文件。
  88. :param day: 整数,表示清理多少天前的报表文件。
  89. """
  90. FileHelper().clean_report_file(day)
  91. def encode_file(path: str):
  92. return FileHelper.encode_file(path)
  93. def to_array(s: str, split: str = ",") -> list[str]:
  94. """
  95. 将字符串按指定分隔符拆分为数组。
  96. :param s: 字符串,待拆分的字符串。
  97. :param split: 字符串,分隔符。
  98. :return: 列表,拆分后的数组。
  99. """
  100. return StringHelper.to_array(s, split)
  101. def call_openai(system_prompt: str, user_prompt: str) -> json:
  102. """
  103. 调用OpenAI API进行对话。
  104. :param system_prompt: 字符串,系统提示信息。
  105. :param user_prompt: 字符串,用户输入的提示信息。
  106. :return: JSON对象,API返回的结果。
  107. """
  108. return AiHelper().call_openai(system_prompt, user_prompt)
  109. def send_email(
  110. to_addr: str,
  111. subject: str,
  112. body: str,
  113. body_is_html: bool = True,
  114. attachment_paths: str = None,
  115. ) -> bool:
  116. """
  117. 发送电子邮件。
  118. :param to_addr: 字符串,收件人地址。
  119. :param subject: 字符串,邮件主题。
  120. :param body: 字符串,邮件正文。
  121. :param body_is_html: 布尔值,是否为HTML格式,默认为True。
  122. :param attachment_paths: 字符串,附件路径(可选)。
  123. :return: 布尔值,表示邮件是否发送成功。
  124. """
  125. return EmailHelper().send_email(
  126. to_addr, subject, body, body_is_html, attachment_paths
  127. )