##// END OF EJS Templates
Massive reorganization of the IPython documentation. It is now ready to be hacked on by users. ...
Massive reorganization of the IPython documentation. It is now ready to be hacked on by users. Overall the transition to Sphinx is great. BUT, we have lots of broken links in the docs. Developers need to become familiar with how Sphinx handles links.

File last commit:

r1253:9ce3a358
r1258:ccc2fc9b
Show More
api.py
104 lines | 3.3 KiB | text/x-python | PythonLexer
# encoding: utf-8
"""This is the official entry point to IPython's configuration system. """
__docformat__ = "restructuredtext en"
#-------------------------------------------------------------------------------
# Copyright (C) 2008 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Imports
#-------------------------------------------------------------------------------
import os
from IPython.config.cutils import get_home_dir, get_ipython_dir
from IPython.external.configobj import ConfigObj
# Traitlets config imports
from IPython.config import traitlets
from IPython.config.config import *
from traitlets import *
class ConfigObjManager(object):
def __init__(self, configObj, filename):
self.current = configObj
self.current.indent_type = ' '
self.filename = filename
# self.write_default_config_file()
def get_config_obj(self):
return self.current
def update_config_obj(self, newConfig):
self.current.merge(newConfig)
def update_config_obj_from_file(self, filename):
newConfig = ConfigObj(filename, file_error=False)
self.current.merge(newConfig)
def update_config_obj_from_default_file(self, ipythondir=None):
fname = self.resolve_file_path(self.filename, ipythondir)
self.update_config_obj_from_file(fname)
def write_config_obj_to_file(self, filename):
f = open(filename, 'w')
self.current.write(f)
f.close()
def write_default_config_file(self):
ipdir = get_ipython_dir()
fname = ipdir + '/' + self.filename
if not os.path.isfile(fname):
print "Writing the configuration file to: " + fname
self.write_config_obj_to_file(fname)
def _import(self, key):
package = '.'.join(key.split('.')[0:-1])
obj = key.split('.')[-1]
execString = 'from %s import %s' % (package, obj)
exec execString
exec 'temp = %s' % obj
return temp
def resolve_file_path(self, filename, ipythondir = None):
"""Resolve filenames into absolute paths.
This function looks in the following directories in order:
1. In the current working directory or by absolute path with ~ expanded
2. In ipythondir if that is set
3. In the IPYTHONDIR environment variable if it exists
4. In the ~/.ipython directory
Note: The IPYTHONDIR is also used by the trunk version of IPython so
changing it will also affect it was well.
"""
# In cwd or by absolute path with ~ expanded
trythis = os.path.expanduser(filename)
if os.path.isfile(trythis):
return trythis
# In ipythondir if it is set
if ipythondir is not None:
trythis = ipythondir + '/' + filename
if os.path.isfile(trythis):
return trythis
trythis = get_ipython_dir() + '/' + filename
if os.path.isfile(trythis):
return trythis
return None