The flit.ini config file
This file lives next to the module or package.
Note
Flit 0.12 and above uses a pyproject.toml file file
to store this information. Run python3 -m flit.tomlify
to convert a
flit.ini
file to pyproject.toml
.
Metadata section
There are four required fields:
- module
The name of the module/package, as you’d use in an import statement.
- author
Your name
- author-email
Your email address
- home-page
A URL for the project, such as its Github repository.
e.g. for flit itself
[metadata]
module=flit
author=Thomas Kluyver
author-email=thomas@kluyver.me.uk
home-page=https://github.com/pypa/flit
The remaining fields are optional:
- requires
A list of other packages from PyPI that this package needs. Each package should be on its own line, and may be followed by a version specifier in parentheses, like
(>=4.1)
, and/or an environment marker after a semicolon. For example:requires = requests (>=2.6) configparser; python_version == '2.7'
- dev-requires
Packages that are required for development. This field is in the same format as
requires
.These are not (yet) encoded in the wheel, but are used when doing
flit install
.- description-file
A path (relative to the .ini file) to a file containing a longer description of your package to show on PyPI. This should be written in reStructuredText, if your long description is not valid reStructuredText, a warning will be printed, and it will be interpreted as plain text on PyPI.
- classifiers
A list of Trove classifiers, one per line, indented.
- requires-python
A version specifier for the versions of Python this requires, e.g.
~=3.3
or>=3.3,<4
which are equivalents.- dist-name
If you want your package’s name on PyPI to be different from the importable module name, set this to the PyPI name.
- keywords
Comma separated list of words to help with searching for your package.
- license
The name of a license, if you’re using one for which there isn’t a Trove classifier. It’s recommended to use Trove classifiers instead of this in most cases.
- maintainer, maintainer-email
Like author, for if you’ve taken over a project from someone else.
Here’s the full example from flit itself:
[metadata]
author=Thomas Kluyver
author-email=thomas@kluyver.me.uk
home-page=https://github.com/pypa/flit
requires=requests
requires-python= >=3
description-file=README.rst
classifiers=Intended Audience :: Developers
License :: OSI Approved :: BSD License
Programming Language :: Python :: 3
Topic :: Software Development :: Libraries :: Python Modules
Scripts section
Each key and value in this describes a shell command to be installed along with your package. These work like setuptools ‘entry points’. Here’s the section for flit:
[scripts]
flit = flit:main
This will create a flit
command, which will call the function main()
imported from flit
.