parameters: (process, *types)
return_statement: return (module for module in itertools.chain(process._Process__producers.values(), switches) \
        if module._TypedParameterizable__type in types)
docstring: Find all EDProducers in the Process that are instances of the given C++ type.
docstring_summary: Find all EDProducers in the Process that are instances of the given C++ type.
docstring_tokens: Find all EDProducers in the Process that are instances of the given C ++ type .
function: def producers_by_type(process, *types):
      "Find all EDProducers in the Process that are instances of the given C++ type."
      switches = (module for module in (getattr(switchproducer, case) \
        for switchproducer in process._Process__switchproducers.values() \
        for case in switchproducer.parameterNames_()) \
        if isinstance(module, cms.EDProducer))
      return (module for module in itertools.chain(process._Process__producers.values(), switches) \
        if module._TypedParameterizable__type in types)
function_tokens: def producers_by_type ( process , * types ) : switches = ( module for module in ( getattr ( switchproducer , case ) for switchproducer in process . _Process__switchproducers . values ( ) for case in switchproducer . parameterNames_ ( ) ) if isinstance ( module , cms . EDProducer ) ) return ( module for module in itertools . chain ( process . _Process__producers . values ( ) , switches ) if module . _TypedParameterizable__type in types )