Viewing file: InstallData.py (2.03 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import os, glob from distutils import util from distutils.core import Command
class InstallData(Command):
command_name = 'install_data'
description = "install data files"
user_options = [ ('force', 'f', "force installation (overwrite existing files)"), ]
def initialize_options(self): self.install_dir = None self.force = None self.data_files = self.distribution.data_files return
def finalize_options (self): self.set_undefined_options('install', ('install_data', 'install_dir'), ('force', 'force'), ) return
def run(self): self.mkpath(self.install_dir) for dot_path, globs in self.data_files: # Convert the package path into a directory path dir = dot_path.replace('.', os.sep) dir = os.path.join(self.install_dir, dir) self.mkpath(dir)
# Convert the list of filespecs into a list of actual files for spec in globs: for file in glob.glob(util.convert_path(spec)): self.copy_file(file, dir) return
def get_inputs(self): inputs = [] for dot_path, globs in self.data_files: # Convert the list of filespecs into a list of actual files for spec in globs: inputs.extend(glob.glob(util.convert_path(spec))) return inputs
def get_outputs(self): outputs = [] for dot_path, globs in self.data_files: # Convert the package path into a directory path dir = dot_path.replace('.', os.sep) dir = os.path.join(self.install_dir, dir)
# Convert the list of filespecs into a list of actual files for spec in globs: for src in glob.glob(util.convert_path(spec)): src = os.path.basename(src) outputs.append(os.path.join(dir, src)) return outputs
|