Skip to main content

Bootstrap Python projects with virtualenv and pip.

Project description

============
bootstrapper
============

.. image:: https://travis-ci.org/playpauseandstop/bootstrapper.png?branch=master
:target: https://travis-ci.org/playpauseandstop/bootstrapper

.. image:: https://pypip.in/v/bootstrapper/badge.png
:target: https://pypi-hypernode.com/pypi/bootstrapper

Bootstrap Python projects or libraries by checking system pre-requirements if
necessary, creating virtual environment, installing all requirements there and
finally execute post-bootstrap hooks if any.

Requirements
============

* `Python <http://www.python.org/>`_ 2.6+

Installation
============

As easy as::

# pip install bootstrapper

License
=======

``bootstrapper`` is licensed under the `BSD License
<https://github.com/playpauseandstop/bootstrapper/blob/master/LICENSE>`_.

Configuration
=============

You may configure any option of ``bootstrapper``, ``virtualenv`` and ``pip``
by setting it in ``bootstrap.cfg`` file. For example::

[bootstrapper]
env = venv
hook = cp -r {PROJECT}/settings_local.py{{.def,}}

[pip]
quiet = True

[virtualenv]
quiet = True

By default, next configuration would be used::

[bootstrapper]
env = env
requirements = requirements.txt
quiet = False

[pip]
download_cache = ~/.bootstrapper/pip-cache/

Your configuration or arguments from command line overwrite default options,
when arguments from command line overwrite your configuration as well.

Usage
=====

::

$ bootstrapper --help
usage: bootstrapper [-h] [--version] [-c CONFIG]
[-p PRE_REQUIREMENTS [PRE_REQUIREMENTS ...]] [-e ENV]
[-r REQUIREMENTS] [-C HOOK] [--recreate] [-q]

Bootstrap Python projects and libraries with virtualenv and pip.

optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
-c CONFIG, --config CONFIG
Path to config file. By default: bootstrap.cfg
-p PRE_REQUIREMENTS [PRE_REQUIREMENTS ...], --pre-requirements PRE_REQUIREMENTS [PRE_REQUIREMENTS ...]
List of pre-requirements to check, separated by space.
-e ENV, --env ENV Virtual environment name. By default: env
-r REQUIREMENTS, --requirements REQUIREMENTS
Path to requirements file. By default:
requirements.txt
-C HOOK, --hook HOOK Execute this hook after bootstrap process.
--recreate Recreate virtualenv on every run.
-q, --quiet Minimize output, show only error messages.

How it works?
=============

There are two types of Python installables: libraries and projects, where
library is Python code which only has ``setup.py`` and project is Python code
that has at least ``requirements.txt``, but could have ``setup.py`` as well.

Bootstrapper created as tool for installs Python projects, but time after time
I needed to use it with libraries too, so from version 0.2 script check if
passed requirements file exists on disk and if does just run,

::

$ pip install -r requirements.txt ...

inside of created virtual environment. But if requirements file does not exist,
script sends other arguments to ``pip``,

::

$ pip install -U -e . ...

and this is all magic.

So in pseudo-code installing Python library or project with bootstrapper is
simple process of 4 steps::

check_pre_requirements(list)
create_virtual_environment(env)
install_library_or_project(env)
run_hook(hook)

Changelog
=========

0.4 (2014-08-25)
----------------------

+ Exit from bootstrap script if given config file doesn't exist
+ Do not run post-bootstrap hook if environment creation or requirements
installation ended with error

0.3.1 (2014-03-08)
------------------

+ Fix ``UnboundLocalError`` in function to create virtual environment.

0.3 (2014-03-02)
----------------

+ Do not recreate virtual environment if already working in activated virtual
environment
+ Colorize error messages if system has pip 1.5+
+ Support multiple command line arguments for pip 1.5 from config files
+ Ignore double handling of virtualenv/pip errors

0.2.2 (2013-12-25)
------------------

+ More fixes to MS Windows platform
+ Ability to use ``{pip}`` in bootstrap.cfg as path to pip different in MS
Windows and Unix systems
+ Store full traceback on interrupting workflow or unexcepted error

0.2.1 (2013-12-20)
------------------

+ Fix installing requirements in venv on MS Windows platform

0.2 (2013-12-18)
----------------

+ Full support of MS Windows platform
+ Ability to use bootstrapper for libraries with only ``setup.py`` as well as
for projects with ``requirements.txt`` or other requirements file
- Remove support of major/minor requirements in favor of `tox
<http://tox.readthedocs.org>`_

0.1.6 (2013-12-17)
------------------

+ Initial support of MS Windows platform

0.1.5 (2013-06-02)
------------------

+ Real support of Python 3 versions
+ Enable Travis CI support
+ Refactor bootstrapper to Python module

0.1.4 (2013-06-02)
------------------

+ Support Python 3 versions

0.1.3 (2013-05-28)
------------------

- Disable ``--use-mirrors`` key by default for installing requirements via
``pip`` cause of latest `PyPI CDN changes
<https://twitter.com/pythonpackaging/status/339143339356061696>`_.

0.1.2 (2013-05-28)
------------------

+ Make ability to reuse cached pip files by storing them in ``~/.bootstrapper``
user directory by default.

0.1.1 (2013-01-02)
------------------

+ Use ``--use-mirrors`` key by default when ``pip`` installs requirements to
virtual environment.

0.1 (2012-09-26)
----------------

- Initial release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bootstrapper-0.4.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

bootstrapper-0.4-py2.py3-none-any.whl (11.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bootstrapper-0.4.tar.gz.

File metadata

  • Download URL: bootstrapper-0.4.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bootstrapper-0.4.tar.gz
Algorithm Hash digest
SHA256 a303f4a632c9ee7ac6196a4cbc18c3665deeca58cfb324b329b5fbde663745d6
MD5 34a3de36264bd3e4d33bcd6b5bb19dd6
BLAKE2b-256 ab80e2c3b66345c5dffdccf06cdae5648e5d8b6bf2387738878d9cb750411d5a

See more details on using hashes here.

Provenance

File details

Details for the file bootstrapper-0.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for bootstrapper-0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f44e04cae2e0e5558a7c9e0802183849886c3e8e809d962f5e0a424c417d4d6b
MD5 1be21e6d2a0774f973507e737d702604
BLAKE2b-256 65a87dafe7cbff290f7d5141388d099e82382d65cfc3bacf961546c600e37f81

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page