diff --git a/src/poetry/packages/locker.py b/src/poetry/packages/locker.py index 7fa5fd92958..8a6c62e75f7 100644 --- a/src/poetry/packages/locker.py +++ b/src/poetry/packages/locker.py @@ -23,10 +23,8 @@ from tomlkit import comment from tomlkit import document from tomlkit import inline_table -from tomlkit import item from tomlkit import table from tomlkit.exceptions import TOMLKitError -from tomlkit.items import Array if TYPE_CHECKING: @@ -228,24 +226,19 @@ def locked_repository(self) -> LockfileRepository: return repository def set_lock_data(self, root: Package, packages: list[Package]) -> bool: - files: dict[str, Any] = table() package_specs = self._lock_packages(packages) # Retrieving hashes for package in package_specs: - if package["name"] not in files: - files[package["name"]] = [] + files = array() for f in package["files"]: file_metadata = inline_table() for k, v in sorted(f.items()): file_metadata[k] = v - files[package["name"]].append(file_metadata) + files.append(file_metadata) - if files[package["name"]]: - package_files = item(files[package["name"]]) - assert isinstance(package_files, Array) - files[package["name"]] = package_files.multiline(True) + package["files"] = files.multiline(True) lock = document() lock.add(comment(GENERATED_COMMENT)) diff --git a/tests/packages/test_locker.py b/tests/packages/test_locker.py index 7fb2772e6ba..9da6c422f7c 100644 --- a/tests/packages/test_locker.py +++ b/tests/packages/test_locker.py @@ -104,14 +104,10 @@ def test_lock_file_data_is_ordered(locker: Locker, root: ProjectPackage): category = "main" optional = false python-versions = "*" - -[[package.files]] -file = "bar" -hash = "123" - -[[package.files]] -file = "foo" -hash = "456" +files = [ + {{file = "bar", hash = "123"}}, + {{file = "foo", hash = "456"}}, +] [package.dependencies] B = "^1.0" @@ -123,10 +119,9 @@ def test_lock_file_data_is_ordered(locker: Locker, root: ProjectPackage): category = "main" optional = false python-versions = "*" - -[[package.files]] -file = "baz" -hash = "345" +files = [ + {{file = "baz", hash = "345"}}, +] [[package]] name = "B"