python-packager 0.0.9
A command-line tool to create Python Packages.
License: MIT

Python Packager
===============

A command-line tool to create Python Packages.

It's intended as a quick way to create new Python packages. It is not a maintenance tool.

Usage::

    $ pip install python-packager
    $ pypackager create <mypackage> [options]

This will create a package in your current directory, complete with ``setup.py``, ``AUTHORS`` and ``LICENSE`` files.

License files are generated by `lice <https://github.com/licenses/lice>`_.

Options
=======
All options can be specified on the command-line. Templates can override this settings by including a file called ``.package.cfg`` and users can override everything by creating a config file at ``~/.pypackager/pypackager.cfg``.

Storing options
---------------
To store your options (so you don't have to type them every time) you can write them into a file called ``~/.pypackager/pypackager.cfg``::

    [author]
    name = John Smith
    email = john.smith@example.com

    [license]
    type = bsd3
    organization = John Smith

    [scripts]
    prerender = ~/.pypackager/my_prerender_script.sh
    postrender = ~/.pypackager/my_postrender_script.sh

Creating new packages from a template
=====================================

To create a new package::

    $ pypackager create <mypackage> [options]

Options for ``create``
----------------------

``--author``
~~~~~~~~~~~~
(alias of ``--author-name``)

``--author-name``
~~~~~~~~~~~~~~~~~
Required. The author's full name

``--author-email``
~~~~~~~~~~~~~~~~~~
Required. The author's email.

``--force``
~~~~~~~~~~~
Deletes and recreate the package dir if it's already existing.

``--license``
~~~~~~~~~~~~~
(alias of ``--license-type``)

``--license-type``
~~~~~~~~~~~~~~~~~~
Required. The license to include in the code. See `lice <https://github.com/licenses/lice>`_ for a list of the available licenses.

``--license-organization``
~~~~~~~~~~~~~~~~~~~~~~~~~~
Required. The organization licensing the code. Most of the time this will be the same as ``--author-name``

``--template``
~~~~~~~~~~~~~~
Optional. The template to use. Can be a directory on the filesystem, a URL pointing to a zip or tarball archive, or the name of an installed template. By default is uses the ``python-package`` template shipped with Python Packager.

The rendering context will contain every setting specified, plus a ``package_name`` variable containing the package name.

Any directory called ``{{package_name}}`` will be renamed to the package's name.

``--template-syntax``
~~~~~~~~~~~~~~~~~~~~~
Optional. The language used to render the templates. Options currently available are ``pystache`` and ``jinja2``. Defaults to ``pystache``

``--script``
~~~~~~~~~~~~
(alias of ``--script-prerender``)

``--script-prerender``
~~~~~~~~~~~~~~~~~~~~~~
Optional. If enabled, the specified script will be called before files are rendered from the skeleton. A typical example is a script creating a virtualenv.

``--script-postrender``
~~~~~~~~~~~~~~~~~~~~~~~
Optional. If enabled, the specified script will be called after files are rendered from the skeleton. A typical example is a script initializing a new VCS repository.

Managing templates
==================

You can list, search and download templates from a 'template channel'.

The following commands are available::

    $ pypackager list
    $ pypackager search <text>
    $ pypackager add <package_name> [<url>]
    $ pypackager installed
    $ pypackager remove <package_name>

Commands
--------

``list``
~~~~~~~~

Lists all templates available on the index.

``search``
~~~~~~~~~~

Lists available templates on the index whose name contains the specified text.

``add``
~~~~~~~~~~~~

Downloads the specified template to your ``~/.pypackager/`` directory.

If a URL is specified, downloads the template from there instead of using the index.

``installed``
~~~~~~~~~~~~~

Lists templates that have already been downloaded.

``remove``
~~~~~~~~~~

Deletes the specified template from your ``~/.pypackager/`` directory.

Options
-------

``--index``
~~~~~~~~~~~

Optional. Specifies an alternative index to use.

Status
======

This software should be considered Alpha.

License
=======
This project is released under the MIT License.