docstr: Collect character data chunks pending collation
  
  The parser breaks the data up into chunks of size depending on the
  buffer_size of the parser.  A large bit of character data, with
  standard parser buffer_size (such as 8K) can easily span many calls to
  this function.  We thus collect the chunks and process them when we
  hit start or end tags.
docstr_tok: ["Collect","character","data","chunks","pending","collation","The","parser","breaks","the","data","up","into","chunks","of","size","depending","on","the","buffer_size","of","the","parser",".","A","large","bit","of","character","data",",","with","standard","parser","buffer_size","(","such","as","8K",")","can","easily","span","many","calls","to","this","function",".","We","thus","collect","the","chunks","and","process","them","when","we","hit","start","or","end","tags","."]
code: def CharacterDataHandler(self, data):
      """Collect character data chunks pending collation
  
      The parser breaks the data up into chunks of size depending on the
      buffer_size of the parser.  A large bit of character data, with
      standard parser buffer_size (such as 8K) can easily span many calls to
      this function.  We thus collect the chunks and process them when we
      hit start or end tags.
      """
      if self._char_blocks is None:
          self._char_blocks = []
      self._char_blocks.append(data)
  
imports: import base64
  import os.path
  import sys
  import warnings
  import zlib
  from io import StringIO
  from xml.parsers.expat import ExpatError
  import numpy
  from ..nifti1 import data_type_codes, intent_codes, xform_codes
  from ..xmlutils import XmlParser
  from .gifti import GiftiCoordSystem, GiftiDataArray, GiftiImage, GiftiLabel, GiftiLabelTable, GiftiMetaData
  from .util import array_index_order_codes, gifti_encoding_codes, gifti_endian_codes
label_desc: Use image node_id 4 for calling the GiftiImageParser obj's underlying member method code with example usage: obj.CharacterDataHandler(data) without return types