PyScaffold


NamePyScaffold JSON
Version 3.0.1 PyPI version JSON
download
home_pagehttp://pyscaffold.org/
SummaryTemplate tool for putting up the scaffold of a Python project
upload_time2018-02-13 15:17:53
maintainer
docs_urlNone
authorFlorian Wilhelm
requires_python
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://travis-ci.org/blue-yonder/pyscaffold.svg?branch=master
    :target: https://travis-ci.org/blue-yonder/pyscaffold
.. image:: https://coveralls.io/repos/blue-yonder/pyscaffold/badge.png
    :target: https://coveralls.io/r/blue-yonder/pyscaffold
.. image:: https://requires.io/github/blue-yonder/pyscaffold/requirements.png?branch=master
    :target: https://requires.io/github/blue-yonder/pyscaffold/requirements/?branch=master
    :alt: Requirements Status
.. image:: https://badges.gitter.im/Join%20Chat.svg
    :alt: Join the chat at https://gitter.im/blue-yonder/pyscaffold
    :target: https://gitter.im/blue-yonder/pyscaffold?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge

|

.. image:: http://pyscaffold.org/en/latest/_images/logo.png
    :height: 512px
    :width: 512px
    :scale: 60 %
    :alt: PyScaffold logo
    :align: center

|

PyScaffold helps you to easily setup a new Python project, it is as easy as::

    putup my_project

This will create a new folder ``my_project`` containing a perfect *project
template* with everything you need for some serious coding. After the usual::

   python setup.py develop

you are all set and ready to go.

Type ``putup -h`` to learn about more configuration options. PyScaffold assumes
that you have Git_ installed and set up on your PC,
meaning at least your name and email configured.
The project template in ``my_project`` provides you with following features:


Configuration & Packaging
=========================

All configuration can be done in ``setup.cfg`` like changing the description,
url, classifiers, installation requirements and so on as defined by setuptools_.
That means in most cases it is not necessary to tamper with ``setup.py``.

In order to build a source, binary or wheel distribution, just run
``python setup.py sdist``, ``python setup.py bdist`` or
``python setup.py bdist_wheel``.

.. rubric:: Package and Files Data

Additional data, e.g. images and text files, that reside within your package
will automatically be included (``include_package_data = True`` in ``setup.cfg``).
It is not necessary to have a ``MANIFEST.in`` file for this to work.

Complete Git Integration
========================

Your project is already an initialised Git repository and ``setup.py`` uses
the information of tags to infer the version of your project with the help of
setuptools_scm_.
To use this feature you need to tag with the format ``MAJOR.MINOR[.PATCH]``
, e.g. ``0.0.1`` or ``0.1``.
Run ``python setup.py --version`` to retrieve the current PEP440_-compliant
version. This version
will be used when building a package and is also accessible through
``my_project.__version__``.

Unleash the power of Git by using its `pre-commit hooks`_. This feature is
available through the ``--pre-commit`` flag. After your project's scaffold
was generated, make sure pre-commit is installed, e.g. ``pip install pre-commit``,
then just run ``pre-commit install``.

It goes unsaid that also a default ``.gitignore`` file is provided that is
well adjusted for Python projects and the most common tools.


Sphinx Documentation
====================

Build the documentation with ``python setup.py docs`` and run doctests with
``python setup.py doctest`` after you have `Sphinx`_ installed.
Start editing the file ``docs/index.rst`` to extend the documentation.
The documentation also works with `Read the Docs`_.

The `Numpy and Google style docstrings`_ are activated by default.
Just make sure Sphinx 1.3 or above is installed.


Unittest & Coverage
===================

Run ``python setup.py test`` to run all unittests defined in the subfolder
``tests`` with the help of `py.test`_ and pytest-runner_. Some sane
default flags for py.test are already defined in the ``[tool:pytest]`` section of
``setup.cfg``. The py.test plugin `pytest-cov`_ is used to automatically
generate a coverage report. It is also possible to provide additional
parameters and flags on the commandline, e.g., type::

    python setup.py test --addopts -h

to show the help of py.test.

.. rubric:: JUnit and Coverage HTML/XML

For usage with a continuous integration software JUnit and Coverage XML output
can be activated in ``setup.cfg``. Use the flag ``--travis`` to generate
templates of the `Travis`_ configuration files
``.travis.yml`` and ``tests/travis_install.sh`` which even features the
coverage and stats system `Coveralls`_.
In order to use the virtualenv management and test tool `Tox`_ the flag
``--tox`` can be specified.


