Metadata-Version: 1.1
Name: bootstrap-env
Version: 0.5.1
Summary: Create a complete self contained virtualenv bootstrap file by enbed 'get-pip.py'
Home-page: https://github.com/jedie/bootstrap_env
Author: Jens Diemer
Author-email: bootstrap_env@jensdiemer.de
License: GPL v3+
Description: -------------
        bootstrap_env
        -------------
        
        Experimental project to create a complete self contained virtualenv bootstrap file.
        See: `packaging-problems issues 55 <https://github.com/pypa/packaging-problems/issues/55>`_
        
        Fork and contribute! ;)
        
        Compatible Python Versions (see also `.travis.yml <https://github.com/jedie/bootstrap_env/blob/master/.travis.yml>`_):
        
        * 2.7, 3.3, 3.4
        
        * PyPy (Python v2 and v3)
        
        +--------------------------------------+---------------------------------------------------------+
        | |Build Status on travis-ci.org|      | `travis-ci.org/jedie/bootstrap_env`_                    |
        +--------------------------------------+---------------------------------------------------------+
        | |Coverage Status on coveralls.io|    | `coveralls.io/r/jedie/bootstrap_env`_                   |
        +--------------------------------------+---------------------------------------------------------+
        | |Status on landscape.io|             | `landscape.io/github/jedie/bootstrap_env/master`_       |
        +--------------------------------------+---------------------------------------------------------+
        | |Requirements Status on requires.io| | `requires.io/github/jedie/bootstrap_env/requirements/`_ |
        +--------------------------------------+---------------------------------------------------------+
        
        .. |Build Status on travis-ci.org| image:: https://travis-ci.org/jedie/bootstrap_env.svg
        .. _travis-ci.org/jedie/bootstrap_env: https://travis-ci.org/jedie/bootstrap_env/
        .. |Coverage Status on coveralls.io| image:: https://coveralls.io/repos/jedie/bootstrap_env/badge.svg
        .. _coveralls.io/r/jedie/bootstrap_env: https://coveralls.io/r/jedie/bootstrap_env
        .. |Status on landscape.io| image:: https://landscape.io/github/jedie/bootstrap_env/master/landscape.svg
        .. _landscape.io/github/jedie/bootstrap_env/master: https://landscape.io/github/jedie/bootstrap_env/master
        .. |Requirements Status on requires.io| image:: https://requires.io/github/jedie/bootstrap_env/requirements.svg
        .. _requires.io/github/jedie/bootstrap_env/requirements/: https://requires.io/github/jedie/bootstrap_env/requirements/
        
        info
        ====
        
        Since ``virtualenv`` v1.10 you a virtualenv bootstrap file is not runnable without the pip and setuptools wheel files.
        There must be created a ``virtualenv_support`` with the wheels.
        
        e.g.:
        
        ::
        
            /bootstrap.py
            /virtualenv_support/
                    pip-1.5.6-py2.py3-none-any.whl
                    setuptools-3.6-py2.py3-none-any.whl
        
        With this project this is not needed. The current solution embed ``get_pip.py`` into the bootstrap file
        and call it after env creation.
        
        There are also some helpers to parse pip requirement files and install packages after virtualenv creation. Look into "boot bootstrap_env" project below.
        
        the example
        ===========
        
        There is a simple ``example``.
        
        To test it, create first the bootstrap file by running ``create_example.py`` for it:
        e.g.:
        
        ::
        
            /path/to/bootstrap-env$ python example_bootstrap/create_example.py
            
            Generate bootstrap file: '/path/to/bootstrap-env/boot_example_env.py'...
            
            Read code from: '.../src/bootstrap-env/example_bootstrap/extend_parser.py'...
            Read code from: '.../src/bootstrap-env/example_bootstrap/adjust_options.py'...
            Read code from: '.../src/bootstrap-env/example_bootstrap/after_install.py'...
            Read code from: '.../src/bootstrap-env/bootstrap_env/bootstrap_install_pip.py'...
            Request: 'https://raw.githubusercontent.com/pypa/pip/22baf0ca29325e848010c44a0fec0db64e8d1edb/contrib/get-pip.py'...
            Request: 'https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py'...
            Requested content of 'get-pip.py' is up-to-date, ok.
            get-pip.py SHA256: '51ef604ed2852f6b57b675ebefc4b807cffd2300bfc885761365988d19d227ad', ok.
            
            '/path/to/bootstrap-env/boot_example_env.py' written.
        
        After the first call, the requested ``get-pip.py`` file will be cached into the default temp
        and reused from there. So it is fast to generate it again:
        
        ::
        
            /path/to/bootstrap-env$ python example_bootstrap/create_example.py
            
            Generate bootstrap file: '/path/to/bootstrap-env/boot_example_env.py'...
            
            Read code from: '.../src/bootstrap-env/example_bootstrap/extend_parser.py'...
            Read code from: '.../src/bootstrap-env/example_bootstrap/adjust_options.py'...
            Read code from: '.../src/bootstrap-env/example_bootstrap/after_install.py'...
            Read code from: '.../src/bootstrap-env/bootstrap_env/bootstrap_install_pip.py'...
            Use '/tmp/get-pip.py'
            get-pip.py SHA256: '51ef604ed2852f6b57b675ebefc4b807cffd2300bfc885761365988d19d227ad', ok.
            
            '/path/to/bootstrap-env/boot_example_env.py' written.
        
        Running this looks like:
        
        ::
        
            /path/to/bootstrap-env$ python boot_example_env.py ~/example_env
            
            The additional example extend_parser() code is called.
            The additional example adjust_options() code is called.
            
            Using real prefix '/usr'
            Path not in prefix '/home/jens/PyLucid_env/include/python3.4m' '/usr'
            New python executable in /home/jens/example_env/bin/python
            Install pip...
            call '/home/jens/example_env/bin/python /home/jens/PyLucid_env/src/bootstrap-env/boot_example_env.py --install-pip /home/jens/example_env'
            install pip from self contained 'get_pip.py'
            Collecting pip
              Using cached pip-7.0.3-py2.py3-none-any.whl
            Collecting setuptools
              Using cached setuptools-17.0-py2.py3-none-any.whl
            Collecting wheel
              Using cached wheel-0.24.0-py2.py3-none-any.whl
            Installing collected packages: pip, setuptools, wheel
            Successfully installed pip-7.0.3 setuptools-17.0 wheel-0.24.0
            
            The additional example after_install() code is called.
        
        The ``example`` hook code stored separated files in `example_bootstrap <https://github.com/jedie/bootstrap_env/blob/master/example_bootstrap/>`_ directory looks like this:
        
        ::
        
            def extend_parser(parser):
                # --- CUT here ---
                sys.stdout.write("\nThe additional example extend_parser() code is called.\n")
        
        ::
        
            def adjust_options(options, args):
                # --- CUT here ---
                sys.stdout.write("The additional example adjust_options() code is called.\n\n")
        
        ::
        
            def after_install(options, home_dir):
                # --- CUT here ---
                sys.stdout.write("\nThe additional example after_install() code is called.\n\n")
        
        usage
        =====
        
        To create you own bootstrap file, is easy. Just copy the ``example`` or ``boot_bootstrap_env`` code and change it for your needs.
        
        Projects that use bootstrap_env are:
        
        * `PyLucid django-cms branch <https://github.com/jedie/PyLucid/tree/django-cms/bootstrap>`_
        
        * `DwLoadServer <https://github.com/DWLOAD/DwLoadServer/tree/master/bootstrap>`_
        
        Missing project? Do you use it? Just send me a mail: ``bootstrap_env AT jensdiemer DOT de`` or use IRC/Jabber (see below)
        
        boot bootstrap_env
        ==================
        
        To create a fresh virtualenv with ``boot.py`` do the following:
        
        ::
        
            # Download 'boot_bootstrap_env.py' from github:
            /home/FooBar$ wget https://raw.githubusercontent.com/jedie/bootstrap_env/master/bootstrap_env/boot.py
            
            # Create virtualenv and use read-only GIT:
            /home/FooBar$ python3 boot.py ~/my_bootstrap_env --install_type git_readonly
        
        The created virtualenv is under ``~/my_bootstrap_env/`` ;)
        
        If you would like to use PyPi packages do this:
        
        ::
        
            # Create virtualenv and use read-only GIT:
            /home/FooBar$ python3 boot.py ~/my_bootstrap_env --install_type pypi
        
        The ``boot.py`` will be created by ``create_boot.py`` this is stored here: `/bootstrap_env/boot_bootstrap_env/ <https://github.com/jedie/bootstrap_env/tree/master/bootstrap_env/boot_bootstrap_env>`_
        
        This also work under Windows.
        e.g:
        
        ::
        
            C:\> C:\Python34\python.exe d:\downloads\boot.py --install_type=pypi d:\my_bootstrap_env
        
        There is also a maybe helpful batch file: `bootstrap_env/boot.cmd <https://github.com/jedie/bootstrap_env/tree/master/bootstrap_env/boot.cmd>`_
        
        Request get_pip.py notes
        ========================
        
        The script file `bootstrap_env/create_bootstrap.py <https://github.com/jedie/bootstrap_env/blob/master/bootstrap_env/create_bootstrap.py>`_ will request ``get_pip.py`` from `https://github.com/pypa/pip/blob/develop/contrib/get-pip.py <https://github.com/pypa/pip/blob/develop/contrib/get-pip.py>`_
        It verify the content via SHA256 hash. This hash is hardcoded in ``create_bootstrap.py``
        You will get a warning if a newer ``get_pip.py`` was commited. Looks like this:
        
        ::
        
            Request: 'https://raw.githubusercontent.com/pypa/pip/ee6b739fb6e81ddaee64dc5bb686f7ec78ce3d78/contrib/get-pip.py'...
            Request: 'https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py'...
            WARNING: 'get-pip.py' master changed! Maybe a new version was commited?
            Please check:
            	https://github.com/pypa/pip/commits/develop/contrib/get-pip.py
            And report here:
            	https://github.com/jedie/bootstrap_env/issues
            get-pip.py SHA256: '0831b76e518a92a82487250fd18973062aa427e9bfab59a3e84d32f8d25b1679', ok.
            '../boot_bootstrap_env.py' written.
        
        -----------------------------
        backward incompatible changes
        -----------------------------
        
        v0.4 -> v0.5
        ============
        
        *bootstrap_env.**create_bootstrap*** was renamed to: *bootstrap_env.**generate_bootstrap***
        
        The old API sill worked, but creates a *FutureWarning* message and will be removed in the future.
        
        e.g. new:
        
        ::
        
            from bootstrap_env.generate_bootstrap import generate_bootstrap
            
            if __name__ == '__main__':
                generate_bootstrap(
                    #...
                )
        
        old:
        
        ::
        
            from bootstrap_env.create_bootstrap import generate_bootstrap
            
            if __name__ == '__main__':
                generate_bootstrap(
                    #...
                )
        
        -------
        History
        -------
        
        * v0.5.1 - 24.07.2015 - Made **add_extend_parser, add_adjust_options** and **add_after_install** optional in **generate_bootstrap()**
        
        * v0.5.1 - 18.07.2015 - Update to pip 7.1.0
        
        * v0.5.0 - 05.06.2015 - Add unittests, refactor sourcecode layout. (Please notice 'backward incompatible changes' above!)
        
        * v0.4.6 - 03.06.2015 - Update to pip 7.0.3
        
        * v0.4.5 - 26.05.2015 - Update to pip 7.0.1, cut filepath in generated boot file comments
        
        * v0.4.4 - 14.04.2015 - Update to pip 6.1.1 (upload again as v0.4.4 with wheel, too.)
        
        * v0.4.2 - 07.02.2015 - Update to pip 6.0.8
        
        * v0.4.1 - 29.01.2015 - Update for pip 6.0.7 and pin requested url.
        
        * v0.4.0 - 28.01.2015 - Updates for pip 6.0.6 changes
        
        * v0.3.5 - 28.01.2015 - Update SHA256 for ``get-pip.py`` v6.0.6
        
        * v0.3.4 - 14.11.2014 - Bugfix: if ``os.environ['SYSTEMROOT']`` not exists.
        
        * v0.3.3 - 14.11.2014 - Add version number into generated bootstrap file.
        
        * v0.3.2 - 14.11.2014 - Add 'boot bootstrap_env' and bugfixes for running under Windows.
        
        * v0.3.1 - 14.11.2014 - Bugfix for "error: no such option:" while pip install, if own optional options are used.
        
        * v0.3.0 - 13.11.2014 - typo: rename all ``bootstrip`` to ``bootstrap`` ;)
        
        * v0.2.0 - 09.10.2014 - add ``prefix`` and ``suffix`` argument to ``generate_bootstrap()``
        
        * v0.1.0 - 09.10.2014 - initial release
        
        ------
        Links:
        ------
        
        +--------+------------------------------------------------+
        | Forum  | `http://forum.pylucid.org/`_                   |
        +--------+------------------------------------------------+
        | IRC    | `#pylucid on freenode.net`_                    |
        +--------+------------------------------------------------+
        | Jabber | pylucid@conference.jabber.org                  |
        +--------+------------------------------------------------+
        | PyPi   | `https://pypi.python.org/pypi/bootstrap_env/`_ |
        +--------+------------------------------------------------+
        | Github | `https://github.com/jedie/bootstrap_env`_      |
        +--------+------------------------------------------------+
        
        .. _http://forum.pylucid.org/: http://forum.pylucid.org/
        .. _#pylucid on freenode.net: http://www.pylucid.org/permalink/304/irc-channel
        .. _https://pypi.python.org/pypi/bootstrap_env/: https://pypi.python.org/pypi/bootstrap_env/
        .. _https://github.com/jedie/bootstrap_env: https://github.com/jedie/bootstrap_env
        
        Simmilar projects are:
        
        * `https://pypi.python.org/pypi/bootstrapper/ <https://pypi.python.org/pypi/bootstrapper/>`_
        
        Related pages:
        
        * `https://packaging.python.org <https://packaging.python.org>`_
        
        * `https://virtualenv.pypa.io <https://virtualenv.pypa.io>`_
        
        * `https://pip.pypa.io <https://pip.pypa.io>`_
        
        --------
        donation
        --------
        
        * Send `Bitcoins <http://www.bitcoin.org/>`_ to `1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F <https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F>`_
Keywords: virtualenv pip
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: System :: Emulators
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides: bootstrap_env
