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

Appearance settings

Commit dff57f8

Browse filesBrowse files
authored
Merge pull request #1629 from stonebig/master
simplify markdown generation
2 parents 00ea3fc + ec7a132 commit dff57f8
Copy full SHA for dff57f8

File tree

Expand file treeCollapse file tree

2 files changed

+27
-45
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+27
-45
lines changed

‎winpython/utils.py

Copy file name to clipboardExpand all lines: winpython/utils.py
+6-9Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111
import stat
1212
import shutil
1313
import locale
14-
import tempfile
1514
import subprocess
16-
import configparser as cp
1715
from pathlib import Path
1816
import re
1917
import tarfile
@@ -41,25 +39,24 @@ def get_site_packages_path(path=None):
4139
pypy_site_packages = base_dir / 'site-packages' # For PyPy
4240
return str(pypy_site_packages if pypy_site_packages.is_dir() else site_packages)
4341

44-
def get_installed_tools_markdown(path=None)-> str:
42+
def get_installed_tools(path=None)-> str:
4543
"""Generates Markdown for installed tools section in package index."""
4644
tool_lines = []
4745
python_exe = Path(get_python_executable(path))
4846
version = exec_shell_cmd(f'powershell (Get-Item {python_exe}).VersionInfo.FileVersion', python_exe.parent).splitlines()[0]
49-
tool_lines.append(f"[Python](http://www.python.org/) | {version} | Python programming language with standard library")
47+
tool_lines.append(("Python" ,f"http://www.python.org/", version, "Python programming language with standard library"))
5048
if (node_exe := python_exe.parent.parent / "n" / "node.exe").exists():
5149
version = exec_shell_cmd(f'powershell (Get-Item {node_exe}).VersionInfo.FileVersion', node_exe.parent).splitlines()[0]
52-
tool_lines.append(f"[Nodejs](https://nodejs.org) | {version} | a JavaScript runtime built on Chrome's V8 JavaScript engine")
50+
tool_lines.append("Nodejs", "https://nodejs.org", version, "a JavaScript runtime built on Chrome's V8 JavaScript engine")
5351

5452
if (pandoc_exe := python_exe.parent.parent / "t" / "pandoc.exe").exists():
5553
version = exec_shell_cmd("pandoc -v", pandoc_exe.parent).splitlines()[0].split(" ")[-1]
56-
tool_lines.append(f"[Pandoc](https://pandoc.org) | {version} | an universal document converter")
54+
tool_lines.append("Pandoc", "https://pandoc.org", version, "an universal document converter")
5755

5856
if (vscode_exe := python_exe.parent.parent / "t" / "VSCode" / "Code.exe").exists():
5957
version = exec_shell_cmd(f'powershell (Get-Item {vscode_exe}).VersionInfo.FileVersion', vscode_exe.parent).splitlines()[0]
60-
tool_lines.append(f"[VSCode](https://code.visualstudio.com) | {version} | a source-code editor developed by Microsoft")
61-
return "\n".join(tool_lines)
62-
58+
tool_lines.append("VSCode","https://code.visualstudio.com", version, "a source-code editor developed by Microsoft")
59+
return tool_lines
6360

6461
def onerror(function, path, excinfo):
6562
"""Error handler for `shutil.rmtree`."""

‎winpython/wppm.py

Copy file name to clipboardExpand all lines: winpython/wppm.py
+21-36Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -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
102102
The 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

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.