Metadata-Version: 1.1
Name: envie
Version: 0.4.1
Summary: Bash helpers for navigating and managing Python VirtualEnvs.
Home-page: https://github.com/randomir/envie
Author: Radomir Stevanovic
Author-email: radomir.stevanovic@gmail.com
License: MIT
Description: Navigate and manage Python VirtualEnvs
        ======================================
        
        ``envie`` is an ultra lightweight set of Bash functions aiming to increase
        your productivity when dealing with everyday VirtualEnv tasks, like: creating,
        destroying, listing and switching environments.
        
        
        Summary
        -------
        
        - ``mkenv [<env>|"env"] [<pyexec>|"python"]`` - Create virtualenv in ``<env>`` based on Python version ``<pyexec>``.
        - ``rmenv`` - Destroy the active environment.
        - ``cdenv`` - Interactively activate the closest environment (looking down, then up, with ``lsupenv``).
        - ``lsenv [<start>|"." [<avoid>]]`` - List all environments below ``<start>`` directory, skipping ``<avoid>`` subdir.
        - ``lsupenv`` - Find the closest environments by first looking down and then dir-by-dir up the tree, starting with cwd.
        - ``envie init`` - Run (once) to enable (faster) searches with ``locate``.
        - ``envie update`` - Run to re-index directories searched with ``updatedb``.
        - ``envie register | unregister`` - Add/remove source statement to/from your ``.bashrc``.
        
        
        Examples
        --------
        
        Create/destroy
        ..............
        
        To create a new VirtualEnv in the current directory, just type ``mkenv <envname>``. 
        This results with new environment created and activated in ``./<envname>``.
        When done with this environment, just type ``rmenv`` to destroy the active env.
        
        ::
        
            stevie@caracal:~/demo$ ls
            stevie@caracal:~/demo$ mkenv env
            Creating python environment in 'env'.
            Using Python 2.7.9 (/usr/bin/python).
            (env)stevie@caracal:~/demo$ ls
            env
            (env)stevie@caracal:~/demo$ pip freeze
            argparse==1.2.1
            wsgiref==0.1.2
            (env)stevie@caracal:~/demo$ rmenv
            stevie@caracal:~/demo$ ls
            stevie@caracal:~/demo$
        
        
        Change/activate environment
        ...........................
        
        Use ``cdenv`` to activate the closest environment, tree-wise. We first look 
        down the tree, then up the tree. If a single Python environment is found,
        it's automatically activated. In case the multiple environments are found,
        a choice is presented to user.
        
        ::
        
            stevie@caracal:~/demo$ ls -F
            env/ project/ file1 file2 ...
            stevie@caracal:~/demo$ cdenv
            (env)stevie@caracal:~/demo$
        
        Assume the following tree exists::
        
            ~/demo
              |_ project1
              |  |_ env
              |  |  |_ ...
              |  |_ src
              |     |_ ...
              |_ project2
              |  |_ env
              |     |_ ...
        
        Now, consider you work in ``~/demo/project1/src/deep/path/to/module``, but keep the environment
        in the ``env`` parallel to ``src``. Instead of manually switching to ``env`` and activating it with 
        something like ``source ../../../../../env/bin/activate``, just type ``cdenv`` (``cde<TAB>`` should
        actually do it, if you use tab completion)::
        
            stevie@caracal:~/demo/project1/src/deep/path/to/module$ cdenv
            (env)stevie@caracal:~/demo/project1/src/deep/path/to/module$ which python
            /home/stevie/demo/project1/env/bin/python
        
        On the other hand, if there are multiple environments to choose from, you'll get a prompt::
        
            stevie@caracal:~/demo$ cdenv
            1) ./project1/env
            2) ./project2/env
            #? 2
            (env)stevie@caracal:~/demo$ which python
            /home/stevie/demo/project2/env/bin/python
        
        
        Search/list environments
        ........................
        
        To search down the tree for valid Python VirtualEnvs, use ``lsenv``.
        Likewise, to search up the tree, level by level, use ``lsupenv``.
        ``cdenv`` uses ``lsupenv`` when searching to environment to activate.
        
        Install
        -------
        
        For convenience, ``envie`` is packaged and distributed as a Python package. To
        install, simply type::
        
            $ sudo pip install envie
            $ envie register
        
        The second line above will add a sourcing statement for ``envie`` to your
        ``.bashrc`` file.
        
        
        Enable faster search
        ....................
        
        By default, ``envie`` uses the ``find`` command to search for environments. That
        approach is pretty fast when searching shallow trees. However, if you have a
        deeper directory trees, it's often faster to use a pre-built directory index
        (i.e. the ``locate`` command). To enable a combined ``locate/find`` approach to
        search, run::
        
            $ envie init
            Indexing environments in '/home/stevie'...Done.
        
        In the combined approach, if `find` doesn't finish within 100ms, search via
        ``find`` is aborted and ``locate`` is allowed to finish (faster).
        
Keywords: virtualenv bash helper closest virtual environment create mkenv destroy rmenv change cdenv
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Unix Shell
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Topic :: Utilities
Classifier: Topic :: System :: Shells
