[Distutils] Wheels and console script entry point wrappers (Was: Replacing pip.exe with a Python script)

Vinay Sajip vinay_sajip at yahoo.co.uk
Tue Jul 16 20:18:24 CEST 2013



>If I were writing a firm proposal, I'd go for something like entry points as metadata

My extended metadata already covers this, though I use the name "exports" (suggested by PJE) because you can share not just code but data, and "entry points" generally implies code. The current version of distil creates wrappers for both gui and console scripts, and adds the appropriate native executable wrappers (32- or 64-bit, according to the running Python) on Windows.

Example of the metadata for setuptools 0.8:
"exports": { "distutils.commands": [ "alias = setuptools.command.alias:alias",  "bdist_egg = setuptools.command.bdist_egg:bdist_egg",  "bdist_rpm = setuptools.command.bdist_rpm:bdist_rpm",  "build_ext = setuptools.command.build_ext:build_ext",  "build_py = setuptools.command.build_py:build_py",  "develop = setuptools.command.develop:develop",  "easy_install = setuptools.command.easy_install:easy_install",  "egg_info = setuptools.command.egg_info:egg_info",  "install = setuptools.command.install:install",  "install_lib = setuptools.command.install_lib:install_lib",  "rotate = setuptools.command.rotate:rotate",  "saveopts = setuptools.command.saveopts:saveopts",  "sdist = setuptools.command.sdist:sdist",  "setopt = setuptools.command.setopt:setopt",  "test = setuptools.command.test:test",  "install_egg_info = setuptools.command.install_egg_info:install_egg_info",  "install_scripts = setuptools.command.install_scripts:install_scripts",  "register =
 setuptools.command.register:register",  "bdist_wininst = setuptools.command.bdist_wininst:bdist_wininst",  "upload_docs = setuptools.command.upload_docs:upload_docs" ],  "scripts": { "console": [ "easy_install = setuptools.command.easy_install:main" ] },  "egg_info.writers": [ "PKG-INFO = setuptools.command.egg_info:write_pkg_info",  "requires.txt = setuptools.command.egg_info:write_requirements",  "entry_points.txt = setuptools.command.egg_info:write_entries",  "eager_resources.txt = setuptools.command.egg_info:overwrite_arg",  "namespace_packages.txt = setuptools.command.egg_info:overwrite_arg",  "top_level.txt = setuptools.command.egg_info:write_toplevel_names",  "depends.txt = setuptools.command.egg_info:warn_depends_obsolete",  "dependency_links.txt = setuptools.command.egg_info:overwrite_arg" ],  "setuptools.file_finders": [ "svn_cvs = setuptools.command.sdist:_default_revctrl" ],  "distutils.setup_keywords": [ "eager_resources        =
 setuptools.dist:assert_string_list",  "namespace_packages     = setuptools.dist:check_nsp",  "extras_require         = setuptools.dist:check_extras",  "install_requires       = setuptools.dist:check_requirements",  "tests_require          = setuptools.dist:check_requirements",  "entry_points           = setuptools.dist:check_entry_points",  "test_suite             = setuptools.dist:check_test_suite",  "zip_safe               = setuptools.dist:assert_bool",  "package_data           = setuptools.dist:check_package_data",  "exclude_package_data   = setuptools.dist:check_package_data",  "include_package_data   = setuptools.dist:assert_bool",  "packages               = setuptools.dist:check_packages",  "dependency_links       = setuptools.dist:assert_string_list",  "test_loader            = setuptools.dist:check_importable",  "use_2to3               = setuptools.dist:assert_bool",  "convert_2to3_doctests  = setuptools.dist:assert_string_list", 
 "use_2to3_fixers        = setuptools.dist:assert_string_list",  "use_2to3_exclude_fixers = setuptools.dist:assert_string_list" ],  "setuptools.installation": [ "eggsecutable = setuptools.command.easy_install:bootstrap" ] }

Regards,

Vinay Sajip



More information about the Distutils-SIG mailing list