def wrap_commands(kwargs): dist = Distribution() # This should suffice to get the same config values and command classes # that the actual Distribution will see (not counting cmdclass, which is # handled below) dist.parse_config_files() for cmd, _ in dist.get_command_list(): hooks = {} for opt, val in dist.get_option_dict(cmd).items(): val = val[1] if opt.startswith('pre_hook.') or opt.startswith('post_hook.'): hook_type, alias = opt.split('.', 1) hook_dict = hooks.setdefault(hook_type, {}) hook_dict[alias] = val if not hooks: continue if 'cmdclass' in kwargs and cmd in kwargs['cmdclass']: cmdclass = kwargs['cmdclass'][cmd] else: cmdclass = dist.get_command_class(cmd) new_cmdclass = wrap_command(cmd, cmdclass, hooks) kwargs.setdefault('cmdclass', {})[cmd] = new_cmdclass
def wrap_commands(kwargs): dist = Distribution() # This should suffice to get the same config values and command classes # that the actual Distribution will see (not counting cmdclass, which is # handled below) dist.parse_config_files() # Setuptools doesn't patch get_command_list, and as such we do not get # extra commands from entry_points. As we need to be compatable we deal # with this here. for ep in pkg_resources.iter_entry_points('distutils.commands'): if ep.name not in dist.cmdclass: cmdclass = ep.resolve() dist.cmdclass[ep.name] = cmdclass for cmd, _ in dist.get_command_list(): hooks = {} for opt, val in dist.get_option_dict(cmd).items(): val = val[1] if opt.startswith('pre_hook.') or opt.startswith('post_hook.'): hook_type, alias = opt.split('.', 1) hook_dict = hooks.setdefault(hook_type, {}) hook_dict[alias] = val if not hooks: continue if 'cmdclass' in kwargs and cmd in kwargs['cmdclass']: cmdclass = kwargs['cmdclass'][cmd] else: cmdclass = dist.get_command_class(cmd) new_cmdclass = wrap_command(cmd, cmdclass, hooks) kwargs.setdefault('cmdclass', {})[cmd] = new_cmdclass
def wrap_commands(kwargs): dist = st_dist.Distribution() # This should suffice to get the same config values and command classes # that the actual Distribution will see (not counting cmdclass, which is # handled below) dist.parse_config_files() # Setuptools doesn't patch get_command_list, and as such we do not get # extra commands from entry_points. As we need to be compatable we deal # with this here. for ep in pkg_resources.iter_entry_points('distutils.commands'): if ep.name not in dist.cmdclass: if hasattr(ep, 'resolve'): cmdclass = ep.resolve() else: # Old setuptools does not have ep.resolve, and load with # arguments is depricated in 11+. Use resolve, 12+, if we # can, otherwise fall back to load. # Setuptools 11 will throw a deprication warning, as it # uses _load instead of resolve. cmdclass = ep.load(False) dist.cmdclass[ep.name] = cmdclass for cmd, _ in dist.get_command_list(): hooks = {} for opt, val in dist.get_option_dict(cmd).items(): val = val[1] if opt.startswith('pre_hook.') or opt.startswith('post_hook.'): hook_type, alias = opt.split('.', 1) hook_dict = hooks.setdefault(hook_type, {}) hook_dict[alias] = val if not hooks: continue if 'cmdclass' in kwargs and cmd in kwargs['cmdclass']: cmdclass = kwargs['cmdclass'][cmd] else: cmdclass = dist.get_command_class(cmd) new_cmdclass = wrap_command(cmd, cmdclass, hooks) kwargs.setdefault('cmdclass', {})[cmd] = new_cmdclass
def wrap_commands(kwargs): dist = Distribution() # This should suffice to get the same config values and command classes # that the actual Distribution will see (not counting cmdclass, which is # handled below) dist.parse_config_files() # Setuptools doesn't patch get_command_list, and as such we do not get # extra commands from entry_points. As we need to be compatable we deal # with this here. for ep in pkg_resources.iter_entry_points('distutils.commands'): if ep.name not in dist.cmdclass: if hasattr(ep, 'resolve'): cmdclass = ep.resolve() else: # Old setuptools does not have ep.resolve, and load with # arguments is depricated in 11+. Use resolve, 12+, if we # can, otherwise fall back to load. # Setuptools 11 will throw a deprication warning, as it # uses _load instead of resolve. cmdclass = ep.load(False) dist.cmdclass[ep.name] = cmdclass for cmd, _ in dist.get_command_list(): hooks = {} for opt, val in dist.get_option_dict(cmd).items(): val = val[1] if opt.startswith('pre_hook.') or opt.startswith('post_hook.'): hook_type, alias = opt.split('.', 1) hook_dict = hooks.setdefault(hook_type, {}) hook_dict[alias] = val if not hooks: continue if 'cmdclass' in kwargs and cmd in kwargs['cmdclass']: cmdclass = kwargs['cmdclass'][cmd] else: cmdclass = dist.get_command_class(cmd) new_cmdclass = wrap_command(cmd, cmdclass, hooks) kwargs.setdefault('cmdclass', {})[cmd] = new_cmdclass