@@ -69,24 +69,16 @@ def get_installed_packages(self, update: bool = False) -> list[Package]:
6969 pip_list = self .pip .pip_list (full = True )
7070 return [Package (f"{ i [0 ].replace ('-' , '_' ).lower ()} -{ i [1 ]} -py3-none-any.whl" , suggested_summary = i [2 ]) for i in pip_list ]
7171
72- def get_installed_packages_markdown (self ) -> str :
73- """Generates Markdown for installed packages section in package index."""
74- package_lines = [
75- f"[{ pkg .name } ]({ pkg .url } ) | { pkg .version } | { pkg .description } "
76- for pkg in sorted (self .get_installed_packages (), key = lambda p : p .name .lower ())
77- ]
78- return "\n " .join (package_lines )
79-
80- def get_wheelhouse_packages_markdown (self ) -> str :
81- wheeldir = self .wheelhouse / 'included.wheels'
82- if wheeldir .is_dir ():
83- package_lines = [
84- f"[{ name } ](https://pypi.org/project/{ name } ) | { version } | { summary } "
85- for name , version , summary in sorted (wh .list_packages_with_metadata (str (wheeldir )), key = itemgetter (0 , 1 )) # lambda p: p[0].lower())
86- ]
87- return "\n " .join (package_lines )
88- return ""
89-
72+ def render_markdown_for_list (self , title , items ):
73+ """Generates a Markdown section; name, url, version, summary"""
74+ md = f"### { title } \n \n "
75+ md += "Name | Version | Description\n "
76+ md += "-----|---------|------------\n "
77+ for name , url , version , summary in sorted (items , key = lambda p : (p [0 ].lower (), p [2 ])):
78+ md += f"[{ name } ]({ url } ) | { version } | { summary } \n "
79+ md += "\n "
80+ return md
81+
9082 def generate_package_index_markdown (self , python_executable_directory : str | None = None , winpyver2 : str | None = None ,
9183 flavor : str | None = None , architecture_bits : int | None = None , release_level : str | None = None ) -> str :
9284 """Generates a Markdown formatted package index page."""
@@ -97,30 +89,23 @@ def generate_package_index_markdown(self, python_executable_directory: str|None
9789 my_flavor = flavor or os .getenv ("WINPYFLAVOR" , "" )
9890 my_release_level = release_level or os .getenv ("WINPYVER" , "" ).replace (my_winpyver2 + my_flavor , "" )
9991
92+ tools_list = utils .get_installed_tools (utils .get_python_executable (python_executable_directory ))
93+ package_list = [(pkg .name , pkg .url , pkg .version , pkg .description ) for pkg in self .get_installed_packages ()]
94+ wheelhouse_list = []
95+ wheeldir = self .wheelhouse / 'included.wheels'
96+ if wheeldir .is_dir ():
97+ wheelhouse_list = [(name , f"https://pypi.org/project/{ name } " , version , summary )
98+ for name , version , summary in wh .list_packages_with_metadata (str (wheeldir )) ]
99+
100100 return f"""## WinPython { my_winpyver2 + my_flavor }
101101
102102The following packages are included in WinPython-{ my_arch } bit v{ my_winpyver2 + my_flavor } { my_release_level } .
103103
104104<details>
105105
106- ### Tools
107-
108- Name | Version | Description
109- -----|---------|------------
110- { utils .get_installed_tools_markdown (utils .get_python_executable (python_executable_directory ))}
111-
112- ### Python packages
113-
114- Name | Version | Description
115- -----|---------|------------
116- { self .get_installed_packages_markdown ()}
117-
118- ### WheelHouse packages
119-
120- Name | Version | Description
121- -----|---------|------------
122- { self .get_wheelhouse_packages_markdown ()}
123-
106+ { self .render_markdown_for_list ("Tools" , tools_list )}
107+ { self .render_markdown_for_list ("Python packages" , package_list )}
108+ { self .render_markdown_for_list ("WheelHouse packages" , wheelhouse_list )}
124109</details>
125110"""
126111
0 commit comments