Management of Requirements & Licenses
=====================================

Installation requirements of your project can be defined inside ``setup.cfg``,
e.g. ``install_requires = numpy; scipy``. To avoid package dependency problems
it is common to not pin installation requirements to any specific version,
although minimum versions, e.g. ``sphinx>=1.3``, or maximum versions, e.g.
``pandas<0.12``, are used sometimes.

More specific installation requirements should go into ``requirements.txt``.
This file can also be managed with the help of ``pip compile`` from `pip-tools`_
that basically pins packages to the current version, e.g. ``numpy==1.13.1``.
The packages defined in ``requirements.txt`` can be easily installed with::

    pip install -r requirements.txt

All licenses from `choosealicense.com`_ can be easily selected with the help
of the ``--license`` flag.


Extensions
==========

PyScaffold comes with several extensions:

* Create a `Django project`_ with the flag ``--django`` which is equivalent to
  ``django-admin.py startproject my_project`` enhanced by PyScaffold's features.


* With the help of `Cookiecutter`_ it is possible to further customize your project
  setup with a template tailored for PyScaffold. Just use the flag ``--cookiecutter TEMPLATE``
  to use a cookiecutter template which will be refined by PyScaffold afterwards.

* ... and many more like ``--gitlab`` to create the necessary files for GitLab_.

Easy Updating
=============

Keep your project's scaffold up-to-date by applying
``putup --update my_project`` when a new version of PyScaffold was released.
An update will only overwrite files that are not often altered by users like
``setup.py``. To update all files use ``--update --force``.
An existing project that was not setup with PyScaffold can be converted with
``putup --force existing_project``. The force option is completely safe to use
since the git repository of the existing project is not touched!


.. _setuptools: http://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files
.. _setuptools_scm: https://pypi.python.org/pypi/setuptools_scm/
.. _Git: http://git-scm.com/
.. _PEP440: http://www.python.org/dev/peps/pep-0440/
.. _pre-commit hooks: http://pre-commit.com/
.. _py.test: http://pytest.org/
.. _Sphinx: http://www.sphinx-doc.org/
.. _Read the Docs: https://readthedocs.org/
.. _Numpy and Google style docstrings: http://sphinx-doc.org/latest/ext/napoleon.html
.. _pytest-runner: https://pypi.python.org/pypi/pytest-runner
.. _pytest-cov: https://github.com/schlamar/pytest-cov
.. _Travis: https://travis-ci.org
.. _Coveralls: https://coveralls.io/
.. _Tox: https://tox.readthedocs.org/
.. _choosealicense.com: http://choosealicense.com/
.. _Django project: https://www.djangoproject.com/
.. _Cookiecutter: https://cookiecutter.readthedocs.org/
.. _GitLab: https://about.gitlab.com/
.. _pip-tools: https://github.com/jazzband/pip-tools/

            

