parameters: (rules, rule_eval)
return_statement: return vcs_config
docstring: Factory for creating :class:`VcsConfig` subclass based on
      rosdistro _rules data.
  
      :param rules: rosdistro rules data
      :param rules_eval: Function to apply to rule values, e.g. to
        convert variables.  ``fn(str)->str``
      :returns: :class:`VcsConfig` subclass instance with interpreted rules data.
docstring_summary: Factory for creating :class:`VcsConfig` subclass based on
      rosdistro _rules data.
docstring_tokens: Factory for creating : class : VcsConfig subclass based on rosdistro _rules data .
function: def load_vcs_config(rules, rule_eval):
      """
      Factory for creating :class:`VcsConfig` subclass based on
      rosdistro _rules data.
  
      :param rules: rosdistro rules data
      :param rules_eval: Function to apply to rule values, e.g. to
        convert variables.  ``fn(str)->str``
      :returns: :class:`VcsConfig` subclass instance with interpreted rules data.
      """
      vcs_config = None
      for k, clazz in _vcs_configs.items():
          if k in rules:
              vcs_config = clazz()
              vcs_config.load(rules[k], rule_eval)
              break
      return vcs_config
function_tokens: def load_vcs_config ( rules , rule_eval ) : vcs_config = None for k , clazz in _vcs_configs . items ( ) : if k in rules : vcs_config = clazz ( ) vcs_config . load ( rules [ k ] , rule_eval ) break return vcs_config