def _metadata(dispatcher, args, **kw): opts = _parse_args(args[1:], 'f:', []) if opts['args']: name = opts['args'][0] dist = get_distribution(name, use_egg_info=True) if dist is None: logger.warning('%r not installed', name) return 1 elif os.path.isfile('setup.cfg'): logger.info('searching local dir for metadata') dist = Distribution() # XXX use config module dist.parse_config_files() else: logger.warning('no argument given and no local setup.cfg found') return 1 metadata = dist.metadata if 'f' in opts: keys = (k for k in opts['f'] if k in metadata) else: keys = metadata.keys() for key in keys: if key in metadata: print metadata._convert_name(key) + ':' value = metadata[key] if isinstance(value, list): for v in value: print ' ', v else: print ' ', value.replace('\n', '\n ')
def _run(dispatcher, args, **kw): parser = dispatcher.parser args = args[1:] # Find and parse the config file(s): they will override options from # the setup script, but be overridden by the command line. # XXX call the functions from config and kill the Distribution class # (merging it into Dispatcher) dist = Distribution() dist.parse_config_files() commands = STANDARD_COMMANDS # FIXME display extra commands if args == ['--list-commands']: print 'List of available commands:' for cmd in commands: cls = dispatcher.cmdclass.get(cmd) or get_command_class(cmd) desc = getattr(cls, 'description', '(no description available)') print ' %s: %s' % (cmd, desc) return while args: args = dispatcher._parse_command_opts(parser, args) if args is None: return for cmd in dispatcher.commands: # FIXME need to catch MetadataMissingError here (from the check command # e.g.)--or catch any exception, print an error message and exit with 1 dist.run_command(cmd, dispatcher.command_options[cmd]) return 0
def test_cfg_to_args(self): opts = {'description-file': 'README', 'extra-files': '', 'setup-hooks': 'distutils2.tests.test_config.version_hook'} self.write_file('setup.cfg', SETUP_CFG % opts, encoding='utf-8') self.write_file('README', 'loooong description') args = cfg_to_args() # use Distribution to get the contents of the setup.cfg file dist = Distribution() dist.parse_config_files() metadata = dist.metadata self.assertEqual(args['name'], metadata['Name']) # + .dev1 because the test SETUP_CFG also tests a hook function in # test_config.py for appending to the version string self.assertEqual(args['version'] + '.dev1', metadata['Version']) self.assertEqual(args['author'], metadata['Author']) self.assertEqual(args['author_email'], metadata['Author-Email']) self.assertEqual(args['maintainer'], metadata['Maintainer']) self.assertEqual(args['maintainer_email'], metadata['Maintainer-Email']) self.assertEqual(args['description'], metadata['Summary']) self.assertEqual(args['long_description'], metadata['Description']) self.assertEqual(args['classifiers'], metadata['Classifier']) self.assertEqual(args['requires'], metadata['Requires-Dist']) self.assertEqual(args['provides'], metadata['Provides-Dist']) self.assertEqual(args['package_dir'].get(''), dist.package_dir) self.assertEqual(args['packages'], dist.packages) self.assertEqual(args['scripts'], dist.scripts) self.assertEqual(args['py_modules'], dist.py_modules)
def _run(dispatcher, args, **kw): parser = dispatcher.parser args = args[1:] # Find and parse the config file(s): they will override options from # the setup script, but be overridden by the command line. # XXX call the functions from config and kill the Distribution class # (merging it into Dispatcher) dist = Distribution() dist.parse_config_files() commands = STANDARD_COMMANDS # FIXME display extra commands if args == ['--list-commands']: print('List of available commands:') for cmd in commands: cls = dispatcher.cmdclass.get(cmd) or get_command_class(cmd) desc = getattr(cls, 'description', '(no description available)') print(' %s: %s' % (cmd, desc)) return while args: args = dispatcher._parse_command_opts(parser, args) if args is None: return for cmd in dispatcher.commands: # FIXME need to catch MetadataMissingError here (from the check command # e.g.)--or catch any exception, print an error message and exit with 1 dist.run_command(cmd, dispatcher.command_options[cmd]) return 0
def _metadata(dispatcher, args, **kw): opts = _parse_args(args[1:], 'f:', []) if opts['args']: name = opts['args'][0] dist = get_distribution(name, use_egg_info=True) if dist is None: logger.warning('%r not installed', name) return 1 elif os.path.isfile('setup.cfg'): logger.info('searching local dir for metadata') dist = Distribution() # XXX use config module dist.parse_config_files() else: logger.warning('no argument given and no local setup.cfg found') return 1 metadata = dist.metadata if 'f' in opts: keys = (k for k in opts['f'] if k in metadata) else: keys = metadata.keys() for key in keys: if key in metadata: print(metadata._convert_name(key) + ':') value = metadata[key] if isinstance(value, list): for v in value: print(' ', v) else: print(' ', value.replace('\n', '\n '))
def _run_packaging_install(path, dest): # XXX check for a valid setup.cfg? dist = Distribution() dist.parse_config_files() try: dist.run_command('install_dist', {'prefix': (None, dest)}) name = dist.metadata['Name'] return database.get_distribution(name) is not None except (IOError, os.error, PackagingError, CCompilerError) as msg: raise ValueError("Failed to install, " + str(msg))
def _run_packaging_install(path, dest): # XXX check for a valid setup.cfg? dist = Distribution() dist.parse_config_files() try: dist.run_command('install_dist', {'prefix': (None, dest)}) name = dist.metadata['Name'] return database.get_distribution(name) is not None except (IOError, os.error, PackagingError, CCompilerError), msg: raise ValueError("Failed to install, " + str(msg))
def get_dist(self): dist = Distribution() dist.parse_config_files() return dist
def get_dist(self): dist = Distribution() dist.parse_config_files() return dist