style: 使用ruff格式化utils模块,优化导入
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import pandas as pd
|
||||
import io
|
||||
import os
|
||||
import pandas as pd
|
||||
import re
|
||||
from openpyxl import Workbook
|
||||
from openpyxl.styles import Alignment, PatternFill
|
||||
@@ -33,7 +33,7 @@ def worship():
|
||||
// ========`-.____`-.___\_____/___.-`____.-'======== //
|
||||
// `=---=' //
|
||||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
|
||||
// 佛祖保佑 永不宕机 永无BUG //
|
||||
// 佛祖保佑 永不宕机 永无BUG //
|
||||
////////////////////////////////////////////////////////////////////
|
||||
""")
|
||||
|
||||
@@ -42,6 +42,7 @@ class CamelCaseUtil:
|
||||
"""
|
||||
下划线形式(snake_case)转小驼峰形式(camelCase)工具方法
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def snake_to_camel(cls, snake_str):
|
||||
"""
|
||||
@@ -68,10 +69,24 @@ class CamelCaseUtil:
|
||||
return {cls.snake_to_camel(k): v for k, v in result.items()}
|
||||
# 如果是一组字典或其他类型的列表,遍历列表进行转换
|
||||
elif isinstance(result, list):
|
||||
return [cls.transform_result(row) if isinstance(row, (dict, Row)) else (cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row) for row in result]
|
||||
return [
|
||||
cls.transform_result(row)
|
||||
if isinstance(row, (dict, Row))
|
||||
else (
|
||||
cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row
|
||||
)
|
||||
for row in result
|
||||
]
|
||||
# 如果是sqlalchemy的Row实例,遍历Row进行转换
|
||||
elif isinstance(result, Row):
|
||||
return [cls.transform_result(row) if isinstance(row, dict) else (cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row) for row in result]
|
||||
return [
|
||||
cls.transform_result(row)
|
||||
if isinstance(row, dict)
|
||||
else (
|
||||
cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row
|
||||
)
|
||||
for row in result
|
||||
]
|
||||
# 如果是其他类型,如模型实例,先转换为字典
|
||||
else:
|
||||
return cls.transform_result({c.name: getattr(result, c.name) for c in result.__table__.columns})
|
||||
@@ -81,6 +96,7 @@ class SnakeCaseUtil:
|
||||
"""
|
||||
小驼峰形式(camelCase)转下划线形式(snake_case)工具方法
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def camel_to_snake(cls, camel_str):
|
||||
"""
|
||||
@@ -106,16 +122,30 @@ class SnakeCaseUtil:
|
||||
return {cls.camel_to_snake(k): v for k, v in result.items()}
|
||||
# 如果是一组字典或其他类型的列表,遍历列表进行转换
|
||||
elif isinstance(result, list):
|
||||
return [cls.transform_result(row) if isinstance(row, (dict, Row)) else (cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row) for row in result]
|
||||
return [
|
||||
cls.transform_result(row)
|
||||
if isinstance(row, (dict, Row))
|
||||
else (
|
||||
cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row
|
||||
)
|
||||
for row in result
|
||||
]
|
||||
# 如果是sqlalchemy的Row实例,遍历Row进行转换
|
||||
elif isinstance(result, Row):
|
||||
return [cls.transform_result(row) if isinstance(row, dict) else (cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row) for row in result]
|
||||
return [
|
||||
cls.transform_result(row)
|
||||
if isinstance(row, dict)
|
||||
else (
|
||||
cls.transform_result({c.name: getattr(row, c.name) for c in row.__table__.columns}) if row else row
|
||||
)
|
||||
for row in result
|
||||
]
|
||||
# 如果是其他类型,如模型实例,先转换为字典
|
||||
else:
|
||||
return cls.transform_result({c.name: getattr(result, c.name) for c in result.__table__.columns})
|
||||
|
||||
|
||||
def bytes2human(n, format_str="%(value).1f%(symbol)s"):
|
||||
def bytes2human(n, format_str='%(value).1f%(symbol)s'):
|
||||
"""Used by various scripts. See:
|
||||
http://goo.gl/zeJZl
|
||||
|
||||
@@ -170,7 +200,7 @@ def get_excel_template(header_list: List, selector_header_list: List, option_lis
|
||||
headers = header_list
|
||||
|
||||
# 设置表头背景样式为灰色,前景色为白色
|
||||
header_fill = PatternFill(start_color="ababab", end_color="ababab", fill_type="solid")
|
||||
header_fill = PatternFill(start_color='ababab', end_color='ababab', fill_type='solid')
|
||||
|
||||
# 将表头写入第一行
|
||||
for col_num, header in enumerate(headers, 1):
|
||||
@@ -194,10 +224,11 @@ def get_excel_template(header_list: List, selector_header_list: List, option_lis
|
||||
for option in options:
|
||||
if option.get(selector_header):
|
||||
header_option = option.get(selector_header)
|
||||
dv = DataValidation(type="list", formula1=f'"{",".join(header_option)}"')
|
||||
dv = DataValidation(type='list', formula1=f'"{",".join(header_option)}"')
|
||||
# 设置数据有效性规则的起始单元格和结束单元格
|
||||
dv.add(
|
||||
f'{get_column_letter(column_selector_header_index)}2:{get_column_letter(column_selector_header_index)}1048576')
|
||||
f'{get_column_letter(column_selector_header_index)}2:{get_column_letter(column_selector_header_index)}1048576'
|
||||
)
|
||||
# 添加数据有效性规则到工作表
|
||||
ws.add_data_validation(dv)
|
||||
|
||||
@@ -218,10 +249,10 @@ def get_filepath_from_url(url: str):
|
||||
:param url: 请求参数中的url参数
|
||||
:return: 文件路径
|
||||
"""
|
||||
file_info = url.split("?")[1].split("&")
|
||||
task_id = file_info[0].split("=")[1]
|
||||
file_name = file_info[1].split("=")[1]
|
||||
task_path = file_info[2].split("=")[1]
|
||||
file_info = url.split('?')[1].split('&')
|
||||
task_id = file_info[0].split('=')[1]
|
||||
file_name = file_info[1].split('=')[1]
|
||||
task_path = file_info[2].split('=')[1]
|
||||
filepath = os.path.join(CachePathConfig.PATH, task_path, task_id, file_name)
|
||||
|
||||
return filepath
|
||||
|
Reference in New Issue
Block a user