summaryrefslogtreecommitdiff
path: root/Lib/packaging/command/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/packaging/command/__init__.py')
-rw-r--r--Lib/packaging/command/__init__.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/Lib/packaging/command/__init__.py b/Lib/packaging/command/__init__.py
new file mode 100644
index 0000000000..6a3785061b
--- /dev/null
+++ b/Lib/packaging/command/__init__.py
@@ -0,0 +1,56 @@
+"""Subpackage containing all standard commands."""
+
+from packaging.errors import PackagingModuleError
+from packaging.util import resolve_name
+
+__all__ = ['get_command_names', 'set_command', 'get_command_class',
+ 'STANDARD_COMMANDS']
+
+_COMMANDS = {
+ 'check': 'packaging.command.check.check',
+ 'test': 'packaging.command.test.test',
+ 'build': 'packaging.command.build.build',
+ 'build_py': 'packaging.command.build_py.build_py',
+ 'build_ext': 'packaging.command.build_ext.build_ext',
+ 'build_clib': 'packaging.command.build_clib.build_clib',
+ 'build_scripts': 'packaging.command.build_scripts.build_scripts',
+ 'clean': 'packaging.command.clean.clean',
+ 'install_dist': 'packaging.command.install_dist.install_dist',
+ 'install_lib': 'packaging.command.install_lib.install_lib',
+ 'install_headers': 'packaging.command.install_headers.install_headers',
+ 'install_scripts': 'packaging.command.install_scripts.install_scripts',
+ 'install_data': 'packaging.command.install_data.install_data',
+ 'install_distinfo':
+ 'packaging.command.install_distinfo.install_distinfo',
+ 'sdist': 'packaging.command.sdist.sdist',
+ 'bdist': 'packaging.command.bdist.bdist',
+ 'bdist_dumb': 'packaging.command.bdist_dumb.bdist_dumb',
+ 'bdist_wininst': 'packaging.command.bdist_wininst.bdist_wininst',
+ 'register': 'packaging.command.register.register',
+ 'upload': 'packaging.command.upload.upload',
+ 'upload_docs': 'packaging.command.upload_docs.upload_docs'}
+
+STANDARD_COMMANDS = set(_COMMANDS)
+
+
+def get_command_names():
+ """Return registered commands"""
+ return sorted(_COMMANDS)
+
+
+def set_command(location):
+ cls = resolve_name(location)
+ # XXX we want to do the duck-type checking here
+ _COMMANDS[cls.get_command_name()] = cls
+
+
+def get_command_class(name):
+ """Return the registered command"""
+ try:
+ cls = _COMMANDS[name]
+ if isinstance(cls, str):
+ cls = resolve_name(cls)
+ _COMMANDS[name] = cls
+ return cls
+ except KeyError:
+ raise PackagingModuleError("Invalid command %s" % name)