python-installer: update to 1.0.0

Update package to 1.0.0. This is the first stable release.

Changes since 0.7.0:
- Dropped support for Python 3.7, 3.8, 3.9; added Python 3.13/3.14
- Added --overwrite-existing and --validate-record CLI options
- Support installing multiple wheels in a single invocation
- Security: fixed a path traversal bug
- Do not install __pycache__ directories from wheels
- Switch to stream-based validation instead of in-memory (lower memory)
- Sort entries before writing RECORD; fixed Windows relative path bug
- Complete type annotations with strict mypy enforcement
- API change: SchemeDictionaryDestination.overwrite_existing now defaults
  to True (was False); update patch 001 accordingly

Remove patch 001-don-t-raise-error-if-file-exists.patch and
set '--overwrite-existing' in build scripts.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
Alexandru Ardelean
2026-04-09 08:36:52 +03:00
committed by Alexandru Ardelean
parent 1158559cef
commit 7ca00dfa99
5 changed files with 30 additions and 16 deletions

View File

@@ -8,11 +8,11 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=python-installer
PKG_VERSION:=0.7.0
PKG_RELEASE:=3
PKG_VERSION:=1.0.0
PKG_RELEASE:=1
PYPI_NAME:=installer
PKG_HASH:=a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631
PKG_HASH:=c6d691331621cf3fec4822f5c6f83cab3705f79b316225dc454127411677c71f
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

View File

@@ -1,13 +0,0 @@
diff --git a/src/installer/destinations.py b/src/installer/destinations.py
index a3c1967..9f733c8 100644
--- a/src/installer/destinations.py
+++ b/src/installer/destinations.py
@@ -164,7 +164,7 @@ class SchemeDictionaryDestination(WheelDestination):
target_path = self._path_with_destdir(scheme, path)
if os.path.exists(target_path):
message = f"File already exists: {target_path}"
- raise FileExistsError(message)
+ os.remove(target_path)
parent_folder = os.path.dirname(target_path)
if not os.path.exists(parent_folder):

View File

@@ -0,0 +1,25 @@
#!/bin/sh
[ "$1" = python3-installer ] || exit 0
python3 - << 'EOF'
from installer import install
from installer.sources import WheelFile
from installer.destinations import SchemeDictionaryDestination
import tempfile
import os
# Verify the API is importable and overwrite_existing defaults to True
dest = SchemeDictionaryDestination(
scheme_dict={
"purelib": "/tmp",
"platlib": "/tmp",
"headers": "/tmp",
"scripts": "/tmp",
"data": "/tmp",
},
interpreter="/usr/bin/python3",
script_kind="posix",
)
assert dest.overwrite_existing is True
EOF