##// END OF EJS Templates
Remove svn-style $Id marks from docstrings and Release imports....
Remove svn-style $Id marks from docstrings and Release imports. The Id marks show up as junk in the API docs (and they were outdated anyway, since we now use bzr). The Release imports were in there for pulling author/license information for epydoc, but now with sphinx they aren't necessary, and they just are extra startup work.

File last commit:

r0:6f629fcc
r1853:b8f5152c
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