class_docstr: Yields all events in event_list that match the given sid_filter.
  If no event_list is specified, generates an internal stream of events
  to filter.  Returns all events if filter is None.
  
  Configuration options:
  
  count  : integer representing number of trades
  sids   : list of values representing simulated internal sids
  start  : start date
  delta  : timedelta between internal events
  filter : filter to remove the sids
class_docstr_tok: ["Yields","all","events","in","event_list","that","match","the","given","sid_filter",".","If","no","event_list","is","specified",",","generates","an","internal","stream","of","events","to","filter",".","Returns","all","events","if","filter","is","None",".","Configuration","options",":","count",":","integer","representing","number","of","trades","sids",":","list","of","values","representing","simulated","internal","sids","start",":","start","date","delta",":","timedelta","between","internal","events","filter",":","filter","to","remove","the","sids"]
code: def create_fresh_generator(self):
      if self.event_list:
          event_gen = (event for event in self.event_list)
          unfiltered = self.update_source_id(event_gen)
  
      # Set up iterators for each expected field.
      else:
          if self.concurrent:
              # in this context the count is the number of
              # trades per sid, not the total.
              date_generator = date_gen(
                  start=self.start,
                  end=self.end,
                  delta=self.delta,
                  repeats=len(self.sids),
                  trading_calendar=self.trading_calendar,
              )
          else:
              date_generator = date_gen(
                  start=self.start,
                  end=self.end,
                  delta=self.delta,
                  trading_calendar=self.trading_calendar,
              )
  
          source_id = self.get_hash()
  
          unfiltered = (
              create_trade(
                  sid=sid,
                  price=float(i % 10) + 1.0,
                  amount=(i * 50) % 900 + 100,
                  datetime=date,
                  source_id=source_id,
              )
              for (i, date), sid in itertools.product(
                  enumerate(date_generator), self.sids
              )
          )
  
      # If we specified a sid filter, filter out elements that don't
      # match the filter.
      if self.filter:
          filtered = filter(
              lambda event: event.sid in self.filter, unfiltered
          )
  
      # Otherwise just use all events.
      else:
          filtered = unfiltered
  
      # Return the filtered event stream.
      return filtered
  
file_path: catalyst/catalyst/sources/test_source.py
imports: import pytz
  from six.moves import filter
  from datetime import datetime, timedelta
  import itertools
  from six.moves import range
  from catalyst.protocol import Event, DATASOURCE_TYPE
  from catalyst.gens.utils import hash_args
label_desc: Use image node_id 8 for calling the SpecificEquityTrades obj's underlying member method code with example usage: obj.create_fresh_generator() and returns: filtered