[Python-checkins] distutils2: Code cleanup

tarek.ziade python-checkins at python.org
Sun Aug 8 11:50:45 CEST 2010


tarek.ziade pushed 93a29f88b85f to distutils2:

http://hg.python.org/distutils2/rev/93a29f88b85f
changeset:   416:93a29f88b85f
user:        ?ric Araujo <merwok at netwok.org>
date:        Sat Jul 31 16:06:07 2010 +0200
summary:     Code cleanup
files:       src/distutils2/core.py, src/distutils2/metadata.py, src/distutils2/tests/test_core.py, src/distutils2/tests/test_register.py

diff --git a/src/distutils2/core.py b/src/distutils2/core.py
--- a/src/distutils2/core.py
+++ b/src/distutils2/core.py
@@ -205,8 +205,6 @@
         # Hmm, should we do something if exiting with a non-zero code
         # (ie. error)?
         pass
-    except:
-        raise
 
     if _setup_distribution is None:
         raise RuntimeError, \
diff --git a/src/distutils2/metadata.py b/src/distutils2/metadata.py
--- a/src/distutils2/metadata.py
+++ b/src/distutils2/metadata.py
@@ -77,12 +77,11 @@
                 'Obsoletes-Dist', 'Requires-External', 'Maintainer',
                 'Maintainer-email', 'Project-URL')
 
-_ALL_FIELDS = []
+_ALL_FIELDS = set()
+_ALL_FIELDS.update(_241_FIELDS)
+_ALL_FIELDS.update(_314_FIELDS)
+_ALL_FIELDS.update(_345_FIELDS)
 
-for field in _241_FIELDS + _314_FIELDS + _345_FIELDS:
-    if field in _ALL_FIELDS:
-        continue
-    _ALL_FIELDS.append(field)
 
 def _version2fieldlist(version):
     if version == '1.0':
@@ -223,12 +222,10 @@
         if name in _ALL_FIELDS:
             return name
         name = name.replace('-', '_').lower()
-        if name in _ATTR2FIELD:
-            return _ATTR2FIELD[name]
-        return name
+        return _ATTR2FIELD.get(name, name)
 
     def _default_value(self, name):
-        if name in _LISTFIELDS + _ELEMENTSFIELD:
+        if name in _LISTFIELDS or name in _ELEMENTSFIELD:
             return []
         return 'UNKNOWN'
 
@@ -329,14 +326,14 @@
         """Control then set a metadata field."""
         name = self._convert_name(name)
 
-        if (name in _ELEMENTSFIELD + ('Platform',) and
+        if ((name in _ELEMENTSFIELD or name == 'Platform') and
             not isinstance(value, (list, tuple))):
             if isinstance(value, str):
                 value = value.split(',')
             else:
                 value = []
         elif (name in _LISTFIELDS and
-            not isinstance(value, (list, tuple))):
+              not isinstance(value, (list, tuple))):
             if isinstance(value, str):
                 value = [value]
             else:
@@ -400,7 +397,7 @@
     def check(self):
         """Check if the metadata is compliant."""
         # XXX should check the versions (if the file was loaded)
-        missing = []
+        missing, warnings = [], []
         for attr in ('Name', 'Version', 'Home-page'):
             value = self[attr]
             if value == 'UNKNOWN':
@@ -408,14 +405,11 @@
 
         if _HAS_DOCUTILS:
             warnings = self._check_rst_data(self['Description'])
-        else:
-            warnings = []
 
         # checking metadata 1.2 (XXX needs to check 1.1, 1.0)
         if self['Metadata-Version'] != '1.2':
             return missing, warnings
 
-
         def is_valid_predicates(value):
             for v in value:
                 if not is_valid_predicate(v.split(';')[0]):
