You've already forked DataMate
60 lines
1.6 KiB
Python
60 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
from datetime import datetime
|
|
|
|
import cv2
|
|
import numpy as np
|
|
import os
|
|
|
|
import pytz
|
|
from loguru import logger
|
|
|
|
|
|
def check_valid_path(file_path):
|
|
full_path = os.path.abspath(file_path)
|
|
return os.path.exists(full_path)
|
|
|
|
|
|
def get_realpath_with_prefix_check(path, prefix):
|
|
realpath = os.path.realpath(path)
|
|
|
|
if realpath.startswith(prefix):
|
|
return realpath
|
|
else:
|
|
raise ValueError(f"The path {realpath} does not start with the prefix '{prefix}'.")
|
|
|
|
|
|
def bytes_to_numpy(image_bytes):
|
|
"""bytes转数组"""
|
|
image_np = np.frombuffer(image_bytes, dtype=np.uint8)
|
|
image_np2 = cv2.imdecode(image_np, cv2.IMREAD_COLOR)
|
|
return image_np2
|
|
|
|
|
|
def numpy_to_bytes(image_np, file_type):
|
|
"""数组转bytes"""
|
|
if not image_np.size:
|
|
return b""
|
|
data = cv2.imencode(file_type, image_np)[1]
|
|
image_bytes = data.tobytes()
|
|
return image_bytes
|
|
|
|
|
|
def get_now_time(timezone, time_format, file_name, method):
|
|
timestamp = ""
|
|
try:
|
|
china_tz = pytz.timezone(timezone) # 设置时区
|
|
china_time = datetime.now(tz=china_tz) # 获取当前时间并转换为对应的时区
|
|
timestamp = china_time.strftime(time_format) # 格式化输出时间
|
|
except ValueError as e:
|
|
logger.error("fileName: %s, method: %s, formatting time failed: %s", file_name, method, e, exc_info=True)
|
|
return timestamp
|
|
|
|
|
|
def decrypt(enc_pass):
|
|
import kmc.kmc as K
|
|
os.environ['KMC_DATA_USER'] = 'modelenginepublic'
|
|
os.environ['KMC_PYTHON_ENCRYPT_DATA'] = enc_pass
|
|
dec_pass = K.API().decrypt(0)
|
|
os.environ['KMC_PYTHON_ENCRYPT_DATA'] = ""
|
|
return dec_pass
|