Path: blob/master/ invest-robot-contest_TinkoffBotTwitch-main/venv/lib/python3.8/site-packages/setuptools/command/py36compat.py
7750 views
import os1from glob import glob2from distutils.util import convert_path3from distutils.command import sdist45from setuptools.extern.six.moves import filter678class sdist_add_defaults:9"""10Mix-in providing forward-compatibility for functionality as found in11distutils on Python 3.7.1213Do not edit the code in this class except to update functionality14as implemented in distutils. Instead, override in the subclass.15"""1617def add_defaults(self):18"""Add all the default files to self.filelist:19- README or README.txt20- setup.py21- test/test*.py22- all pure Python modules mentioned in setup script23- all files pointed by package_data (build_py)24- all files defined in data_files.25- all files defined as scripts.26- all C sources listed as part of extensions or C libraries27in the setup script (doesn't catch C headers!)28Warns if (README or README.txt) or setup.py are missing; everything29else is optional.30"""31self._add_defaults_standards()32self._add_defaults_optional()33self._add_defaults_python()34self._add_defaults_data_files()35self._add_defaults_ext()36self._add_defaults_c_libs()37self._add_defaults_scripts()3839@staticmethod40def _cs_path_exists(fspath):41"""42Case-sensitive path existence check4344>>> sdist_add_defaults._cs_path_exists(__file__)45True46>>> sdist_add_defaults._cs_path_exists(__file__.upper())47False48"""49if not os.path.exists(fspath):50return False51# make absolute so we always have a directory52abspath = os.path.abspath(fspath)53directory, filename = os.path.split(abspath)54return filename in os.listdir(directory)5556def _add_defaults_standards(self):57standards = [self.READMES, self.distribution.script_name]58for fn in standards:59if isinstance(fn, tuple):60alts = fn61got_it = False62for fn in alts:63if self._cs_path_exists(fn):64got_it = True65self.filelist.append(fn)66break6768if not got_it:69self.warn("standard file not found: should have one of " +70', '.join(alts))71else:72if self._cs_path_exists(fn):73self.filelist.append(fn)74else:75self.warn("standard file '%s' not found" % fn)7677def _add_defaults_optional(self):78optional = ['test/test*.py', 'setup.cfg']79for pattern in optional:80files = filter(os.path.isfile, glob(pattern))81self.filelist.extend(files)8283def _add_defaults_python(self):84# build_py is used to get:85# - python modules86# - files defined in package_data87build_py = self.get_finalized_command('build_py')8889# getting python files90if self.distribution.has_pure_modules():91self.filelist.extend(build_py.get_source_files())9293# getting package_data files94# (computed in build_py.data_files by build_py.finalize_options)95for pkg, src_dir, build_dir, filenames in build_py.data_files:96for filename in filenames:97self.filelist.append(os.path.join(src_dir, filename))9899def _add_defaults_data_files(self):100# getting distribution.data_files101if self.distribution.has_data_files():102for item in self.distribution.data_files:103if isinstance(item, str):104# plain file105item = convert_path(item)106if os.path.isfile(item):107self.filelist.append(item)108else:109# a (dirname, filenames) tuple110dirname, filenames = item111for f in filenames:112f = convert_path(f)113if os.path.isfile(f):114self.filelist.append(f)115116def _add_defaults_ext(self):117if self.distribution.has_ext_modules():118build_ext = self.get_finalized_command('build_ext')119self.filelist.extend(build_ext.get_source_files())120121def _add_defaults_c_libs(self):122if self.distribution.has_c_libraries():123build_clib = self.get_finalized_command('build_clib')124self.filelist.extend(build_clib.get_source_files())125126def _add_defaults_scripts(self):127if self.distribution.has_scripts():128build_scripts = self.get_finalized_command('build_scripts')129self.filelist.extend(build_scripts.get_source_files())130131132if hasattr(sdist.sdist, '_add_defaults_standards'):133# disable the functionality already available upstream134class sdist_add_defaults: # noqa135pass136137138