What is the graft command in Python's MANIFEST.in file?

Question:

I found a Python project with a MANIFEST.in file. I can guess at the meaning of much of it, but I am unclear on the meaning of the line:

graft tools
Asked By: Michael Felt

||

Answers:

You can see such a file in JoshData/pdfminer/MANIFEST.in or openstack/deb-python-falcon/MANIFEST.in for instance.

It is a python project which uses the MANIFEST.in template

A MANIFEST.in file can be added in a project to define the list of files to include in the distribution built by the sdist command.

When sdist is run, it will look for the MANIFEST.in file and interpret it to generate the MANIFEST file that contains the list of files that will be included in the package.

The manifest template has one command per line, where each command specifies a set of files to include or exclude from the source distribution.

Among the MANIFEST commands, you do have:

graft dir

include all files under dir

See the Distutils tutorial

The MANIFEST.in file took me a while to understand.
It’s the file that distutils uses to collect all the files in your project that will go into the final installer tarball (the file that gets distributed).

Answered By: VonC