distribute-install_component
============================

This package adds a command to distribute to interact with the extra components
listed in ``extras_require``.

For example, you could write a ``setup.py`` containing::

    setup(
        name="Project-A",
        ...
        extras_require={
            'PDF': ["ReportLab>=1.2", "RXP"],
            'reST': ["docutils>=0.3"],
        }
     )

Then **distribute-install_component** allows you to write::

    $ python setup.py install_component PDF reST

to install the dependencies needed for these features.

Commandline Arguments
---------------------

``install_component`` takes a list of components to install dependencies for.
These must be listed in the ``extras_require`` section of the package.

The ``-l`` option can be used to list the components available.

Configuring a package
---------------------

To make ``distribute-install_component`` available in your package, you can add
it to ``setup_requires`` in your ``setup.py``::

    setup(
        name='myproject',
        ...
        setup_requires=[
            'distribute-install_component',
        ]
    )

Tips
----

You can use ``distribute-install_requires`` to provide development
dependencies, such as documentation builders or testing packages::

    setup(
        name='myproject',
        ...
        setup_requires=[
            'distribute-install_component',
        ],
        extras_require={
            'test': ['nose==1.1.2', 'mock==0.8.0'],
            'docs': ['Sphinx>=1.1.3', 'sphinxcontrib-httpdomain==1.1.7'],
        }
    )

Then normal users can just run

    $ python setup.py install

While developers can run

    $ python setup.py develop install_component test docs
