Skip to content

Commit

Permalink
fix: pylint优化
Browse files Browse the repository at this point in the history
  • Loading branch information
yuhldr committed Dec 8, 2024
1 parent d0353e5 commit e67b89b
Show file tree
Hide file tree
Showing 21 changed files with 220 additions and 212 deletions.
7 changes: 3 additions & 4 deletions lfy/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
"""

from lfy.api.constant import get_servers_o as SERVERS_O
from lfy.api.constant import get_servers_t as SERVERS_T
from lfy.api.constant import SERVERS_OCR, SERVERS_TRA
from lfy.api.server import Lang, Server
from lfy.api.server.tra.com import AllServer

Expand All @@ -16,7 +15,7 @@ def get_servers_t():
"""
s = [AllServer()]

s += SERVERS_T()
s += SERVERS_TRA

return s

Expand All @@ -27,7 +26,7 @@ def get_servers_o():
Returns:
dict: _description_
"""
return SERVERS_O()
return SERVERS_OCR


def get_server_names_t():
Expand Down
69 changes: 40 additions & 29 deletions lfy/api/constant.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,54 @@
'常量,尽可能不引用其他文件'
from lfy.api.server.ocr import ServerOCR
from lfy.api.server.ocr.baidu import BaiduServer as BaiduOCRServer
from lfy.api.server.ocr.easyocr import EasyOcrServer
from lfy.api.server.ocr.pytesseract import PytesseractServer
from lfy.api.server.tra import ServerTra
from lfy.api.server.tra.aliyun import AliYunServer
from lfy.api.server.tra.baidu import BaiduServer
from lfy.api.server.tra.bing import BingServer
from lfy.api.server.tra.google import GoogleServer
from lfy.api.server.tra.huoshan import HuoShanServer
from lfy.api.server.tra.tencent import TencentServer
from lfy.utils.settings import Settings

SERVERS_TRA = []
SERVERS_OCR = []

# 翻译服务
def get_servers_t():
global SERVERS_TRA
if not SERVERS_TRA:
SERVERS_TRA = [
GoogleServer(),
BingServer(),
BaiduServer(),
TencentServer(),
AliYunServer(),
HuoShanServer(),
]

return SERVERS_TRA

def get_servers_o():
# OCR文本识别服务
global SERVERS_OCR
if not SERVERS_OCR:

SERVERS_OCR = [
BaiduOCRServer(),
PytesseractServer(),
EasyOcrServer(),
]
return SERVERS_OCR
SERVERS_TRA: list[ServerTra] = [
GoogleServer(),
BingServer(),
BaiduServer(),
TencentServer(),
AliYunServer(),
HuoShanServer(),
]
SERVERS_OCR: list[ServerOCR] = [
BaiduOCRServer(),
PytesseractServer(),
EasyOcrServer(),
]


def get_ass():
"""翻译服务
Returns:
_type_: _description_
"""
# 只对比设置中修改的
all_servers = {}
for server in SERVERS_OCR:
all_servers[server.key] = server
keys = Settings().g("compare-servers")

# 初始化 self.servers
if not keys: # 如果 keys 为空,则选择所有服务器
return list(all_servers.values())

# 仅选择在 keys 列表中的服务器,并且按照顺序!
return [all_servers[key] for key in keys
if key in all_servers]


ALL_SELECT_SERVERS: list[ServerTra] = get_ass()


NO_TRANSLATED_TXTS = [
Expand Down
23 changes: 21 additions & 2 deletions lfy/api/server/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ def __init__(self, key: str, name: str):
Args:
key (str): _description_
name (str, optional): 翻译服务名字,需要可以翻译_(). Defaults to "".
lang_key_ns (dict): 支持哪些翻译语言
"""

self.session = None
Expand All @@ -88,13 +87,33 @@ def __init__(self, key: str, name: str):
self.key = key
self.name = name

def main(self, fun_main, *args):
"""_summary_
Args:
fun_main (_type_): _description_
Returns:
_type_: _description_
"""
try:
return fun_main(self, args)
except Exception as e: # pylint: disable=W0718
text = _("something error: {}")\
.format(f"{self.name}\n\n{str(e)}\n\n{traceback.format_exc()}")
get_logger().error(text)
print(text)
return False, text

