parameters: (self, **kw)
docstring: Prepend values to existing construction variables
          in an Environment.
docstring_summary: Prepend values to existing construction variables
          in an Environment.
docstring_tokens: Prepend values to existing construction variables in an Environment .
function: def Prepend(self, **kw):
          """Prepend values to existing construction variables
          in an Environment.
          """
          kw = copy_non_reserved_keywords(kw)
          for key, val in kw.items():
              # It would be easier on the eyes to write this using
              # "continue" statements whenever we finish processing an item,
              # but Python 1.5.2 apparently doesn't let you use "continue"
              # within try:-except: blocks, so we have to nest our code.
              try:
                  orig = self._dict[key]
              except KeyError:
                  # No existing variable in the environment, so just set
                  # it to the new value.
                  self._dict[key] = val
              else:
                  try:
                      # Check if the original looks like a dictionary.
                      # If it is, we can't just try adding the value because
                      # dictionaries don't have __add__() methods, and
                      # things like UserList will incorrectly coerce the
                      # original dict to a list (which we don't want).
                      update_dict = orig.update
                  except AttributeError:
                      try:
                          # Most straightforward:  just try to add them
                          # together.  This will work in most cases, when the
                          # original and new values are of compatible types.
                          self._dict[key] = val + orig
                      except (KeyError, TypeError):
                          try:
                              # Check if the added value is a list.
                              add_to_val = val.append
                          except AttributeError:
                              # The added value isn't a list, but the
                              # original is (by process of elimination),
                              # so insert the the new value in the original
                              # (if there's one to insert).
                              if val:
                                  orig.insert(0, val)
                          else:
                              # The added value is a list, so append
                              # the original to it (if there's a value
                              # to append).
                              if orig:
                                  add_to_val(orig)
                              self._dict[key] = val
                  else:
                      # The original looks like a dictionary, so update it
                      # based on what we think the value looks like.
                      if SCons.Util.is_List(val):
                          for v in val:
                              orig[v] = None
                      else:
                          try:
                              update_dict(val)
                          except (AttributeError, TypeError, ValueError):
                              if SCons.Util.is_Dict(val):
                                  for k, v in val.items():
                                      orig[k] = v
                              else:
                                  orig[val] = None
          self.scanner_map_delete(kw)
function_tokens: def Prepend ( self , * * kw ) : kw = copy_non_reserved_keywords ( kw ) for key , val in kw . items ( ) : # It would be easier on the eyes to write this using # "continue" statements whenever we finish processing an item, # but Python 1.5.2 apparently doesn't let you use "continue" # within try:-except: blocks, so we have to nest our code. try : orig = self . _dict [ key ] except KeyError : # No existing variable in the environment, so just set # it to the new value. self . _dict [ key ] = val else : try : # Check if the original looks like a dictionary. # If it is, we can't just try adding the value because # dictionaries don't have __add__() methods, and # things like UserList will incorrectly coerce the # original dict to a list (which we don't want). update_dict = orig . update except AttributeError : try : # Most straightforward:  just try to add them # together.  This will work in most cases, when the # original and new values are of compatible types. self . _dict [ key ] = val + orig except ( KeyError , TypeError ) : try : # Check if the added value is a list. add_to_val = val . append except AttributeError : # The added value isn't a list, but the # original is (by process of elimination), # so insert the the new value in the original # (if there's one to insert). if val : orig . insert ( 0 , val ) else : # The added value is a list, so append # the original to it (if there's a value # to append). if orig : add_to_val ( orig ) self . _dict [ key ] = val else : # The original looks like a dictionary, so update it # based on what we think the value looks like. if SCons . Util . is_List ( val ) : for v in val : orig [ v ] = None else : try : update_dict ( val ) except ( AttributeError , TypeError , ValueError ) : if SCons . Util . is_Dict ( val ) : for k , v in val . items ( ) : orig [ k ] = v else : orig [ val ] = None self . scanner_map_delete ( kw )