def run(config=('package.cfg',), ext=None, script_args=None, manifest_only=0): """ Main runner """ if ext is None: ext = [] cfg = _util.SafeConfigParser() cfg.read(config, encoding='utf-8') pkg = dict(cfg.items('package')) python_min = pkg.get('python.min') or None python_max = pkg.get('python.max') or None check_python_version('python', python_min, python_max) pypy_min = pkg.get('pypy.min') or None pypy_max = pkg.get('pypy.max') or None check_python_version('pypy', pypy_min, pypy_max) jython_min = pkg.get('jython.min') or None jython_max = pkg.get('jython.max') or None check_python_version('jython', jython_min, jython_max) manifest = dict(cfg.items('manifest')) try: docs = dict(cfg.items('docs')) except _config_parser.NoSectionError: docs = {} summary, description = find_description(docs) scripts = manifest.get('scripts', '').strip() or None if scripts: scripts = scripts.split() modules = manifest.get('modules', '').strip() or None if modules: modules = modules.split() keywords = docs.get('meta.keywords', '').strip() or None if keywords: keywords = keywords.split() revision = pkg.get('version.revision', '').strip() if revision: revision = "-r%s" % (revision,) kwargs = { 'name': pkg['name'], 'version': "%s%s" % ( pkg['version.number'], ["", "-dev%s" % (revision,)][_util.humanbool( 'version.dev', pkg.get('version.dev', 'false') )], ), 'provides': find_provides(docs), 'description': summary, 'long_description': description, 'classifiers': find_classifiers(docs), 'keywords': keywords, 'author': pkg['author.name'], 'author_email': pkg['author.email'], 'maintainer': pkg.get('maintainer.name'), 'maintainer_email': pkg.get('maintainer.email'), 'url': pkg.get('url.homepage'), 'download_url': pkg.get('url.download'), 'license': find_license(docs), 'package_dir': {'': manifest.get('packages.lib', '.')}, 'packages': find_packages(manifest), 'py_modules': modules, 'ext_modules': ext, 'scripts': scripts, 'script_args': script_args, 'data_files': find_data(pkg['name'], docs), 'cmdclass': { 'build' : _commands.Build, 'build_ext' : _commands.BuildExt, 'install' : _commands.Install, 'install_data': _commands.InstallData, 'install_lib' : _commands.InstallLib, } } for key in ('provides',): if key not in _core.setup_keywords: del kwargs[key] if manifest_only: return make_manifest(manifest, config, docs, kwargs) # monkey-patch crappy manifest writer away. from distutils.command import sdist sdist.sdist.get_file_list = sdist.sdist.read_manifest return _core.setup(**kwargs)
def run(config=('package.cfg', ), ext=None, script_args=None, manifest_only=0): """ Main runner """ if ext is None: ext = [] cfg = _util.SafeConfigParser() cfg.read(config) pkg = dict(cfg.items('package')) python_min = pkg.get('python.min') or None python_max = pkg.get('python.max') or None check_python_version('python', python_min, python_max) pypy_min = pkg.get('pypy.min') or None pypy_max = pkg.get('pypy.max') or None check_python_version('pypy', pypy_min, pypy_max) jython_min = pkg.get('jython.min') or None jython_max = pkg.get('jython.max') or None check_python_version('jython', jython_min, jython_max) manifest = dict(cfg.items('manifest')) try: docs = dict(cfg.items('docs')) except _config_parser.NoSectionError: docs = {} summary, description = find_description(docs) scripts = manifest.get('scripts', '').strip() or None if scripts: scripts = scripts.split() modules = manifest.get('modules', '').strip() or None if modules: modules = modules.split() keywords = docs.get('meta.keywords', '').strip() or None if keywords: keywords = keywords.split() revision = pkg.get('version.revision', '').strip() if revision: revision = "-r%s" % (revision, ) kwargs = { 'name': pkg['name'], 'version': "%s%s" % ( pkg['version.number'], ["", "-dev%s" % (revision, )][_util.humanbool( 'version.dev', pkg.get('version.dev', 'false'))], ), 'provides': find_provides(docs), 'description': summary, 'long_description': description, 'classifiers': find_classifiers(docs), 'keywords': keywords, 'author': pkg['author.name'], 'author_email': pkg['author.email'], 'maintainer': pkg.get('maintainer.name'), 'maintainer_email': pkg.get('maintainer.email'), 'url': pkg.get('url.homepage'), 'download_url': pkg.get('url.download'), 'license': find_license(docs), 'package_dir': { '': manifest.get('packages.lib', '.') }, 'packages': find_packages(manifest), 'py_modules': modules, 'ext_modules': ext, 'scripts': scripts, 'script_args': script_args, 'data_files': find_data(pkg['name'], docs), 'cmdclass': { 'build': _commands.Build, 'build_ext': _commands.BuildExt, 'install': _commands.Install, 'install_data': _commands.InstallData, 'install_lib': _commands.InstallLib, } } for key in ('provides', ): if key not in _core.setup_keywords: del kwargs[key] if manifest_only: return make_manifest(manifest, config, docs, kwargs) # monkey-patch crappy manifest writer away. from distutils.command import sdist sdist.sdist.get_file_list = sdist.sdist.read_manifest return _core.setup(**kwargs)