Raw data

            {
    "maintainer": "", 
    "docs_url": null, 
    "requires_python": "", 
    "maintainer_email": "", 
    "cheesecake_code_kwalitee_id": null, 
    "keywords": "", 
    "upload_time": "2018-02-13 15:17:53", 
    "author": "Florian Wilhelm", 
    "home_page": "http://pyscaffold.org/", 
    "download_url": "https://pypi.python.org/packages/fa/63/511bcef77297581bc0f8dac75e514458d640db75bb6eb0e37c59ac655bac/PyScaffold-3.0.1.tar.gz", 
    "platform": "any", 
    "version": "3.0.1", 
    "cheesecake_documentation_id": null, 
    "description": ".. image:: https://travis-ci.org/blue-yonder/pyscaffold.svg?branch=master\n    :target: https://travis-ci.org/blue-yonder/pyscaffold\n.. image:: https://coveralls.io/repos/blue-yonder/pyscaffold/badge.png\n    :target: https://coveralls.io/r/blue-yonder/pyscaffold\n.. image:: https://requires.io/github/blue-yonder/pyscaffold/requirements.png?branch=master\n    :target: https://requires.io/github/blue-yonder/pyscaffold/requirements/?branch=master\n    :alt: Requirements Status\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n    :alt: Join the chat at https://gitter.im/blue-yonder/pyscaffold\n    :target: https://gitter.im/blue-yonder/pyscaffold?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n|\n\n.. image:: http://pyscaffold.org/en/latest/_images/logo.png\n    :height: 512px\n    :width: 512px\n    :scale: 60 %\n    :alt: PyScaffold logo\n    :align: center\n\n|\n\nPyScaffold helps you to easily setup a new Python project, it is as easy as::\n\n    putup my_project\n\nThis will create a new folder ``my_project`` containing a perfect *project\ntemplate* with everything you need for some serious coding. After the usual::\n\n   python setup.py develop\n\nyou are all set and ready to go.\n\nType ``putup -h`` to learn about more configuration options. PyScaffold assumes\nthat you have Git_ installed and set up on your PC,\nmeaning at least your name and email configured.\nThe project template in ``my_project`` provides you with following features:\n\n\nConfiguration & Packaging\n=========================\n\nAll configuration can be done in ``setup.cfg`` like changing the description,\nurl, classifiers, installation requirements and so on as defined by setuptools_.\nThat means in most cases it is not necessary to tamper with ``setup.py``.\n\nIn order to build a source, binary or wheel distribution, just run\n``python setup.py sdist``, ``python setup.py bdist`` or\n``python setup.py bdist_wheel``.\n\n.. rubric:: Package and Files Data\n\nAdditional data, e.g. images and text files, that reside within your package\nwill automatically be included (``include_package_data = True`` in ``setup.cfg``).\nIt is not necessary to have a ``MANIFEST.in`` file for this to work.\n\nComplete Git Integration\n========================\n\nYour project is already an initialised Git repository and ``setup.py`` uses\nthe information of tags to infer the version of your project with the help of\nsetuptools_scm_.\nTo use this feature you need to tag with the format ``MAJOR.MINOR[.PATCH]``\n, e.g. ``0.0.1`` or ``0.1``.\nRun ``python setup.py --version`` to retrieve the current PEP440_-compliant\nversion. This version\nwill be used when building a package and is also accessible through\n``my_project.__version__``.\n\nUnleash the power of Git by using its `pre-commit hooks`_. This feature is\navailable through the ``--pre-commit`` flag. After your project's scaffold\nwas generated, make sure pre-commit is installed, e.g. ``pip install pre-commit``,\nthen just run ``pre-commit install``.\n\nIt goes unsaid that also a default ``.gitignore`` file is provided that is\nwell adjusted for Python projects and the most common tools.\n\n\nSphinx Documentation\n====================\n\nBuild the documentation with ``python setup.py docs`` and run doctests with\n``python setup.py doctest`` after you have `Sphinx`_ installed.\nStart editing the file ``docs/index.rst`` to extend the documentation.\nThe documentation also works with `Read the Docs`_.\n\nThe `Numpy and Google style docstrings`_ are activated by default.\nJust make sure Sphinx 1.3 or above is installed.\n\n\nUnittest & Coverage\n===================\n\nRun ``python setup.py test`` to run all unittests defined in the subfolder\n``tests`` with the help of `py.test`_ and pytest-runner_. Some sane\ndefault flags for py.test are already defined in the ``[tool:pytest]`` section of\n``setup.cfg``. The py.test plugin `pytest-cov`_ is used to automatically\ngenerate a coverage report. It is also possible to provide additional\nparameters and flags on the commandline, e.g., type::\n\n    python setup.py test --addopts -h\n\nto show the help of py.test.\n\n.. rubric:: JUnit and Coverage HTML/XML\n\nFor usage with a continuous integration software JUnit and Coverage XML output\ncan be activated in ``setup.cfg``. Use the flag ``--travis`` to generate\ntemplates of the `Travis`_ configuration files\n``.travis.yml`` and ``tests/travis_install.sh`` which even features the\ncoverage and stats system `Coveralls`_.\nIn order to use the virtualenv management and test tool `Tox`_ the flag\n``--tox`` can be specified.\n\n\nManagement of Requirements & Licenses\n=====================================\n\nInstallation requirements of your project can be defined inside ``setup.cfg``,\ne.g. ``install_requires = numpy; scipy``. To avoid package dependency problems\nit is common to not pin installation requirements to any specific version,\nalthough minimum versions, e.g. ``sphinx>=1.3``, or maximum versions, e.g.\n``pandas<0.12``, are used sometimes.\n\nMore specific installation requirements should go into ``requirements.txt``.\nThis file can also be managed with the help of ``pip compile`` from `pip-tools`_\nthat basically pins packages to the current version, e.g. ``numpy==1.13.1``.\nThe packages defined in ``requirements.txt`` can be easily installed with::\n\n    pip install -r requirements.txt\n\nAll licenses from `choosealicense.com`_ can be easily selected with the help\nof the ``--license`` flag.\n\n\nExtensions\n==========\n\nPyScaffold comes with several extensions:\n\n* Create a `Django project`_ with the flag ``--django`` which is equivalent to\n  ``django-admin.py startproject my_project`` enhanced by PyScaffold's features.\n\n\n* With the help of `Cookiecutter`_ it is possible to further customize your project\n  setup with a template tailored for PyScaffold. Just use the flag ``--cookiecutter TEMPLATE``\n  to use a cookiecutter template which will be refined by PyScaffold afterwards.\n\n* ... and many more like ``--gitlab`` to create the necessary files for GitLab_.\n\nEasy Updating\n=============\n\nKeep your project's scaffold up-to-date by applying\n``putup --update my_project`` when a new version of PyScaffold was released.\nAn update will only overwrite files that are not often altered by users like\n``setup.py``. To update all files use ``--update --force``.\nAn existing project that was not setup with PyScaffold can be converted with\n``putup --force existing_project``. The force option is completely safe to use\nsince the git repository of the existing project is not touched!\n\n\n.. _setuptools: http://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files\n.. _setuptools_scm: https://pypi.python.org/pypi/setuptools_scm/\n.. _Git: http://git-scm.com/\n.. _PEP440: http://www.python.org/dev/peps/pep-0440/\n.. _pre-commit hooks: http://pre-commit.com/\n.. _py.test: http://pytest.org/\n.. _Sphinx: http://www.sphinx-doc.org/\n.. _Read the Docs: https://readthedocs.org/\n.. _Numpy and Google style docstrings: http://sphinx-doc.org/latest/ext/napoleon.html\n.. _pytest-runner: https://pypi.python.org/pypi/pytest-runner\n.. _pytest-cov: https://github.com/schlamar/pytest-cov\n.. _Travis: https://travis-ci.org\n.. _Coveralls: https://coveralls.io/\n.. _Tox: https://tox.readthedocs.org/\n.. _choosealicense.com: http://choosealicense.com/\n.. _Django project: https://www.djangoproject.com/\n.. _Cookiecutter: https://cookiecutter.readthedocs.org/\n.. _GitLab: https://about.gitlab.com/\n.. _pip-tools: https://github.com/jazzband/pip-tools/\n", 
    "lcname": "pyscaffold", 
    "bugtrack_url": null, 
    "github": false, 
    "name": "PyScaffold", 
    "license": "MIT", 
    "summary": "Template tool for putting up the scaffold of a Python project", 
    "split_keywords": [], 
    "author_email": "Florian.Wilhelm@gmail.com", 
    "urls": [
        {
            "has_sig": false, 
            "upload_time": "2018-02-13T15:18:01", 
            "comment_text": "", 
            "python_version": "3.6", 
            "url": "https://pypi.python.org/packages/24/84/807502d1495e9d76581ecbb12a41a4d79d5010d9cdf1723547956439ce41/PyScaffold-3.0.1-py3-none-any.whl", 
            "md5_digest": "e182a47b347f436d501b3ad2809136e0", 
            "downloads": 0, 
            "filename": "PyScaffold-3.0.1-py3-none-any.whl", 
            "packagetype": "bdist_wheel", 
            "path": "24/84/807502d1495e9d76581ecbb12a41a4d79d5010d9cdf1723547956439ce41/PyScaffold-3.0.1-py3-none-any.whl", 
            "size": 151045
        }, 
        {
            "has_sig": false, 
            "upload_time": "2018-02-13T15:17:53", 
            "comment_text": "", 
            "python_version": "source", 
            "url": "https://pypi.python.org/packages/fa/63/511bcef77297581bc0f8dac75e514458d640db75bb6eb0e37c59ac655bac/PyScaffold-3.0.1.tar.gz", 
            "md5_digest": "d0ad8c6b75968691529008927ea2806b", 
            "downloads": 0, 
            "filename": "PyScaffold-3.0.1.tar.gz", 
            "packagetype": "sdist", 
            "path": "fa/63/511bcef77297581bc0f8dac75e514458d640db75bb6eb0e37c59ac655bac/PyScaffold-3.0.1.tar.gz", 
            "size": 202211
        }
    ], 
    "_id": null, 
    "cheesecake_installability_id": null
}