Skip to main content

Bootstrap Python projects with virtualenv and pip.

Project description

https://travis-ci.org/playpauseandstop/bootstrapper.png?branch=master https://pypip.in/v/bootstrapper/badge.png

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

Installation

As easy as:

# pip install bootstrapper

License

bootstrapper is licensed under the terms of BSD 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.5 (2015-01-07)

  • Do not use --download-cache option for pip>=6.0. More about new pip caching

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

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

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.5.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

bootstrapper-0.5-py2.py3-none-any.whl (12.1 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for bootstrapper-0.5.tar.gz
Algorithm Hash digest
SHA256 8867afe125fb039e698bf86410c55a553226e6bd9837ed8951b2e2ec96b6c364
MD5 373b70a4d538fa6981eeaf44343120ca
BLAKE2b-256 5dbef3bfe802d755e0608fff1d4e130c3cfe306b508a3c7efbef80a70f29b0e4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for bootstrapper-0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ba66d582457ebafceb0825b38de746fa1c943af224f8ea1b3f235c578f8bdfe6
MD5 41e4fd78e2b24b5f56e3f0e6a44a6aca
BLAKE2b-256 9dd5cb727d330d1be9b2e05205f11e16aa72a628508047835f4e108b8d29632a

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