original_docstring: Process the file specified by ``filename`` using a G3IndexedReader.
          Each frame from the file is passed to self.Process, with the
          optional index_info argument set to a dictionary containing
          the filename and byte_offset of the frame.
  
          Internal data grouping will be somewhat cleaner if the
          multiple files from a single aggregator "session" are passed
          to this function in acquisition order.  In that case, call
          with flush_after=False.
  
          
docstring: Process the file specified by ``filename`` using a G3IndexedReader.
  Each frame from the file is passed to self.Process, with the
  optional index_info argument set to a dictionary containing
  the filename and byte_offset of the frame.
  
  Internal data grouping will be somewhat cleaner if the
  multiple files from a single aggregator "session" are passed
  to this function in acquisition order.  In that case, call
  with flush_after=False.
docstring_tokens: Process the file specified by ` ` filename ` ` using a G3IndexedReader . Each frame from the file is passed to self . Process with the optional index_info argument set to a dictionary containing the filename and byte_offset of the frame . Internal data grouping will be somewhat cleaner if the multiple files from a single aggregator " session " are passed to this function in acquisition order . In that case call with flush_after = False .
code: def process_file(self, filename, flush_after=True):
          """Process the file specified by ``filename`` using a G3IndexedReader.
          Each frame from the file is passed to self.Process, with the
          optional index_info argument set to a dictionary containing
          the filename and byte_offset of the frame.
  
          Internal data grouping will be somewhat cleaner if the
          multiple files from a single aggregator "session" are passed
          to this function in acquisition order.  In that case, call
          with flush_after=False.
  
          """
          reader = so3g.G3IndexedReader(filename)
          while True:
              info = {'filename': filename,
                      'byte_offset': reader.Tell()}
              frames = reader.Process(None)
              assert len(frames) <= 1
              if len(frames) == 0:
                  break
              self(frames[0], info)
          # Calling flush() here protects us against the odd case that
          # we process files from a single session in non-consecutive
          # order.  In that case the start' and 'end' times will get
          # messed up because we can't tell the stream has been
          # re-initialized.
          if flush_after:
              self.flush()
code_tokens: def process_file ( self , filename , flush_after = True ) : reader = so3g . G3IndexedReader ( filename ) while True : info = { 'filename' : filename , 'byte_offset' : reader . Tell ( ) } frames = reader . Process ( None ) assert len ( frames ) <= 1 if len ( frames ) == 0 : break self ( frames [ 0 ] , info ) if flush_after : self . flush ( )
short_docstring: Process the file specified by ``filename`` using a G3IndexedReader.
short_docstring_tokens: Process the file specified by ` ` filename ` ` using a G3IndexedReader .
comment: """Process the file specified by ``filename`` using a G3IndexedReader.
          Each frame from the file is passed to self.Process, with the
          optional index_info argument set to a dictionary containing
          the filename and byte_offset of the frame.
  
          Internal data grouping will be somewhat cleaner if the
          multiple files from a single aggregator "session" are passed
          to this function in acquisition order.  In that case, call
          with flush_after=False.
  
          """$SEP$# Calling flush() here protects us against the odd case that$SEP$# we process files from a single session in non-consecutive$SEP$# order.  In that case the start' and 'end' times will get$SEP$# messed up because we can't tell the stream has been$SEP$# re-initialized.