Skip to content

updates to have wppm more python and platform agnostic - #2061

Merged
stonebig merged 3 commits into
winpython:masterfrom
stonebig:master
Aug 6, 2026
Merged

updates to have wppm more python and platform agnostic#2061
stonebig merged 3 commits into
winpython:masterfrom
stonebig:master

Conversation

@stonebig

@stonebig stonebig commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

No description provided.

stonebig and others added 3 commits August 6, 2026 09:04
--register/--unregister assumed the WinPython layout in two ways that
misfired on a plain Python target:

- the start menu folder was hardcoded to Programs\WinPython, and is
  rmtree'd on both register and unregister, so acting on any other
  Python deleted the real WinPython menu folder,
- shortcuts were built from every .exe found in the target's parent
  directory, which is right for WinPython (Spyder, Jupyter, command
  prompts sit next to the Python dir) but picks up unrelated files
  for a Python in C:\Python313 or a venv.

is_winpython_layout() tests for the sibling scripts/env.bat already
used by do_pip_action, and drives both: WinPython keeps its folder
name and its parent scan, anything else gets a folder named after the
target directory and shortcuts to its own python.exe/pythonw.exe.

The folder helpers keep folder_name='WinPython' as default, so outside
callers are unaffected. Menu folder creation moves out of the shortcut
loop, where it was rmtree'ing and recreating once per shortcut.

--movable/--fix are untouched: they patch Scripts/ shebangs and pip's
vendored distlib, which is generic to any Windows Python. Help text
reworded accordingly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Middle digit up: the start menu folder of a registered non-WinPython
Python changes, so this is not a fixes-only release.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The page listed what wppm can do without ever showing a result, so a
visitor had to imagine the output. Each section now asks a question and
answers it with actual terminal output, all of it run and pasted
verbatim:

- wppm -p "flit![.]" as the opener: which extras of an installed
  package are unusable here, and exactly what is missing,
- wppm -r "pytest[.]": who pulls a package in, through which extra --
  the granularity pipdeptree does not have,
- wppm -r "pluggy!": the handful of packages that cap it, ie what will
  actually fight the next upgrade.

Adds a library section (piptree.PipData().down(..., format="json")),
since the tree engine is importable and takes a target= -- no
subprocess, no parsing of terminal output.

pyproject: the PyPI search line read "WinPython Package Management" and
the keywords were Portable/Windows, so nobody looking for a dependency
tool could match it. Description and keywords now say what it does,
plus console/build-tools classifiers.

Usage block regenerated from --help; it had drifted, and now differs
only in the -t default, kept generic instead of a local path.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@stonebig
stonebig merged commit 97623c1 into winpython:master Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant