Venv¶
Overview¶
Venv makes working with Virtualenvwrapper, Bash, Vim, and IPython within a project context very easy.
There are a few parts to “venv”:
- ipython_config.py (dotfiles.venv.ipython_config) provides a shell command (venv.py) for verbosely generating source-able shell configuration for a Virtualenv and IPython, and generates CdAlias scripts for Bash, ZSH, IPython, and Vim
- `ipython_magics.py`_ (dotfiles.venv.ipython_magics) configures CdAliases (cdwrk, cdv, cdsrc, cdwrd) and dotfiles_status (ds) for IPython.
- 10-bashrc.venv.sh (Usage > Bash)
Quickstart¶
# print shell configuration for a (hypothetical) dotfiles virtualenv
venv --print-bash dotfiles
# print shell configuration for the current ${VIRTUAL_ENV} [and ${_WRD}]
venv --print-bash -E
# run a bash subprocess within a virtual env
venv -xb dotfiles
# workon a virtualenvwrapper virtualenv (we) (source <(venv -E --bash))
we dotfiles
# workon ${WORKON_HOME}/dotfiles/src/otherproject (echo $_APP $_WRD)
we dotfiles otherproject
Usage¶
__WRK="~/-wrk" # cdwrk # workspace
__DOTFILES="~/-dotfiles" # cdd cddotfiles
PROJECT_HOME="${__WRK}" # cdph cdprojecthome
WORKON_HOME="${__WRK}/-ve27" # cdwh cdworkonhome
__VENV=$(which venv.py);
# ${__DOTFILES}/src/dotfiles/venv/ipython_config.py # source
# ${__DOTFILES}/etc/ipython/ipython_config.py # symlink
# ~/.ipython/profile_default/ipython_config.py # symlink
# ${__DOTFILES}/scripts/venv.py # symlink ($PATH)
# ${VIRTUAL_ENV}/bin/venv # setup.py console_script
# ~/.local/bin/venv # setup.py console_script
__VENV="${__DOTFILES}/scripts/venv.py" # 10-bashrc.venv.sh
# venv() -- (set -x; $__VENV $@) # 10-bashrc.venv.sh
# venv-() -- (set -x; $__VENV -e $@) # 10-bashrc.venv.sh
$__VENV --help
venv.py --help
venv -h
# Generate venv CdAlias scripts
venv.py --print-bash-cdalias . | tee venv_cdalias.sh
venv.py --print-ipython-cdalias . | tee venv_cdmagic.py
venv.py --print-vim . | tee venv.vim
# Generate venv configuration for the "dotfiles" virtualenv
venv.py --print-vars --VIRTUAL_ENV="${WORKON_HOME}/dotfiles"
venv.py --print-vars --virtual-env="${WORKON_HOME}/dotfiles"
venv.py --print-vars --ve="${WORKON_HOME}/dotfiles"
venv.py --print-vars --ve dotfiles
venv.py --print-vars dotfiles
venv.py --print-vars dotfiles
venv.py --print-bash dotfiles
## Workon the dotfiles virtualenv
source <(venv.py -q --print-bash dotfiles)
## Workon the dotfiles virtualenv (with a bash subprocess)
venv.py -xb dotfiles
## Workon the dotfiles virtualenv (after virtualenvwrapper workon)
workon dotfiles
source <(venv.py -q --print-bash --from-environ)
## Note: the following two commands are different to argparse:
## (positional VENVSTR and VENVSTRAPP must come last,
## or be specified as --ve and --app)
venv dotfiles --print-bash # does not work
venv --print-bash dotfiles # does work
CdAlias¶
Each CdAlias in env.aliases is expanded for each output type.
For example, CdAlias('__WRK') becomes cdwrk, %cdwrk, and :Cdwrk:
# Bash
cdwrk
cdwrk<tab>
cdwrk -ve27
# IPython
%cdwrk
cdwrk
cdwrk -ve27
# Vim
call Cd___WRK()
:Cdwrk
:Cdwrk -ve27
Usage¶
Shell Command¶
$ python ../src/dotfiles/venv/ipython_config.py --help
usage: venv [-h] [-e] [--__WRK [__WRK]] [--__DOTFILES [__DOTFILES]]
[--WORKON_HOME [WORKON_HOME]] [--VENVSTR [VENVSTR_]]
[--VENVSTRAPP [VENVSTRAPP_]]
[--VIRTUAL_ENV_NAME [VIRTUAL_ENV_NAME]]
[--VENVPREFIX [VENVPREFIX]] [--VIRTUAL_ENV [VIRTUAL_ENV]]
[--_SRC [_SRC]] [--_APP [_APP]] [--_WRD [_WRD]]
[--platform PLATFORM] [--print-json]
[--print-json-filename [PRINT_JSON_FILENAME]] [--print-vars]
[--print-bash] [--print-bash-filename [PRINT_BASH_FILENAME]]
[--print-bash-cdalias]
[--print-bash-cdalias-filename [PRINT_BASH_CDALIAS_FILENAME]] [-Z]
[--print-zsh-filename [PRINT_ZSH_FILENAME]] [--print-vim-cdalias]
[--print-vim-cdalias-filename [PRINT_VIM_CDALIAS_FILENAME]]
[--command RUN_COMMAND] [--run-bash] [--run-make] [--run-editp]
[--run-terminal] [--pathall] [--pwrk PATH__WRK]
[--pworkonhome PATH_WORKON_HOME] [--pvirtualenv] [--psrc] [--pwrd]
[--pdotfiles] [--prel] [--pkg-resource-path] [--diff] [-v] [-q]
[-t] [--version]
[VENVSTR] [VENVSTRAPP] ...
venv is a configuration utility for virtual environments.
positional arguments:
VENVSTR a name of a virtualenv in WORKON_HOME OR a full path
to a VIRTUAL_ENV
VENVSTRAPP a path within _SRC (_WRD=_SRC/VENVSTRAPP)
args
optional arguments:
-h, --help show this help message and exit
-e, --from-environ Build venv.env.environ from keys in os.environ
--__WRK [__WRK], --WRK [__WRK], --wrk [__WRK]
Path to workspace -- ~/-wrk
--__DOTFILES [__DOTFILES], --DOTFILES [__DOTFILES], --dotfiles [__DOTFILES]
Path to ${__DOTFILES} symlink -- ~/-dotfiles
--WORKON_HOME [WORKON_HOME], --workonhome [WORKON_HOME], --wh [WORKON_HOME]
Path to ${WORKON_HOME} directory containing
VIRTUAL_ENVs
--VENVSTR [VENVSTR_], --venvstr [VENVSTR_], --ve [VENVSTR_]
Path to VIRTUAL_ENV --
${WORKON_HOME}/${VIRTUAL_ENV_NAME} (or a dirname in
$WORKON_HOME)
--VENVSTRAPP [VENVSTRAPP_], --venvstrapp [VENVSTRAPP_]
Subpath within {VIRTUAL_ETC}/src/
--VIRTUAL_ENV_NAME [VIRTUAL_ENV_NAME], --virtual-env-name [VIRTUAL_ENV_NAME], --vename [VIRTUAL_ENV_NAME]
dirname in WORKON_HOME --
${WORKON_HOME}/${VIRTUAL_ENV_NAME}
--VENVPREFIX [VENVPREFIX], --venvprefix [VENVPREFIX], --prefix [VENVPREFIX]
Prefix for _SRC, _ETC, _WRD if [ -z VIRTUAL_ENV ]
--VIRTUAL_ENV [VIRTUAL_ENV], --virtual-env [VIRTUAL_ENV]
Path to a $VIRTUAL_ENV
--_SRC [_SRC], --SRC [_SRC], --src [_SRC]
Path to source -- ${VIRTUAL_ENV}/src")
--_APP [_APP], --APP [_APP], --app [_APP]
Path component string -- ${_SRC}/${_APP}
--_WRD [_WRD], --WRD [_WRD], --wrd [_WRD]
Path to working directory -- ${_SRC}/${_APP}
--platform PLATFORM Platform string (default: None)
--print-json Print venv configuration as JSON
--print-json-filename [PRINT_JSON_FILENAME]
Path to write venv env JSON to
--print-vars Print vars
--print-bash, --bash Print Bash shell configuration
--print-bash-filename [PRINT_BASH_FILENAME], --bf [PRINT_BASH_FILENAME]
Path to write Bash shell configuration into
--print-bash-cdalias, --bash-cdalias
Print Bash cdalias script
--print-bash-cdalias-filename [PRINT_BASH_CDALIAS_FILENAME], --bcdf [PRINT_BASH_CDALIAS_FILENAME]
Path to write Bash cdalias shell configuration into
-Z, --print-zsh Print ZSH shell configuration
--print-zsh-filename [PRINT_ZSH_FILENAME], --zf [PRINT_ZSH_FILENAME]
Print ZSH shell configuration
--print-vim-cdalias, --vim
Print vimscript configuration
--print-vim-cdalias-filename [PRINT_VIM_CDALIAS_FILENAME], --vcdf [PRINT_VIM_CDALIAS_FILENAME]
Path to write cdalias vimscript into
--command RUN_COMMAND, --cmd RUN_COMMAND, -x RUN_COMMAND
Run a command in a venv-configured shell
--run-bash, --xbash, -xb
Run bash in the specified venv
--run-make, --xmake, -xmake
Run (cd $_WRD; make $@) in the specified venv
--run-editp, --open-editors, --edit, -E
Open $EDITOR_ with venv.project_files [$PROJECT_FILES]
--run-terminal, --open-terminals, --terminals, -T
Open terminals within the venv [gnome-terminal]
--pathall, -a, --all-paths, --ap
Print possible paths for the given path
--pwrk PATH__WRK, --wrk-path PATH__WRK
Print $__WRK/$@
--pworkonhome PATH_WORKON_HOME, --workonhome-path PATH_WORKON_HOME, --pwh PATH_WORKON_HOME
Print $__WORKON_HOME/$@
--pvirtualenv, --virtualenv-path, --pv
Print $VIRTUAL_ENV/${@}
--psrc, --src-path, --ps
Print $_SRC/${@}
--pwrd, --wrd-path, --pw
Print $_WRD/${@}
--pdotfiles, --dotfiles-path, --pd
Print ${__DOTFILES}/${path}
--prel, --relative-path
Print ${@}
--pkg-resource-path Path from pkg_resources.TODOTODO
--diff, --show-diffs
-v, --verbose
-q, --quiet
-t, --test
--version
argparse.REMAINDER: If args must be specified, either (VENVSTR AND VENVSTRAPP)
or (--ve [--app]) must be specified first: venv --ve dotfiles -xmake.
Python API¶
Python API (see Test_Env, Test_venv_main): A dotfiles.venv.ipython_config.Venv object builds a dotfiles.venv.ipython_config.Env OrderedDict (.env) with $VIRTUAL_ENV-relative paths and environment variables in a common filesystem hierarchy and an OrderedDict of command aliases (.aliases), which can be serialized to a bash script (venv --bash), JSON (venv --print), and IPython configuration.
Example Venv Configuration¶
Shell Configuration¶
venv.py --print-bash dotfiles:
$ python ../scripts/venv.py --print-bash dotfiles \
| sed "s,${HOME},~,g"
export VENVSTR='dotfiles'
export VIRTUAL_ENV='~/-wrk/-ve27/dotfiles'
export WORKON_HOME='~/-wrk/-ve27'
export _APP='dotfiles'
export VENVSTRAPP='dotfiles'
export VENVPREFIX='~/-wrk/-ve27/dotfiles'
export VIRTUAL_ENV_NAME='dotfiles'
export HOME='~'
export __WRK='~/-wrk'
export __SRC='~/-wrk/-src'
export __DOTFILES='~/-dotfiles'
export PROJECT_HOME='~/-wrk'
export WORKON_HOME__py27='~/-wrk/-ve27'
export WORKON_HOME__py34='~/-wrk/-ve34'
export WORKON_HOME_DEFAULT='WORKON_HOME__py27'
export _ETC='~/-wrk/-ve27/dotfiles/etc'
export _SRC='~/-wrk/-ve27/dotfiles/src'
export _WRD='~/-wrk/-ve27/dotfiles/src/dotfiles'
export CONDA27_ROOT='~/-wrk/-conda27'
export CONDA27_HOME='~/-wrk/-ce27'
export CONDA34_ROOT='~/-wrk/-conda34'
export CONDA34_HOME='~/-wrk/-ce34'
export CONDA_ROOT__py27='~/-wrk/-conda27'
export CONDA_HOME__py27='~/-wrk/-ce27'
export CONDA_ROOT__py34='~/-wrk/-conda34'
export CONDA_HOME__py34='~/-wrk/-ce27'
export CONDA_ROOT_DEFAULT='CONDA_ROOT__py27'
export CONDA_HOME_DEFAULT='CONDA_HOME__py27'
export CONDA_ROOT='~/-wrk/-conda27'
export CONDA_HOME='~/-wrk/-ce27'
export _BIN='~/-wrk/-ve27/dotfiles/bin'
export _ETCOPT='~/-wrk/-ve27/dotfiles/etc/opt'
export _HOME='~/-wrk/-ve27/dotfiles/home'
export _LIB='~/-wrk/-ve27/dotfiles/lib'
export _PYLIB='~/-wrk/-ve27/dotfiles/lib/python2.7'
export _PYSITE='~/-wrk/-ve27/dotfiles/lib/python2.7/site-packages'
export _MNT='~/-wrk/-ve27/dotfiles/mnt'
export _MEDIA='~/-wrk/-ve27/dotfiles/media'
export _OPT='~/-wrk/-ve27/dotfiles/opt'
export _ROOT='~/-wrk/-ve27/dotfiles/root'
export _SBIN='~/-wrk/-ve27/dotfiles/sbin'
export _SRV='~/-wrk/-ve27/dotfiles/srv'
export _TMP='~/-wrk/-ve27/dotfiles/tmp'
export _USR='~/-wrk/-ve27/dotfiles/usr'
export _USRBIN='~/-wrk/-ve27/dotfiles/usr/bin'
export _USRINCLUDE='~/-wrk/-ve27/dotfiles/usr/include'
export _USRLIB='~/-wrk/-ve27/dotfiles/usr/lib'
export _USRLOCAL='~/-wrk/-ve27/dotfiles/usr/local'
export _USRSBIN='~/-wrk/-ve27/dotfiles/usr/sbin'
export _USRSHARE='~/-wrk/-ve27/dotfiles/usr/share'
export _USRSRC='~/-wrk/-ve27/dotfiles/usr/src'
export _VAR='~/-wrk/-ve27/dotfiles/var'
export _VARCACHE='~/-wrk/-ve27/dotfiles/var/cache'
export _VARLIB='~/-wrk/-ve27/dotfiles/var/lib'
export _VARLOCK='~/-wrk/-ve27/dotfiles/var/lock'
export _LOG='~/-wrk/-ve27/dotfiles/var/log'
export _VARMAIL='~/-wrk/-ve27/dotfiles/var/mail'
export _VAROPT='~/-wrk/-ve27/dotfiles/var/opt'
export _VARRUN='~/-wrk/-ve27/dotfiles/var/run'
export _VARSPOOL='~/-wrk/-ve27/dotfiles/var/spool'
export _VARTMP='~/-wrk/-ve27/dotfiles/var/tmp'
export _WWW='~/-wrk/-ve27/dotfiles/var/www'
export PROJECT_FILES=''
export VIMBIN='/usr/bin/vim'
export GVIMBIN=None
export MVIMBIN=None
export GUIVIMBIN=None
export VIMCONF='--servername dotfiles'
export _EDIT_='/usr/bin/vim -f'
export EDITOR_='/usr/bin/vim -f'
export _NOTEBOOKS='~/-wrk/-ve27/dotfiles/src/notebooks'
export _IPYSESKEY='~/-wrk/-ve27/dotfiles/src/.ipyseskey'
export _IPQTLOG='~/-wrk/-ve27/dotfiles/.ipqt.log'
export _WRD_SETUPY='~/-wrk/-ve27/dotfiles/src/dotfiles/setup.py'
export _TEST_='(cd "${_WRD}" && python "${_WRD_SETUPY}" test)'
export _CFG='~/-wrk/-ve27/dotfiles/etc/development.ini'
export _EDITCFG_='/usr/bin/vim -f ~/-wrk/-ve27/dotfiles/etc/development.ini'
export _SHELL_='(cd "${_WRD}" && "${_BIN}"/pshell "${_CFG}")'
export _SERVE_='(cd "${_WRD}" && "${_BIN}"/pserve --app-name=main --reload --monitor-restart "${_CFG}")'
export _SVCFG='~/-wrk/-ve27/dotfiles/etc/supervisord.conf'
export _SVCFG_=' -c "~/-wrk/-ve27/dotfiles/etc/supervisord.conf"'
export __USRLOG='~/-usrlog.log'
export _USRLOG='~/-wrk/-ve27/dotfiles/-usrlog.log'
export _TERM_ID=''
eval '
cdhome () {
# cdhome() -- cd HOME /$@
cd "$HOME"/$@
}
_cd_HOME_complete () {
local cur="$2";
COMPREPLY=($(cdhome && compgen -d -- "${cur}" ))
}
cdh () {
# cdh() -- cd $HOME
cdhome $@
}
complete -o default -o nospace -F _cd_HOME_complete cdhome
complete -o default -o nospace -F _cd_HOME_complete cdh
';
eval '
cdwrk () {
# cdwrk() -- cd __WRK /$@
cd "$__WRK"/$@
}
_cd___WRK_complete () {
local cur="$2";
COMPREPLY=($(cdwrk && compgen -d -- "${cur}" ))
}
complete -o default -o nospace -F _cd___WRK_complete cdwrk
';
eval '
cddotfiles () {
# cddotfiles() -- cd __DOTFILES /$@
cd "$__DOTFILES"/$@
}
_cd___DOTFILES_complete () {
local cur="$2";
COMPREPLY=($(cddotfiles && compgen -d -- "${cur}" ))
}
cdd () {
# cdd() -- cd $__DOTFILES
cddotfiles $@
}
complete -o default -o nospace -F _cd___DOTFILES_complete cddotfiles
complete -o default -o nospace -F _cd___DOTFILES_complete cdd
';
eval '
cdprojecthome () {
# cdprojecthome() -- cd PROJECT_HOME /$@
cd "$PROJECT_HOME"/$@
}
_cd_PROJECT_HOME_complete () {
local cur="$2";
COMPREPLY=($(cdprojecthome && compgen -d -- "${cur}" ))
}
cdp () {
# cdp() -- cd $PROJECT_HOME
cdprojecthome $@
}
cdph () {
# cdph() -- cd $PROJECT_HOME
cdprojecthome $@
}
complete -o default -o nospace -F _cd_PROJECT_HOME_complete cdprojecthome
complete -o default -o nospace -F _cd_PROJECT_HOME_complete cdp
complete -o default -o nospace -F _cd_PROJECT_HOME_complete cdph
';
eval '
cdworkonhome () {
# cdworkonhome() -- cd WORKON_HOME /$@
cd "$WORKON_HOME"/$@
}
_cd_WORKON_HOME_complete () {
local cur="$2";
COMPREPLY=($(cdworkonhome && compgen -d -- "${cur}" ))
}
cdwh () {
# cdwh() -- cd $WORKON_HOME
cdworkonhome $@
}
cdve () {
# cdve() -- cd $WORKON_HOME
cdworkonhome $@
}
complete -o default -o nospace -F _cd_WORKON_HOME_complete cdworkonhome
complete -o default -o nospace -F _cd_WORKON_HOME_complete cdwh
complete -o default -o nospace -F _cd_WORKON_HOME_complete cdve
';
eval '
cdcondahome () {
# cdcondahome() -- cd CONDA_HOME /$@
cd "$CONDA_HOME"/$@
}
_cd_CONDA_HOME_complete () {
local cur="$2";
COMPREPLY=($(cdcondahome && compgen -d -- "${cur}" ))
}
cda () {
# cda() -- cd $CONDA_HOME
cdcondahome $@
}
cdce () {
# cdce() -- cd $CONDA_HOME
cdcondahome $@
}
complete -o default -o nospace -F _cd_CONDA_HOME_complete cdcondahome
complete -o default -o nospace -F _cd_CONDA_HOME_complete cda
complete -o default -o nospace -F _cd_CONDA_HOME_complete cdce
';
eval '
cdvirtualenv () {
# cdvirtualenv() -- cd VIRTUAL_ENV /$@
cd "$VIRTUAL_ENV"/$@
}
_cd_VIRTUAL_ENV_complete () {
local cur="$2";
COMPREPLY=($(cdvirtualenv && compgen -d -- "${cur}" ))
}
cdv () {
# cdv() -- cd $VIRTUAL_ENV
cdvirtualenv $@
}
complete -o default -o nospace -F _cd_VIRTUAL_ENV_complete cdvirtualenv
complete -o default -o nospace -F _cd_VIRTUAL_ENV_complete cdv
';
eval '
cdsrc () {
# cdsrc() -- cd _SRC /$@
cd "$_SRC"/$@
}
_cd__SRC_complete () {
local cur="$2";
COMPREPLY=($(cdsrc && compgen -d -- "${cur}" ))
}
cds () {
# cds() -- cd $_SRC
cdsrc $@
}
complete -o default -o nospace -F _cd__SRC_complete cdsrc
complete -o default -o nospace -F _cd__SRC_complete cds
';
eval '
cdwrd () {
# cdwrd() -- cd _WRD /$@
cd "$_WRD"/$@
}
_cd__WRD_complete () {
local cur="$2";
COMPREPLY=($(cdwrd && compgen -d -- "${cur}" ))
}
cdw () {
# cdw() -- cd $_WRD
cdwrd $@
}
complete -o default -o nospace -F _cd__WRD_complete cdwrd
complete -o default -o nospace -F _cd__WRD_complete cdw
';
eval '
cdbin () {
# cdbin() -- cd _BIN /$@
cd "$_BIN"/$@
}
_cd__BIN_complete () {
local cur="$2";
COMPREPLY=($(cdbin && compgen -d -- "${cur}" ))
}
cdb () {
# cdb() -- cd $_BIN
cdbin $@
}
complete -o default -o nospace -F _cd__BIN_complete cdbin
complete -o default -o nospace -F _cd__BIN_complete cdb
';
eval '
cdetc () {
# cdetc() -- cd _ETC /$@
cd "$_ETC"/$@
}
_cd__ETC_complete () {
local cur="$2";
COMPREPLY=($(cdetc && compgen -d -- "${cur}" ))
}
cde () {
# cde() -- cd $_ETC
cdetc $@
}
complete -o default -o nospace -F _cd__ETC_complete cdetc
complete -o default -o nospace -F _cd__ETC_complete cde
';
eval '
cdlib () {
# cdlib() -- cd _LIB /$@
cd "$_LIB"/$@
}
_cd__LIB_complete () {
local cur="$2";
COMPREPLY=($(cdlib && compgen -d -- "${cur}" ))
}
cdl () {
# cdl() -- cd $_LIB
cdlib $@
}
complete -o default -o nospace -F _cd__LIB_complete cdlib
complete -o default -o nospace -F _cd__LIB_complete cdl
';
eval '
cdlog () {
# cdlog() -- cd _LOG /$@
cd "$_LOG"/$@
}
_cd__LOG_complete () {
local cur="$2";
COMPREPLY=($(cdlog && compgen -d -- "${cur}" ))
}
complete -o default -o nospace -F _cd__LOG_complete cdlog
';
eval '
cdpylib () {
# cdpylib() -- cd _PYLIB /$@
cd "$_PYLIB"/$@
}
_cd__PYLIB_complete () {
local cur="$2";
COMPREPLY=($(cdpylib && compgen -d -- "${cur}" ))
}
complete -o default -o nospace -F _cd__PYLIB_complete cdpylib
';
eval '
cdpysite () {
# cdpysite() -- cd _PYSITE /$@
cd "$_PYSITE"/$@
}
_cd__PYSITE_complete () {
local cur="$2";
COMPREPLY=($(cdpysite && compgen -d -- "${cur}" ))
}
cdsitepackages () {
# cdsitepackages() -- cd $_PYSITE
cdpysite $@
}
complete -o default -o nospace -F _cd__PYSITE_complete cdpysite
complete -o default -o nospace -F _cd__PYSITE_complete cdsitepackages
';
eval '
cdvar () {
# cdvar() -- cd _VAR /$@
cd "$_VAR"/$@
}
_cd__VAR_complete () {
local cur="$2";
COMPREPLY=($(cdvar && compgen -d -- "${cur}" ))
}
complete -o default -o nospace -F _cd__VAR_complete cdvar
';
eval '
cdwww () {
# cdwww() -- cd _WWW /$@
cd "$_WWW"/$@
}
_cd__WWW_complete () {
local cur="$2";
COMPREPLY=($(cdwww && compgen -d -- "${cur}" ))
}
cdww () {
# cdww() -- cd $_WWW
cdwww $@
}
complete -o default -o nospace -F _cd__WWW_complete cdwww
complete -o default -o nospace -F _cd__WWW_complete cdww
';
eval 'cdhelp () {
set | grep "^cd.*()" | cut -f1 -d" " #$@
}';
eval 'edit- () {
${_EDIT_} $@
}';
alias gvim-='/usr/bin/vim -f'
eval 'ipskey () {
(python -c "import os; print os.urandom(128).encode(\"base64\")" > "${_IPYSESKEY}" ) && chmod 0600 "${_IPYSESKEY}"; # $@
}';
eval 'ipnb () {
ipython notebook --secure --Session.keyfile="${_IPYSESKEY}" --notebook-dir="${_NOTEBOOKS}" --deep-reload $@
}';
eval 'ipqt () {
ipython qtconsole --secure --Session.keyfile="${_IPYSESKEY}" --logappend="${_IPQTLOG}" --deep-reload --pprint --colors=linux --ConsoleWidget.font_family="Monaco" --ConsoleWidget.font_size=11 $@
}';
eval 'grinv () {
grin --follow $@ "${VIRTUAL_ENV}"
}';
eval 'grindv () {
grind --follow $@ --dirs "${VIRTUAL_ENV}"
}';
eval 'grins () {
grin --follow $@ "${_SRC}"
}';
eval 'grinds () {
grind --follow $@ --dirs "${_SRC}"
}';
alias test-='(cd "${_WRD}" && python "${_WRD_SETUPY}" test)'
alias testr-='reset && (cd "${_WRD}" && python "${_WRD_SETUPY}" test)'
alias nose-='(cd "${_WRD}" && nosetests)'
eval 'grinw () {
grin --follow $@ "${_WRD}"
}';
eval 'grin- () {
grin --follow $@ "${_WRD}"
}';
eval 'grindw () {
grind --follow $@ --dirs "${_WRD}"
}';
eval 'grind- () {
grind --follow $@ --dirs "${_WRD}"
}';
alias hgv-='hg view -R "${_WRD}"'
alias hgl-='hg -R "${_WRD}" log'
eval 'editcfg () {
"${_EDITCFG_}" $@
}';
alias serve-='(cd "${_WRD}" && "${_BIN}"/pserve --app-name=main --reload --monitor-restart "${_CFG}")'
alias shell-='(cd "${_WRD}" && "${_BIN}"/pshell "${_CFG}")'
eval 'e () {
${_EDIT_} $@
}';
eval 'editp () {
$GUIVIMBIN $VIMCONF $PROJECT_FILES $@
}';
eval 'makewrd () {
(cd "${_WRD}" && make $@)
}';
eval 'make- () {
(cd "${_WRD}" && make $@)
}';
eval 'mw () {
(cd "${_WRD}" && make $@)
}';
alias ssv='supervisord -c "${_SVCFG}"'
alias sv='supervisorctl -c "${_SVCFG}"'
alias svt='sv tail -f'
alias svd='supervisorctl -c "${_SVCFG}" restart dev && supervisorctl -c "${_SVCFG}" tail -f dev'
JSON Configuration¶
venv.py --print-json dotfiles:
$ python ../scripts/venv.py --print-json dotfiles \
| sed "s,${HOME},~,g"
{
"env": {
"environ": {
"VENVSTR": "dotfiles",
"VIRTUAL_ENV": "~/-wrk/-ve27/dotfiles",
"WORKON_HOME": "~/-wrk/-ve27",
"_APP": "dotfiles",
"VENVSTRAPP": "dotfiles",
"VENVPREFIX": "~/-wrk/-ve27/dotfiles",
"VIRTUAL_ENV_NAME": "dotfiles",
"HOME": "~",
"__WRK": "~/-wrk",
"__SRC": "~/-wrk/-src",
"__DOTFILES": "~/-dotfiles",
"PROJECT_HOME": "~/-wrk",
"WORKON_HOME__py27": "~/-wrk/-ve27",
"WORKON_HOME__py34": "~/-wrk/-ve34",
"WORKON_HOME_DEFAULT": "WORKON_HOME__py27",
"_ETC": "~/-wrk/-ve27/dotfiles/etc",
"_SRC": "~/-wrk/-ve27/dotfiles/src",
"_WRD": "~/-wrk/-ve27/dotfiles/src/dotfiles",
"CONDA27_ROOT": "~/-wrk/-conda27",
"CONDA27_HOME": "~/-wrk/-ce27",
"CONDA34_ROOT": "~/-wrk/-conda34",
"CONDA34_HOME": "~/-wrk/-ce34",
"CONDA_ROOT__py27": "~/-wrk/-conda27",
"CONDA_HOME__py27": "~/-wrk/-ce27",
"CONDA_ROOT__py34": "~/-wrk/-conda34",
"CONDA_HOME__py34": "~/-wrk/-ce27",
"CONDA_ROOT_DEFAULT": "CONDA_ROOT__py27",
"CONDA_HOME_DEFAULT": "CONDA_HOME__py27",
"CONDA_ROOT": "~/-wrk/-conda27",
"CONDA_HOME": "~/-wrk/-ce27",
"_BIN": "~/-wrk/-ve27/dotfiles/bin",
"_ETCOPT": "~/-wrk/-ve27/dotfiles/etc/opt",
"_HOME": "~/-wrk/-ve27/dotfiles/home",
"_LIB": "~/-wrk/-ve27/dotfiles/lib",
"_PYLIB": "~/-wrk/-ve27/dotfiles/lib/python2.7",
"_PYSITE": "~/-wrk/-ve27/dotfiles/lib/python2.7/site-packages",
"_MNT": "~/-wrk/-ve27/dotfiles/mnt",
"_MEDIA": "~/-wrk/-ve27/dotfiles/media",
"_OPT": "~/-wrk/-ve27/dotfiles/opt",
"_ROOT": "~/-wrk/-ve27/dotfiles/root",
"_SBIN": "~/-wrk/-ve27/dotfiles/sbin",
"_SRV": "~/-wrk/-ve27/dotfiles/srv",
"_TMP": "~/-wrk/-ve27/dotfiles/tmp",
"_USR": "~/-wrk/-ve27/dotfiles/usr",
"_USRBIN": "~/-wrk/-ve27/dotfiles/usr/bin",
"_USRINCLUDE": "~/-wrk/-ve27/dotfiles/usr/include",
"_USRLIB": "~/-wrk/-ve27/dotfiles/usr/lib",
"_USRLOCAL": "~/-wrk/-ve27/dotfiles/usr/local",
"_USRSBIN": "~/-wrk/-ve27/dotfiles/usr/sbin",
"_USRSHARE": "~/-wrk/-ve27/dotfiles/usr/share",
"_USRSRC": "~/-wrk/-ve27/dotfiles/usr/src",
"_VAR": "~/-wrk/-ve27/dotfiles/var",
"_VARCACHE": "~/-wrk/-ve27/dotfiles/var/cache",
"_VARLIB": "~/-wrk/-ve27/dotfiles/var/lib",
"_VARLOCK": "~/-wrk/-ve27/dotfiles/var/lock",
"_LOG": "~/-wrk/-ve27/dotfiles/var/log",
"_VARMAIL": "~/-wrk/-ve27/dotfiles/var/mail",
"_VAROPT": "~/-wrk/-ve27/dotfiles/var/opt",
"_VARRUN": "~/-wrk/-ve27/dotfiles/var/run",
"_VARSPOOL": "~/-wrk/-ve27/dotfiles/var/spool",
"_VARTMP": "~/-wrk/-ve27/dotfiles/var/tmp",
"_WWW": "~/-wrk/-ve27/dotfiles/var/www",
"PROJECT_FILES": "",
"VIMBIN": "/usr/bin/vim",
"GVIMBIN": null,
"MVIMBIN": null,
"GUIVIMBIN": null,
"VIMCONF": "--servername dotfiles",
"_EDIT_": "/usr/bin/vim -f",
"EDITOR_": "/usr/bin/vim -f",
"_NOTEBOOKS": "~/-wrk/-ve27/dotfiles/src/notebooks",
"_IPYSESKEY": "~/-wrk/-ve27/dotfiles/src/.ipyseskey",
"_IPQTLOG": "~/-wrk/-ve27/dotfiles/.ipqt.log",
"_WRD_SETUPY": "~/-wrk/-ve27/dotfiles/src/dotfiles/setup.py",
"_TEST_": "(cd \"${_WRD}\" && python \"${_WRD_SETUPY}\" test)",
"_CFG": "~/-wrk/-ve27/dotfiles/etc/development.ini",
"_EDITCFG_": "/usr/bin/vim -f ~/-wrk/-ve27/dotfiles/etc/development.ini",
"_SHELL_": "(cd \"${_WRD}\" && \"${_BIN}\"/pshell \"${_CFG}\")",
"_SERVE_": "(cd \"${_WRD}\" && \"${_BIN}\"/pserve --app-name=main --reload --monitor-restart \"${_CFG}\")",
"_SVCFG": "~/-wrk/-ve27/dotfiles/etc/supervisord.conf",
"_SVCFG_": " -c \"~/-wrk/-ve27/dotfiles/etc/supervisord.conf\"",
"__USRLOG": "~/-usrlog.log",
"_USRLOG": "~/-wrk/-ve27/dotfiles/-usrlog.log",
"_TERM_ID": ""
},
"aliases": {
"cdhome": "HOME",
"cdwrk": "__WRK",
"cdddotfiles": "__DOTFILES",
"cdprojecthome": "PROJECT_HOME",
"cdworkonhome": "WORKON_HOME",
"cdcondahome": "CONDA_HOME",
"cdvirtualenv": "VIRTUAL_ENV",
"cdsrc": "_SRC",
"cdwrd": "_WRD",
"cdbin": "_BIN",
"cdetc": "_ETC",
"cdlib": "_LIB",
"cdlog": "_LOG",
"cdpylib": "_PYLIB",
"cdpysite": "_PYSITE",
"cdvar": "_VAR",
"cdwww": "_WWW",
"cdhelp": "set | grep \"^cd.*()\" | cut -f1 -d\" \" #%l",
"edit-": "${_EDIT_} %l",
"gvim-": "/usr/bin/vim -f",
"ipskey": "(python -c \"import os; print os.urandom(128).encode(\\\"base64\\\")\" > \"${_IPYSESKEY}\" ) && chmod 0600 \"${_IPYSESKEY}\"; # %l",
"ipnb": "ipython notebook --secure --Session.keyfile=\"${_IPYSESKEY}\" --notebook-dir=\"${_NOTEBOOKS}\" --deep-reload %l",
"ipqt": "ipython qtconsole --secure --Session.keyfile=\"${_IPYSESKEY}\" --logappend=\"${_IPQTLOG}\" --deep-reload --pprint --colors=linux --ConsoleWidget.font_family=\"Monaco\" --ConsoleWidget.font_size=11 %l",
"grinv": "grin --follow %l \"${VIRTUAL_ENV}\"",
"grindv": "grind --follow %l --dirs \"${VIRTUAL_ENV}\"",
"grins": "grin --follow %l \"${_SRC}\"",
"grinds": "grind --follow %l --dirs \"${_SRC}\"",
"test-": "(cd \"${_WRD}\" && python \"${_WRD_SETUPY}\" test)",
"testr-": "reset && (cd \"${_WRD}\" && python \"${_WRD_SETUPY}\" test)",
"nose-": "(cd \"${_WRD}\" && nosetests)",
"grinw": "grin --follow %l \"${_WRD}\"",
"grin-": "grin --follow %l \"${_WRD}\"",
"grindw": "grind --follow %l --dirs \"${_WRD}\"",
"grind-": "grind --follow %l --dirs \"${_WRD}\"",
"hgv-": "hg view -R \"${_WRD}\"",
"hgl-": "hg -R \"${_WRD}\" log",
"editcfg": "\"${_EDITCFG_}\" %l",
"serve-": "(cd \"${_WRD}\" && \"${_BIN}\"/pserve --app-name=main --reload --monitor-restart \"${_CFG}\")",
"shell-": "(cd \"${_WRD}\" && \"${_BIN}\"/pshell \"${_CFG}\")",
"e": "${_EDIT_} %l",
"editp": "$GUIVIMBIN $VIMCONF $PROJECT_FILES %l",
"makewrd": "(cd \"${_WRD}\" && make %l)",
"make-": "(cd \"${_WRD}\" && make %l)",
"mw": "(cd \"${_WRD}\" && make %l)",
"ssv": "supervisord -c \"${_SVCFG}\"",
"sv": "supervisorctl -c \"${_SVCFG}\"",
"svt": "sv tail -f",
"svd": "supervisorctl -c \"${_SVCFG}\" restart dev && supervisorctl -c \"${_SVCFG}\" tail -f dev"
}
},
"aliases": {
"cdhome": "HOME",
"cdwrk": "__WRK",
"cdddotfiles": "__DOTFILES",
"cdprojecthome": "PROJECT_HOME",
"cdworkonhome": "WORKON_HOME",
"cdcondahome": "CONDA_HOME",
"cdvirtualenv": "VIRTUAL_ENV",
"cdsrc": "_SRC",
"cdwrd": "_WRD",
"cdbin": "_BIN",
"cdetc": "_ETC",
"cdlib": "_LIB",
"cdlog": "_LOG",
"cdpylib": "_PYLIB",
"cdpysite": "_PYSITE",
"cdvar": "_VAR",
"cdwww": "_WWW",
"cdhelp": "set | grep \"^cd.*()\" | cut -f1 -d\" \" #%l",
"edit-": "${_EDIT_} %l",
"gvim-": "/usr/bin/vim -f",
"ipskey": "(python -c \"import os; print os.urandom(128).encode(\\\"base64\\\")\" > \"${_IPYSESKEY}\" ) && chmod 0600 \"${_IPYSESKEY}\"; # %l",
"ipnb": "ipython notebook --secure --Session.keyfile=\"${_IPYSESKEY}\" --notebook-dir=\"${_NOTEBOOKS}\" --deep-reload %l",
"ipqt": "ipython qtconsole --secure --Session.keyfile=\"${_IPYSESKEY}\" --logappend=\"${_IPQTLOG}\" --deep-reload --pprint --colors=linux --ConsoleWidget.font_family=\"Monaco\" --ConsoleWidget.font_size=11 %l",
"grinv": "grin --follow %l \"${VIRTUAL_ENV}\"",
"grindv": "grind --follow %l --dirs \"${VIRTUAL_ENV}\"",
"grins": "grin --follow %l \"${_SRC}\"",
"grinds": "grind --follow %l --dirs \"${_SRC}\"",
"test-": "(cd \"${_WRD}\" && python \"${_WRD_SETUPY}\" test)",
"testr-": "reset && (cd \"${_WRD}\" && python \"${_WRD_SETUPY}\" test)",
"nose-": "(cd \"${_WRD}\" && nosetests)",
"grinw": "grin --follow %l \"${_WRD}\"",
"grin-": "grin --follow %l \"${_WRD}\"",
"grindw": "grind --follow %l --dirs \"${_WRD}\"",
"grind-": "grind --follow %l --dirs \"${_WRD}\"",
"hgv-": "hg view -R \"${_WRD}\"",
"hgl-": "hg -R \"${_WRD}\" log",
"editcfg": "\"${_EDITCFG_}\" %l",
"serve-": "(cd \"${_WRD}\" && \"${_BIN}\"/pserve --app-name=main --reload --monitor-restart \"${_CFG}\")",
"shell-": "(cd \"${_WRD}\" && \"${_BIN}\"/pshell \"${_CFG}\")",
"e": "${_EDIT_} %l",
"editp": "$GUIVIMBIN $VIMCONF $PROJECT_FILES %l",
"makewrd": "(cd \"${_WRD}\" && make %l)",
"make-": "(cd \"${_WRD}\" && make %l)",
"mw": "(cd \"${_WRD}\" && make %l)",
"ssv": "supervisord -c \"${_SVCFG}\"",
"sv": "supervisorctl -c \"${_SVCFG}\"",
"svt": "sv tail -f",
"svd": "supervisorctl -c \"${_SVCFG}\" restart dev && supervisorctl -c \"${_SVCFG}\" tail -f dev"
}
}
Other scripts with venv-style paths¶
To define a script environment just like venv:
#!/bin/sh
__WRK="${HOME}/-wrk" # cdwrk
__DOTFILES="${HOME}/-dotfiles" # cdd cddotfiles
PROJECT_HOME="${__WRK}" # cdph cdprojecthome
WORKON_HOME="${__WRK}/-ve27" # cdwh cdworkonhome
VIRTUAL_ENV_NAME="dotfiles" # 'dotfiles'
_APP=$VIRTUAL_ENV_NAME # 'dotfiles[/p/a/t/h]'
VIRTUAL_ENV="$WORKON_HOME/$VIRTUAL_ENV_NAME" # cdv cdvirtualenv
_SRC="${VIRTUAL_ENV}/src" # cds cdsrc
_BIN="${VIRTUAL_ENV}/bin" # cde cdbin
_ETC="${VIRTUAL_ENV}/etc" # cde cdetc
_LOG="${VIRTUAL_ENV}/var/log" # cdl cdlog
# ... see: venv.py --print-vars / ...
_WRD="${_SRC}/{_APP}" # cdw cdwrd
(set -x; test "$_WRD" == "${HOME}/-wrk/-ve27/dotfiles/src/dotfiles"; \
|| echo "Exception: _WRD = '${_WRD}';" )
SeeAlso: unittest.TestCase tests in dotfiles.venv.ipython_config (ipython_config.py).