@@ -69,24 +69,16 @@ def get_installed_packages(self, update: bool = False) -> list[Package]:
69
69
pip_list = self .pip .pip_list (full = True )
70
70
return [Package (f"{ i [0 ].replace ('-' , '_' ).lower ()} -{ i [1 ]} -py3-none-any.whl" , suggested_summary = i [2 ]) for i in pip_list ]
71
71
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
+
90
82
def generate_package_index_markdown (self , python_executable_directory : str | None = None , winpyver2 : str | None = None ,
91
83
flavor : str | None = None , architecture_bits : int | None = None , release_level : str | None = None ) -> str :
92
84
"""Generates a Markdown formatted package index page."""
@@ -97,30 +89,23 @@ def generate_package_index_markdown(self, python_executable_directory: str|None
97
89
my_flavor = flavor or os .getenv ("WINPYFLAVOR" , "" )
98
90
my_release_level = release_level or os .getenv ("WINPYVER" , "" ).replace (my_winpyver2 + my_flavor , "" )
99
91
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
+
100
100
return f"""## WinPython { my_winpyver2 + my_flavor }
101
101
102
102
The following packages are included in WinPython-{ my_arch } bit v{ my_winpyver2 + my_flavor } { my_release_level } .
103
103
104
104
<details>
105
105
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 )}
124
109
</details>
125
110
"""
126
111
0 commit comments