parameters: (properties, dont_validate = False)
return_statement: return result
docstring: Make all elements of properties corresponding to implicit features
      explicit, and express all subfeature values as separate properties
      in their own right. For example, the property
  
         gcc-2.95.2-linux-x86
  
      might expand to
  
        <toolset>gcc <toolset-version>2.95.2 <toolset-os>linux <toolset-cpu>x86
  
      properties:     A sequence with elements of the form
                      <feature>value-string or just value-string in the
                      case of implicit features.
    : dont_validate:  If True, no validation of value string will be done.
docstring_summary: Make all elements of properties corresponding to implicit features
      explicit, and express all subfeature values as separate properties
      in their own right. For example, the property
docstring_tokens: Make all elements of properties corresponding to implicit features explicit and express all subfeature values as separate properties in their own right . For example the property
function: def expand_subfeatures(properties, dont_validate = False):
      """
      Make all elements of properties corresponding to implicit features
      explicit, and express all subfeature values as separate properties
      in their own right. For example, the property
  
         gcc-2.95.2-linux-x86
  
      might expand to
  
        <toolset>gcc <toolset-version>2.95.2 <toolset-os>linux <toolset-cpu>x86
  
      properties:     A sequence with elements of the form
                      <feature>value-string or just value-string in the
                      case of implicit features.
    : dont_validate:  If True, no validation of value string will be done.
      """
      if __debug__:
          from .property import Property
          assert is_iterable_typed(properties, Property)
          assert isinstance(dont_validate, int)  # matches bools
      result = []
      for p in properties:
          # Don't expand subfeatures in subfeatures
          if p.feature.subfeature:
              result.append (p)
          else:
              result.extend(__expand_subfeatures_aux (p, dont_validate))
  
      return result
function_tokens: def expand_subfeatures ( properties , dont_validate = False ) : if __debug__ : from . property import Property assert is_iterable_typed ( properties , Property ) assert isinstance ( dont_validate , int ) # matches bools result = [ ] for p in properties : # Don't expand subfeatures in subfeatures if p . feature . subfeature : result . append ( p ) else : result . extend ( __expand_subfeatures_aux ( p , dont_validate ) ) return result