summaryrefslogtreecommitdiff
path: root/Doc/library/packaging.dist.rst
blob: fb05b69c706ae58289dd807bc0b420f00288b15e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
:mod:`packaging.dist` --- The Distribution class
================================================

.. module:: packaging.dist
   :synopsis: Core Distribution class.


This module provides the :class:`Distribution` class, which represents the
module distribution being built/packaged/distributed/installed.

.. class:: Distribution(arguments)

   A :class:`Distribution` describes how to build, package, distribute and
   install a Python project.

   The arguments accepted by the constructor are laid out in the following
   table.  Some of them will end up in a metadata object, the rest will become
   data attributes of the :class:`Distribution` instance.

   .. TODO improve constructor to take a Metadata object + named params?
      (i.e. Distribution(metadata, cmdclass, py_modules, etc)
   .. TODO also remove obsolete(?) script_name, etc. parameters?  see what
      py2exe and other tools need

   +--------------------+--------------------------------+-------------------------------------------------------------+
   | argument name      | value                          | type                                                        |
   +====================+================================+=============================================================+
   | *name*             | The name of the project        | string                                                      |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *version*          | The version number of the      | See :mod:`packaging.version`                                |
   |                    | release                        |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *summary*          | A single line describing the   | a string                                                    |
   |                    | project                        |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *description*      | Longer description of the      | a string                                                    |
   |                    | project                        |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *author*           | The name of the project author | a string                                                    |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *author_email*     | The email address of the       | a string                                                    |
   |                    | project author                 |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *maintainer*       | The name of the current        | a string                                                    |
   |                    | maintainer, if different from  |                                                             |
   |                    | the author                     |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *maintainer_email* | The email address of the       |                                                             |
   |                    | current maintainer, if         |                                                             |
   |                    | different from the author      |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *home_page*        | A URL for the proejct          | a URL                                                       |
   |                    | (homepage)                     |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *download_url*     | A URL to download the project  | a URL                                                       |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *packages*         | A list of Python packages that | a list of strings                                           |
   |                    | packaging will manipulate      |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *py_modules*       | A list of Python modules that  | a list of strings                                           |
   |                    | packaging will manipulate      |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *scripts*          | A list of standalone scripts   | a list of strings                                           |
   |                    | to be built and installed      |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *ext_modules*      | A list of Python extensions to | A list of instances of                                      |
   |                    | be built                       | :class:`packaging.compiler.extension.Extension`             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *classifiers*      | A list of categories for the   | The list of available                                       |
   |                    | distribution                   | categorizations is at                                       |
   |                    |                                | http://pypi.python.org/pypi?:action=list_classifiers.       |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *distclass*        | the :class:`Distribution`      | A subclass of                                               |
   |                    | class to use                   | :class:`packaging.dist.Distribution`                        |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *script_name*      | The name of the setup.py       | a string                                                    |
   |                    | script - defaults to           |                                                             |
   |                    | ``sys.argv[0]``                |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *script_args*      | Arguments to supply to the     | a list of strings                                           |
   |                    | setup script                   |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *options*          | default options for the setup  | a string                                                    |
   |                    | script                         |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *license*          | The license for the            | a string; should be used when there is no suitable License  |
   |                    | distribution                   | classifier, or to specify a classifier                      |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *keywords*         | Descriptive keywords           | a list of strings; used by catalogs                         |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *platforms*        | Platforms compatible with this | a list of strings; should be used when there is no          |
   |                    | distribution                   | suitable Platform classifier                                |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *cmdclass*         | A mapping of command names to  | a dictionary                                                |
   |                    | :class:`Command` subclasses    |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *data_files*       | A list of data files to        | a list                                                      |
   |                    | install                        |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+
   | *package_dir*      | A mapping of Python packages   | a dictionary                                                |
   |                    | to directory names             |                                                             |
   +--------------------+--------------------------------+-------------------------------------------------------------+