[Checkins] SVN: zc.buildout/branches/gary-betafix/ make the two built-in recipes use the new bool option conveniences

Gary Poster gary.poster at canonical.com
Tue Aug 3 17:35:27 EDT 2010


Log message for revision 115415:
  make the two built-in recipes use the new bool option conveniences

Changed:
  U   zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py
  U   zc.buildout/branches/gary-betafix/z3c.recipe.scripts_/src/z3c/recipe/scripts/scripts.py
  U   zc.buildout/branches/gary-betafix/zc.recipe.egg_/src/zc/recipe/egg/egg.py

-=-
Modified: zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py
===================================================================
--- zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py	2010-08-03 15:00:46 UTC (rev 115414)
+++ zc.buildout/branches/gary-betafix/src/zc/buildout/buildout.py	2010-08-03 21:35:26 UTC (rev 115415)
@@ -1068,6 +1068,7 @@
             group, entry, spec, v)
         raise
 
+
 class Options(UserDict.DictMixin):
 
     def __init__(self, buildout, section, data):
@@ -1277,31 +1278,32 @@
                 self.name)
         return self._created
 
-    def get_bool(self, name, default=None, on_error=None):
+    def query_bool(self, name, default=None):
         """Given a name, return a boolean value for that name.
 
-        ``default``, if given, should be 'true', 'false', or None.  None
-        is the default, and means that there is no default for the
-        value: the call should raise a MissingOption error if the name
-        is not present.
-
-        ``on_error``, if given, should be a callable that takes the name and
-        the found value.
+        ``default``, if given, should be 'true', 'false', or None.
         """
-        if default is None:
-            value = self[name]
+        if default is not None:
+            value = self.setdefault(name, default=default)
         else:
-            value = self.get(name, default=default)
-        if value not in ('true', 'false'):
-            if on_error is None:
-                raise zc.buildout.UserError(
-                    'Invalid value for %s option: %s' % (name, value))
-            else:
-                on_error(name, value)
-        else:
-            return value == 'true'
+            value = self.get(name)
+            if value is None:
+                return value
+        return _convert_bool(name, value)
 
+    def get_bool(self, name):
+        """Given a name, return a boolean value for that name.
+        """
+        return _convert_bool(name, self[name])
 
+
+def _convert_bool(name, value):
+    if value not in ('true', 'false'):
+        raise zc.buildout.UserError(
+            'Invalid value for %s option: %s' % (name, value))
+    else:
+        return value == 'true'
+
 _spacey_nl = re.compile('[ \t\r\f\v]*\n[ \t\r\f\v\n]*'
                         '|'
                         '^[ \t\r\f\v]+'

Modified: zc.buildout/branches/gary-betafix/z3c.recipe.scripts_/src/z3c/recipe/scripts/scripts.py
===================================================================
--- zc.buildout/branches/gary-betafix/z3c.recipe.scripts_/src/z3c/recipe/scripts/scripts.py	2010-08-03 15:00:46 UTC (rev 115414)
+++ zc.buildout/branches/gary-betafix/z3c.recipe.scripts_/src/z3c/recipe/scripts/scripts.py	2010-08-03 21:35:26 UTC (rev 115415)
@@ -35,23 +35,13 @@
             '*')
         self.allowed_eggs = tuple(name.strip() for name in value.split('\n'))
 
-        value = options.setdefault(
+        self.include_site_packages = options.query_bool(
             'include-site-packages',
-            b_options.get('include-site-packages', 'false'))
-        if value not in ('true', 'false'):
-            raise zc.buildout.UserError(
-                "Invalid value for include-site-packages option: %s" %
-                (value,))
-        self.include_site_packages = (value == 'true')
+            default=b_options.get('include-site-packages', 'false'))
 
-        value = options.setdefault(
+        self.exec_sitecustomize = options.query_bool(
             'exec-sitecustomize',
-            b_options.get('exec-sitecustomize', 'false'))
-        if value not in ('true', 'false'):
-            raise zc.buildout.UserError(
-                "Invalid value for exec-sitecustomize option: %s" %
-                (value,))
-        self.exec_sitecustomize = (value == 'true')
+            default=b_options.get('exec-sitecustomize', 'false'))
 
 
 class Interpreter(Base):

Modified: zc.buildout/branches/gary-betafix/zc.recipe.egg_/src/zc/recipe/egg/egg.py
===================================================================
--- zc.buildout/branches/gary-betafix/zc.recipe.egg_/src/zc/recipe/egg/egg.py	2010-08-03 15:00:46 UTC (rev 115414)
+++ zc.buildout/branches/gary-betafix/zc.recipe.egg_/src/zc/recipe/egg/egg.py	2010-08-03 21:35:26 UTC (rev 115415)
@@ -52,9 +52,6 @@
         options['develop-eggs-directory'] = b_options['develop-eggs-directory']
         options['_d'] = options['develop-eggs-directory'] # backward compat.
 
-        # verify that this is None, 'true' or 'false'
-        get_bool(options, 'unzip')
-
         python = options.setdefault('python', b_options['python'])
         options['executable'] = buildout[python]['executable']
 
@@ -84,7 +81,7 @@
         else:
             kw = {}
             if 'unzip' in options:
-                kw['always_unzip'] = get_bool(options, 'unzip')
+                kw['always_unzip'] = options.query_bool('unzip', None)
             ws = zc.buildout.easy_install.install(
                 distributions, options['eggs-directory'],
                 links=self.links,
@@ -159,7 +156,7 @@
                     raise zc.buildout.UserError("Invalid entry point")
                 reqs.append(parsed.groups())
 
-            if get_bool(options, 'dependent-scripts'):
+            if options.query_bool('dependent-scripts', 'false'):
                 # Generate scripts for all packages in the working set,
                 # except setuptools.
                 reqs = list(reqs)
@@ -192,17 +189,4 @@
             relative_paths=self._relative_paths
             )
 
-
-def get_bool(options, name, default=False):
-    value = options.get(name)
-    if not value:
-        return default
-    if value == 'true':
-        return True
-    elif value == 'false':
-        return False
-    else:
-        raise zc.buildout.UserError(
-            "Invalid value for %s option: %s" % (name, value))
-
 Egg = Scripts



More information about the checkins mailing list