The FileManifest type represents a set of files and their content.

FileManifest instances are used to represent things like the final filesystem layout of an installed application.

Conceptually, a FileManifest is a dict mapping relative paths to file content.



This method overlays another FileManifest on this one. If the other manifest provides a path already in this manifest, its content will be replaced by what is in the other manifest.


This method adds a Python resource to a FileManifest instance in a specified directory prefix.


(string) Directory prefix to add resource to.
(various) A Python resource instance to add. e.g. PythonModuleSource or PythonPackageResource.

This method can be used to place the Python resources derived from another type or action in the filesystem next to an application binary.


This method adds an iterable of Python resources to a FileManifest instance in a specified directory prefix. This is effectively a wrapper for for value in values: self.add_python_resource(prefix, value).

For example, to place the Python distribution’s standard library Python source modules in a directory named lib:

m = FileManifest()
dist = default_python_distribution()
for resource in dist.python_resources():
    if type(resource) == "PythonModuleSource":
        m.add_python_resource("lib", resource)


This method writes the content of the FileManifest to a directory specified by path. The path is evaluated relative to the path specified by BUILD_PATH.

If replace is True (the default), the destination directory will be deleted and the final state of the destination directory should exactly match the state of the FileManifest.