Fix package name compatibility with wheel filename (#4005)

Co-authored-by: Gyeongjae Choi <def6488@gmail.com>
This commit is contained in:
Roman Yurchak 2023-11-28 15:17:27 +01:00 committed by GitHub
parent c129e6d567
commit 94ebdcacef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 21 additions and 11 deletions

View File

@ -85,7 +85,7 @@ repos:
- resolvelib
- rich
- auditwheel_emscripten
- pyodide-lock==0.1.0a1
- pyodide-lock==0.1.0a4
- micropip
- id: mypy
name: mypy-tests

View File

@ -1,6 +1,6 @@
package:
name: pyb2d
version: 0.7.2
name: b2d
version: 0.7.4
top-level:
- b2d

View File

@ -4,7 +4,7 @@ import pytest
@pytest.mark.driver_timeout(40)
def test_pyb2d(selenium_standalone, request):
selenium = selenium_standalone
selenium.load_package("pyb2d")
selenium.load_package("b2d")
selenium.run(
"""

View File

@ -1,6 +1,6 @@
package:
name: fpcast-test
version: "0.1"
version: "0.1.1"
tag:
- core
- pyodide.test

View File

@ -21,6 +21,7 @@ from typing import Any
from pyodide_lock import PyodideLockSpec
from pyodide_lock.spec import PackageSpec as PackageLockSpec
from pyodide_lock.utils import update_package_sha256
from rich.live import Live
from rich.progress import BarColumn, Progress, TimeElapsedColumn
from rich.spinner import Spinner
@ -647,7 +648,8 @@ def generate_packagedata(
install_dir=pkg.install_dir,
package_type=pkg.package_type,
)
pkg_entry.update_sha256(output_dir / pkg.file_name)
update_package_sha256(pkg_entry, output_dir / pkg.file_name)
pkg_type = pkg.package_type
if pkg_type in ("shared_library", "cpython_module"):
@ -677,7 +679,8 @@ def generate_packagedata(
file_name=pkg.unvendored_tests.name,
install_dir=pkg.install_dir,
)
pkg_entry.update_sha256(output_dir / pkg.unvendored_tests.name)
update_package_sha256(pkg_entry, output_dir / pkg.unvendored_tests.name)
packages[name.lower() + "-tests"] = pkg_entry
@ -703,7 +706,9 @@ def generate_lockfile(
"python": sys.version.partition(" ")[0],
}
packages = generate_packagedata(output_dir, pkg_map)
return PyodideLockSpec(info=info, packages=packages)
lock_spec = PyodideLockSpec(info=info, packages=packages)
lock_spec.check_wheel_filenames()
return lock_spec
def copy_packages_to_dist_dir(

View File

@ -53,7 +53,12 @@ def test_generate_lockfile(tmp_path):
)
hashes = {}
for pkg in pkg_map.values():
pkg.file_name = pkg.file_name or pkg.name + ".whl"
if not pkg.file_name:
match pkg.package_type:
case "package":
pkg.file_name = pkg.name + f"-{pkg.version}-py3-none-any.whl"
case _:
pkg.file_name = pkg.name + ".zip"
# Write dummy package file for SHA-256 hash verification
with zipfile.ZipFile(tmp_path / pkg.file_name, "w") as whlzip:
whlzip.writestr(pkg.file_name, data=pkg.file_name)
@ -76,7 +81,7 @@ def test_generate_lockfile(tmp_path):
assert package_data.packages["pkg_1"] == PackageSpec(
name="pkg_1",
version="1.0.0",
file_name="pkg_1.whl",
file_name="pkg_1-1.0.0-py3-none-any.whl",
depends=["pkg_1_1", "pkg_3", "libtest_shared"],
imports=["pkg_1"],
package_type="package",

View File

@ -30,7 +30,7 @@ dependencies = [
"types-requests",
"typer",
"auditwheel-emscripten~=0.0.9",
"pyodide-lock==0.1.0a1",
"pyodide-lock==0.1.0a4",
"resolvelib",
"rich",
"loky",