Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit87274f8

Browse files
committed
Managers fix
1 parent94037ce commit87274f8

File tree

1 file changed

+43
-41
lines changed

1 file changed

+43
-41
lines changed

‎uncoder-core/app/translator/managers.py‎

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
fromabcimportABC
22
fromfunctoolsimportcached_property
3+
fromtypingimportClassVar,Union
34

45
fromapp.models.translationimportTranslatorPlatform
5-
fromapp.translator.core.exceptions.coreimportUnsupportedRootAParser
6+
fromapp.translator.core.exceptions.coreimportUnsupportedPlatform,UnsupportedRootAParser
7+
fromapp.translator.core.parserimportQueryParser
8+
fromapp.translator.core.renderimportQueryRender
9+
fromapp.translator.core.render_ctiimportRenderCTI
610

711

8-
classManager(ABC):
9-
platforms= {}
10-
11-
defregister(self,cls):
12-
self.platforms[cls.details.platform_id]=cls()
13-
returncls
14-
15-
defget(self,platform_id:str):# noqa: ANN201
16-
ifplatform:=self.platforms.get(platform_id):
17-
returnplatform
18-
raiseUnsupportedRootAParser(parser=platform_id)
12+
classPlatformManager(ABC):
13+
platforms:ClassVar[dict[str,Union[QueryParser,QueryRender,RenderCTI]]]= {}
1914

2015
defall_platforms(self)->list:
2116
returnlist(self.platforms.keys())
@@ -40,54 +35,61 @@ def get_platforms_details(self) -> list[TranslatorPlatform]:
4035
returnsorted(platforms,key=lambdaplatform:platform.group_name)
4136

4237

43-
classParserManager(Manager):
44-
platforms= {}
45-
supported_by_roota_platforms= {}
46-
main_platforms= {}
38+
classParserManager(PlatformManager):
39+
supported_by_roota_platforms:ClassVar[dict[str,QueryParser]]= {}
40+
main_platforms:ClassVar[dict[str,QueryParser]]= {}
4741

48-
defget_supported_by_roota(self,platform_id:str):# noqa: ANN201
42+
defget(self,platform_id:str)->QueryParser:
43+
ifplatform:=self.platforms.get(platform_id):
44+
returnplatform
45+
raiseUnsupportedPlatform(platform=platform_id,is_parser=True)
46+
47+
defregister(self,cls:type[QueryParser])->type[QueryParser]:
48+
self.platforms[cls.details.platform_id]=cls()
49+
returncls
50+
51+
defget_supported_by_roota(self,platform_id:str)->QueryParser:
4952
ifplatform:=self.supported_by_roota_platforms.get(platform_id):
5053
returnplatform
5154
raiseUnsupportedRootAParser(parser=platform_id)
5255

53-
defregister_supported_by_roota(self,cls):
56+
defregister_supported_by_roota(self,cls:type[QueryParser])->type[QueryParser]:
5457
parser=cls()
5558
self.supported_by_roota_platforms[cls.details.platform_id]=parser
5659
self.platforms[cls.details.platform_id]=parser
5760
returncls
5861

59-
defregister_main(self,cls):
62+
defregister_main(self,cls:type[QueryParser])->type[QueryParser]:
6063
parser=cls()
6164
self.main_platforms[cls.details.platform_id]=parser
6265
self.platforms[cls.details.platform_id]=parser
6366
returncls
6467

65-
@cached_property
66-
defget_platforms_details(self)->list[TranslatorPlatform]:
67-
platforms= [
68-
TranslatorPlatform(
69-
id=platform.details.platform_id,
70-
name=platform.details.name,
71-
code=platform.details.platform_id,
72-
group_name=platform.details.group_name,
73-
group_id=platform.details.group_id,
74-
platform_name=platform.details.platform_name,
75-
platform_id=platform.details.platform_id,
76-
alt_platform_name=platform.details.alt_platform_name,
77-
alt_platform=platform.details.alt_platform,
78-
first_choice=platform.details.first_choice,
79-
)
80-
forplatforminself.platforms.values()
81-
]
82-
returnsorted(platforms,key=lambdaplatform:platform.group_name)
8368

69+
classRenderManager(PlatformManager):
70+
platforms:ClassVar[dict[str,QueryRender]]= {}
71+
72+
defget(self,platform_id:str)->QueryRender:
73+
ifplatform:=self.platforms.get(platform_id):
74+
returnplatform
75+
raiseUnsupportedPlatform(platform=platform_id)
76+
77+
defregister(self,cls:type[QueryRender])->type[QueryRender]:
78+
self.platforms[cls.details.platform_id]=cls()
79+
returncls
8480

85-
classRenderManager(Manager):
86-
platforms= {}
8781

82+
classRenderCTIManager(PlatformManager):
83+
platforms:ClassVar[dict[str,RenderCTI]]= {}
8884

89-
classRenderCTIManager(Manager):
90-
platforms= {}
85+
defget(self,platform_id:str)->RenderCTI:
86+
ifplatform:=self.platforms.get(platform_id):
87+
returnplatform
88+
raiseUnsupportedPlatform(platform=platform_id)
89+
90+
defregister(self,cls:type[RenderCTI])->type[RenderCTI]:
91+
self.platforms[cls.details.platform_id]=cls()
92+
returncls
9193

9294

9395
parser_manager=ParserManager()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp