33 lines
1019 B
Python
33 lines
1019 B
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from dataclasses import dataclass
|
||
|
|
|
||
|
|
from .commands import PORTED_COMMANDS, build_command_backlog
|
||
|
|
from .port_manifest import PortManifest, build_port_manifest
|
||
|
|
from .tools import PORTED_TOOLS, build_tool_backlog
|
||
|
|
|
||
|
|
|
||
|
|
@dataclass
|
||
|
|
class QueryEnginePort:
|
||
|
|
manifest: PortManifest
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def from_workspace(cls) -> 'QueryEnginePort':
|
||
|
|
return cls(manifest=build_port_manifest())
|
||
|
|
|
||
|
|
def render_summary(self) -> str:
|
||
|
|
command_backlog = build_command_backlog()
|
||
|
|
tool_backlog = build_tool_backlog()
|
||
|
|
sections = [
|
||
|
|
'# Python Porting Workspace Summary',
|
||
|
|
'',
|
||
|
|
self.manifest.to_markdown(),
|
||
|
|
'',
|
||
|
|
f'{command_backlog.title}: {len(PORTED_COMMANDS)} mirrored entries',
|
||
|
|
*command_backlog.summary_lines()[:10],
|
||
|
|
'',
|
||
|
|
f'{tool_backlog.title}: {len(PORTED_TOOLS)} mirrored entries',
|
||
|
|
*tool_backlog.summary_lines()[:10],
|
||
|
|
]
|
||
|
|
return '\n'.join(sections)
|