##// END OF EJS Templates
Allow direct print of the notebook....
Allow direct print of the notebook. this improve the current css of the print page and add css to the classical notebook with print as target to get a better print view ant the ability to directly print a notebook without going through the print view

File last commit:

r4872:34c10438
r7780:a59dd57c
Show More
envpersist.py
92 lines | 2.4 KiB | text/x-python | PythonLexer
# -*- coding: utf-8 -*-
""" %env magic command for storing environment variables persistently
"""
from IPython.core import ipapi
from IPython.core.error import TryNext
ip = ipapi.get()
import os,sys
def restore_env(self):
ip = self.getapi()
env = ip.db.get('stored_env', {'set' : {}, 'add' : [], 'pre' : []})
for k,v in env['set'].items():
os.environ[k] = v
for k,v in env['add']:
os.environ[k] = os.environ.get(k,"") + v
for k,v in env['pre']:
os.environ[k] = v + os.environ.get(k,"")
raise TryNext
ip.set_hook('late_startup_hook', restore_env)
def persist_env(self, parameter_s=''):
""" Store environment variables persistently
IPython remembers the values across sessions, which is handy to avoid
editing startup files.
%env - Show all environment variables
%env VISUAL=jed - set VISUAL to jed
%env PATH+=;/foo - append ;foo to PATH
%env PATH+=;/bar - also append ;bar to PATH
%env PATH-=/wbin; - prepend /wbin; to PATH
%env -d VISUAL - forget VISUAL persistent val
%env -p - print all persistent env modifications
"""
if not parameter_s.strip():
return os.environ.data
ip = self.getapi()
db = ip.db
env = ip.db.get('stored_env', {'set' : {}, 'add' : [], 'pre' : []})
if parameter_s.startswith('-p'):
return env
elif parameter_s.startswith('-d'):
parts = (parameter_s.split()[1], '<del>')
else:
parts = parameter_s.strip().split('=')
if len(parts) == 2:
k,v = [p.strip() for p in parts]
if v == '<del>':
if k in env['set']:
del env['set'][k]
env['add'] = [el for el in env['add'] if el[0] != k]
env['pre'] = [el for el in env['pre'] if el[0] != k]
print "Forgot '%s' (for next session)" % k
elif k.endswith('+'):
k = k[:-1]
env['add'].append((k,v))
os.environ[k] += v
print k,"after append =",os.environ[k]
elif k.endswith('-'):
k = k[:-1]
env['pre'].append((k,v))
os.environ[k] = v + os.environ.get(k,"")
print k,"after prepend =",os.environ[k]
else:
env['set'][k] = v
print "Setting",k,"to",v
os.environ[k] = v
db['stored_env'] = env
def env_completer(self,event):
""" Custom completer that lists all env vars """
return os.environ.keys()
ip.define_magic('env', persist_env)
ip.set_hook('complete_command',env_completer, str_key = '%env')