NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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('-', '_')