craft_parts.executor.organize module

Handle part files organization.

Installed part files can be reorganized according to a mapping specified under the organize entry in a part definition. In the key/value pair, the key represents the path of a file inside the part and the value represents how the file is going to be staged.

craft_parts.executor.organize.organize_files(*, part_name, file_map, install_dir_map, overwrite)[source]

Rearrange files for part staging.

If partitions are enabled, source filepaths must be in the default partition.

Parameters:
  • part_name (str) – The name of the part to organize files for.

  • file_map (dict[str, str]) – A mapping of source filepaths to destination filepaths.

  • install_dir_map (Mapping[str | None, Path]) – A mapping of partition names to their install directories.

  • overwrite (bool) – Whether existing files should be overwritten. This is only used in build updates, when a part may organize over files it previously organized.

Raises:
  • FileOrganizeError – If the destination file already exists or multiple files are organized to the same destination.

  • FileOrganizeError – If partitions are enabled and the source file is not from the default partition.

Return type:

None