def set_data(self, lang_key_ns: dict,
sk_placeholder_text: str = None,
session: requests.Session = None):
"""_summary_
Args:
session (requests.Session): _description_
lang_key_ns (dict): _description_
sk_placeholder_text (str, optional): 密钥提示语言,有密钥的tra或需要参数的ocr的必须设置. Defaults to None.
session (requests.Session, optional): _description_. Defaults to None.
"""
if session is None:
session = requests.Session()
Expand Down
9 changes: 1 addition & 8 deletions lfy/api/server/ocr/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,7 @@ def ocr_image(self, img_path: str, fun_ocr=None, py_libs=None):
return False, _("please input `{sk}` for `{server}` in preference")\
.format(sk=self.sk_placeholder_text, server=self.name)

try:
return fun_ocr(self, img_path)
except Exception as e: # pylint: disable=W0718
text = _("something error: {}")\
.format(f"{self.name}\n\n{str(e)}\n\n{traceback.format_exc()}")
get_logger().error(text)
print(text)
return False, text
return super().main(fun_ocr, img_path)

def get_doc_url(self, d="o"):
"""文档连接
Expand Down
11 changes: 1 addition & 10 deletions lfy/api/server/tra/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
'翻译'
import traceback
from gettext import gettext as _

from lfy.api.server import Server
from lfy.utils.debug import get_logger


class ServerTra(Server):
Expand All @@ -26,14 +24,7 @@ def translate_text(self, text: str, lang_to: str, fun_tra=None):
return False, _("please input `{sk}` for `{server}` in preference")\
.format(sk=self.sk_placeholder_text, server=self.name)

try:
return fun_tra(self, text, lang_to)
except Exception as e: # pylint: disable=W0718
text = _("something error: {}")\
.format(f"{self.name}\n\n{str(e)}\n\n{traceback.format_exc()}")
get_logger().error(text)
print(text)
return False, text
return super().main(fun_tra, text, lang_to)

def get_doc_url(self, d="t"):
"""文档连接
Expand Down
14 changes: 10 additions & 4 deletions lfy/api/server/tra/bing.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,7 @@ def g_url(host, hs):
return f'https://{host}/ttranslatev3?isVertical=1&&IG={hs["IG"]}&IID={hs["my_iid"]}'


def _translate(st: ServerTra, text, lang_to, n=0):

if st.session is None:
st.session = _init_session()
def _get_data(st: ServerTra, text, lang_to, n=0):

if n > 5:
return False, _("something error, try other translate engine?")
Expand All @@ -93,6 +90,15 @@ def _translate(st: ServerTra, text, lang_to, n=0):
data = {'': '', 'text': text, "fromLang": "auto-detect",
'to': lang_to, 'token': hs['token'], 'key': hs['key'],
'tryFetchingGenderDebiasedTranslations': True}
return host, data, hs


def _translate(st: ServerTra, text, lang_to, n=0):

if st.session is None:
st.session = _init_session()

host, data, hs = _get_data(st, text, lang_to, n)

try:
url = g_url(host, hs)
Expand Down
30 changes: 1 addition & 29 deletions lfy/api/server/tra/com.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,9 @@
from gettext import gettext as _
from multiprocessing import Pool

from lfy.api.constant import get_servers_t
from lfy.api.constant import ALL_SELECT_SERVERS as ALL_SERVERS
from lfy.api.server.tra import ServerTra
from lfy.utils.debug import get_logger
from lfy.utils.settings import Settings

ALL_SERVERS = None


def _translate0(args):
Expand All @@ -35,27 +32,6 @@ def _translate0(args):
return False, em, server, time.time()-st


def get_ass():
"""翻译服务
Returns:
_type_: _description_
"""
# 只对比设置中修改的
all_servers = {}
for server in get_servers_t():
all_servers[server.key] = server
keys = Settings().g("compare-servers")

# 初始化 self.servers
if not keys: # 如果 keys 为空,则选择所有服务器
return list(all_servers.values())

# 仅选择在 keys 列表中的服务器,并且按照顺序!
return [all_servers[key] for key in keys
if key in all_servers]


def get_args(text, lang_to):
"""_summary_
Expand All @@ -79,10 +55,6 @@ def get_args(text, lang_to):


def _translate(_st: ServerTra, text, lang_to):
global ALL_SERVERS
if not ALL_SERVERS:
ALL_SERVERS = get_ass()

args = get_args(text, lang_to)

with Pool(len(args)) as p:
Expand Down
Loading

0 comments on commit e67b89b

Please sign in to comment.