##// END OF EJS Templates
Fix exception color problems in win32....
Fix exception color problems in win32. In all the recent work to have the test suite play nice with doctest of full ipython sessions, I inadvertedly started sending exceptions directly to sys.stderr. On windows we MUST go via Term.cerr, which uses pyreadline to handle color escapes, while sys.stderr just shows garbage on screen. As of this revision, the test suite passes fully on win32 and linux, and interactive use also seems OK on all fronts. We're getting closer to RC status...

File last commit:

r0:6f629fcc
r2459:e687d797
Show More
install_data_ext.py
80 lines | 3.0 KiB | text/x-python | PythonLexer
# install_data_ext.py
#
# Subclass of normal distutils install_data command to allow more
# configurable installation of data files.
import os
from distutils.command.install_data import install_data
from distutils.util import change_root, convert_path
class install_data_ext(install_data):
def initialize_options(self):
self.install_base = None
self.install_platbase = None
self.install_purelib = None
self.install_headers = None
self.install_lib = None
self.install_scripts = None
self.install_data = None
self.outfiles = []
self.root = None
self.force = 0
self.data_files = self.distribution.data_files
self.warn_dir = 1
def finalize_options(self):
self.set_undefined_options('install',
('root', 'root'),
('force', 'force'),
('install_base', 'install_base'),
('install_platbase',
'install_platbase'),
('install_purelib',
'install_purelib'),
('install_headers',
'install_headers'),
('install_lib', 'install_lib'),
('install_scripts',
'install_scripts'),
('install_data', 'install_data'))
def run(self):
"""
This is where the meat is. Basically the data_files list must
now be a list of tuples of 3 entries. The first
entry is one of 'base', 'platbase', etc, which indicates which
base to install from. The second entry is the path to install
too. The third entry is a list of files to install.
"""
for lof in self.data_files:
if lof[0]:
base = getattr(self, 'install_' + lof[0])
else:
base = getattr(self, 'install_base')
dir = convert_path(lof[1])
if not os.path.isabs(dir):
dir = os.path.join(base, dir)
elif self.root:
dir = change_root(self.root, dir)
self.mkpath(dir)
files = lof[2]
if len(files) == 0:
# If there are no files listed, the user must be
# trying to create an empty directory, so add the the
# directory to the list of output files.
self.outfiles.append(dir)
else:
# Copy files, adding them to the list of output files.
for f in files:
f = convert_path(f)
(out, _) = self.copy_file(f, dir)
#print "DEBUG: ", out # dbg
self.outfiles.append(out)
return self.outfiles