install_egg_info.py (1776B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\command\install_egg_info.py 2 from distutils.cmd import Command 3 from distutils import log, dir_util 4 import os, sys, re 5 6 class install_egg_info(Command): 7 description = "Install package's PKG-INFO metadata as an .egg-info file" 8 user_options = [('install-dir=', 'd', 'directory to install to')] 9 10 def initialize_options(self): 11 self.install_dir = None 12 13 def finalize_options(self): 14 self.set_undefined_options('install_lib', ('install_dir', 'install_dir')) 15 basename = '%s-%s-py%s.egg-info' % (to_filename(safe_name(self.distribution.get_name())), to_filename(safe_version(self.distribution.get_version())), sys.version[:3]) 16 self.target = os.path.join(self.install_dir, basename) 17 self.outputs = [self.target] 18 19 def run(self): 20 target = self.target 21 if os.path.isdir(target) and not os.path.islink(target): 22 dir_util.remove_tree(target, dry_run=self.dry_run) 23 elif os.path.exists(target): 24 self.execute(os.unlink, (self.target,), 'Removing ' + target) 25 elif not os.path.isdir(self.install_dir): 26 self.execute(os.makedirs, (self.install_dir,), 'Creating ' + self.install_dir) 27 log.info('Writing %s', target) 28 if not self.dry_run: 29 f = open(target, 'w') 30 self.distribution.metadata.write_pkg_file(f) 31 f.close() 32 33 def get_outputs(self): 34 return self.outputs 35 36 37 def safe_name(name): 38 return re.sub('[^A-Za-z0-9.]+', '-', name) 39 40 41 def safe_version(version): 42 version = version.replace(' ', '.') 43 return re.sub('[^A-Za-z0-9.]+', '-', version) 44 45 46 def to_filename(name): 47 return name.replace('-', '_')