mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Merged revisions 72681 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r72681 | tarek.ziade | 2009-05-16 18:37:06 +0200 (Sat, 16 May 2009) | 1 line #6041: sdist and register now use the check command. No more duplicate code for metadata checking ........
This commit is contained in:
		
							parent
							
								
									afdfbc72fb
								
							
						
					
					
						commit
						5af55c6360
					
				
					 6 changed files with 182 additions and 72 deletions
				
			
		|  | @ -9,6 +9,8 @@ | |||
| import sys | ||||
| from types import * | ||||
| from glob import glob | ||||
| from warnings import warn | ||||
| 
 | ||||
| from distutils.core import Command | ||||
| from distutils import dir_util, dep_util, file_util, archive_util | ||||
| from distutils.text_file import TextFile | ||||
|  | @ -35,6 +37,12 @@ class sdist(Command): | |||
| 
 | ||||
|     description = "create a source distribution (tarball, zip file, etc.)" | ||||
| 
 | ||||
|     def checking_metadata(self): | ||||
|         """Callable used for the check sub-command. | ||||
| 
 | ||||
|         Placed here so user_options can view it""" | ||||
|         return self.metadata_check | ||||
| 
 | ||||
|     user_options = [ | ||||
|         ('template=', 't', | ||||
|          "name of manifest template file [default: MANIFEST.in]"), | ||||
|  | @ -64,11 +72,14 @@ class sdist(Command): | |||
|         ('dist-dir=', 'd', | ||||
|          "directory to put the source distribution archive(s) in " | ||||
|          "[default: dist]"), | ||||
|         ('medata-check', None, | ||||
|          "Ensure that all required elements of meta-data " | ||||
|          "are supplied. Warn if any missing. [default]"), | ||||
|         ] | ||||
| 
 | ||||
|     boolean_options = ['use-defaults', 'prune', | ||||
|                        'manifest-only', 'force-manifest', | ||||
|                        'keep-temp'] | ||||
|                        'keep-temp', 'metadata-check'] | ||||
| 
 | ||||
|     help_options = [ | ||||
|         ('help-formats', None, | ||||
|  | @ -81,6 +92,8 @@ class sdist(Command): | |||
|     default_format = {'posix': 'gztar', | ||||
|                       'nt': 'zip' } | ||||
| 
 | ||||
|     sub_commands = [('check', checking_metadata)] | ||||
| 
 | ||||
|     def initialize_options(self): | ||||
|         # 'template' and 'manifest' are, respectively, the names of | ||||
|         # the manifest template and manifest file. | ||||
|  | @ -100,6 +113,7 @@ def initialize_options(self): | |||
|         self.dist_dir = None | ||||
| 
 | ||||
|         self.archive_files = None | ||||
|         self.metadata_check = 1 | ||||
| 
 | ||||
|     def finalize_options(self): | ||||
|         if self.manifest is None: | ||||
|  | @ -129,9 +143,9 @@ def run(self): | |||
|         # manifest | ||||
|         self.filelist = FileList() | ||||
| 
 | ||||
|         # Ensure that all required meta-data is given; warn if not (but | ||||
|         # don't die, it's not *that* serious!) | ||||
|         self.check_metadata() | ||||
|         # Run sub commands | ||||
|         for cmd_name in self.get_sub_commands(): | ||||
|             self.run_command(cmd_name) | ||||
| 
 | ||||
|         # Do whatever it takes to get the list of files to process | ||||
|         # (process the manifest template, read an existing manifest, | ||||
|  | @ -147,34 +161,12 @@ def run(self): | |||
|         self.make_distribution() | ||||
| 
 | ||||
|     def check_metadata(self): | ||||
|         """Ensure that all required elements of meta-data (name, version, | ||||
|         URL, (author and author_email) or (maintainer and | ||||
|         maintainer_email)) are supplied by the Distribution object; warn if | ||||
|         any are missing. | ||||
|         """ | ||||
|         metadata = self.distribution.metadata | ||||
| 
 | ||||
|         missing = [] | ||||
|         for attr in ('name', 'version', 'url'): | ||||
|             if not (hasattr(metadata, attr) and getattr(metadata, attr)): | ||||
|                 missing.append(attr) | ||||
| 
 | ||||
|         if missing: | ||||
|             self.warn("missing required meta-data: " + | ||||
|                       ", ".join(missing)) | ||||
| 
 | ||||
|         if metadata.author: | ||||
|             if not metadata.author_email: | ||||
|                 self.warn("missing meta-data: if 'author' supplied, " + | ||||
|                           "'author_email' must be supplied too") | ||||
|         elif metadata.maintainer: | ||||
|             if not metadata.maintainer_email: | ||||
|                 self.warn("missing meta-data: if 'maintainer' supplied, " + | ||||
|                           "'maintainer_email' must be supplied too") | ||||
|         else: | ||||
|             self.warn("missing meta-data: either (author and author_email) " + | ||||
|                       "or (maintainer and maintainer_email) " + | ||||
|                       "must be supplied") | ||||
|         """Deprecated API.""" | ||||
|         warn("distutils.command.sdist.check_metadata is deprecated, \ | ||||
|               use the check command instead", PendingDeprecationWarning) | ||||
|         check = self.distribution.get_command_obj('check') | ||||
|         check.ensure_finalized() | ||||
|         check.run() | ||||
| 
 | ||||
|     def get_file_list(self): | ||||
|         """Figure out the list of files to include in the source | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tarek Ziadé
						Tarek Ziadé