@@ -423,16 +417,15 @@
             return True
 
         for fields, controller in ((_PREDICATE_FIELDS, is_valid_predicates),
-                                  (_VERSIONS_FIELDS, is_valid_versions),
-                                  (_VERSION_FIELDS, is_valid_version)):
+                                   (_VERSIONS_FIELDS, is_valid_versions),
+                                   (_VERSION_FIELDS, is_valid_version)):
             for field in fields:
                 value = self[field]
                 if value == 'UNKNOWN':
                     continue
 
                 if not controller(value):
-                    warnings.append('Wrong value for "%s": %s' \
-                            % (field, value))
+                    warnings.append('Wrong value for %r: %s' % (field, value))
 
         return missing, warnings
 
@@ -449,7 +442,6 @@
 #
 # micro-language for PEP 345 environment markers
 #
-_STR_LIMIT = "'\""
 
 # allowed operators
 _OPERATORS = {'==': lambda x, y: x == y,
@@ -466,9 +458,8 @@
 
 # restricted set of variables
 _VARS = {'sys.platform': sys.platform,
-         'python_version': '%s.%s' % (sys.version_info[0],
-                                      sys.version_info[1]),
-         'python_full_version': sys.version.split()[0],
+         'python_version': sys.version[:3],
+         'python_full_version': sys.version.split(' ', 1)[0],
          'os.name': os.name,
          'platform.version': platform.version(),
          'platform.machine': platform.machine()}
@@ -494,7 +485,7 @@
     def _is_string(self, value):
         if value is None or len(value) < 2:
             return False
-        for delimiter in _STR_LIMIT:
+        for delimiter in '"\'':
             if value[0] == value[-1] == delimiter:
                 return True
         return False
@@ -505,7 +496,7 @@
     def _convert(self, value):
         if value in _VARS:
             return self._get_var(value)
-        return value.strip(_STR_LIMIT)
+        return value.strip('"\'')
 
     def _check_name(self, value):
         if value not in _VARS:
@@ -542,7 +533,7 @@
         return self.right is not None
 
     def __repr__(self):
-        return 'OR(%s, %s)' % (repr(self.left), repr(self.right))
+        return 'OR(%r, %r)' % (self.left, self.right)
 
     def __call__(self):
         return self.left() or self.right()
@@ -557,7 +548,7 @@
         return self.right is not None
 
     def __repr__(self):
-        return 'AND(%s, %s)' % (repr(self.left), repr(self.right))
+        return 'AND(%r, %r)' % (self.left, self.right)
 
     def __call__(self):
         return self.left() and self.right()
diff --git a/src/distutils2/tests/test_core.py b/src/distutils2/tests/test_core.py
--- a/src/distutils2/tests/test_core.py
+++ b/src/distutils2/tests/test_core.py
@@ -64,13 +64,13 @@
         f = self.write_setup(setup_using___file__)
         for s in ['init', 'config', 'commandline', 'run']:
             distutils2.core.run_setup(f, stop_after=s)
-        self.assertRaises(ValueError, distutils2.core.run_setup, 
+        self.assertRaises(ValueError, distutils2.core.run_setup,
                           f, stop_after='bob')
 
     def test_run_setup_args(self):
         f = self.write_setup(setup_using___file__)
-        d = distutils2.core.run_setup(f, script_args=["--help"], 
-                                        stop_after="init")
+        d = distutils2.core.run_setup(f, script_args=["--help"],
+                                      stop_after="init")
         self.assertEqual(['--help'], d.script_args)
 
     def test_run_setup_uses_current_dir(self):
diff --git a/src/distutils2/tests/test_register.py b/src/distutils2/tests/test_register.py
--- a/src/distutils2/tests/test_register.py
+++ b/src/distutils2/tests/test_register.py
@@ -161,7 +161,7 @@
         # therefore used afterwards by other commands
         self.assertEqual(cmd.distribution.password, 'password')
 
-    def test_registering(self):
+    def test_registration(self):
         # this test runs choice 2
         cmd = self._get_cmd()
         inputs = RawInputs('2', 'tarek', 'tarek at ziade.org')

--
Repository URL: http://hg.python.org/distutils2


More information about the Python-checkins mailing list