text: #!/usr/bin/env python
  # -*- coding: utf-8 -*-
  # ===------------------------------*  Python  *------------------------------===
  #             THIS FILE IS GENERATED BY INVAR. DO NOT EDIT !!!
  # ===------------------------------------------------------------------------===
  
  from TestAbcConflict import TestAbcConflict
  from TestAbcGender import Gender
  from TestXyzConflict import TestXyzConflict
  try:
      from cStringIO import StringIO
  except:
      from StringIO import StringIO
  from InvarCodec import DataWriter
  from InvarCodec import DataReader
  
  class Info(object):
  
      """Test comments"""
      CRC32_ = 0x120FDCDB
      SIZE_  = 81
  
      __slots__ = (
          '_key',
          '_number01',
          '_number02',
          '_number03',
          '_number04',
          '_number05',
          '_number06',
          '_number07',
          '_number08',
          '_number09',
          '_number10',
          '_isReal',
          '_s',
          '_world',
          '_gender',
          '_next',
          '_conflict',
          '_conflicts',
          '_numbers',
          '_mapInfoG',
          '_mapGenderInfo',
          '_mapDouble',
          '_hotfix')
     #__slots__
  
      def __init__(self):
          self._key           = 123
          self._number01      = -1
          self._number02      = -1
          self._number03      = -1
          self._number04      = -1
          self._number05      = 0
          self._number06      = 0
          self._number07      = 0
          self._number08      = 0
          self._number09      = 0.0
          self._number10      = 0.00
          self._isReal        = False
          self._s             = 'hello'
          self._world         = []
          self._gender        = Gender.NONE
          self._next          = None
          self._conflict      = TestAbcConflict()
          self._conflicts     = []
          self._numbers       = []
          self._mapInfoG      = {}
          self._mapGenderInfo = {}
          self._mapDouble     = {}
          self._hotfix        = None
     #def __init__
  
      def __str__(self):
          s = StringIO()
          s.write(u'{')
          s.write(u' ')
          s.write(u'Info')
          s.write(u',')
          s.write(u' ')
          s.write(u'key')
          s.write(u':')
          s.write(unicode(self._key))
          s.write(u',')
          s.write(u' ')
          s.write(u'number01')
          s.write(u':')
          s.write(unicode(self._number01))
          s.write(u',')
          s.write(u' ')
          s.write(u'number02')
          s.write(u':')
          s.write(unicode(self._number02))
          s.write(u',')
          s.write(u' ')
          s.write(u'number03')
          s.write(u':')
          s.write(unicode(self._number03))
          s.write(u',')
          s.write(u' ')
          s.write(u'number04')
          s.write(u':')
          s.write(unicode(self._number04))
          s.write(u',')
          s.write(u' ')
          s.write(u'number05')
          s.write(u':')
          s.write(unicode(self._number05))
          s.write(u',')
          s.write(u' ')
          s.write(u'number06')
          s.write(u':')
          s.write(unicode(self._number06))
          s.write(u',')
          s.write(u' ')
          s.write(u'number07')
          s.write(u':')
          s.write(unicode(self._number07))
          s.write(u',')
          s.write(u' ')
          s.write(u'number08')
          s.write(u':')
          s.write(unicode(self._number08))
          s.write(u',')
          s.write(u' ')
          s.write(u'number09')
          s.write(u':')
          s.write(unicode(self._number09))
          s.write(u',')
          s.write(u' ')
          s.write(u'number10')
          s.write(u':')
          s.write(unicode(self._number10))
          s.write(u',')
          s.write(u' ')
          s.write(u'isReal')
          s.write(u':')
          s.write(unicode(self._isReal))
          s.write(u',')
          s.write(u' ')
          s.write(u's')
          s.write(u':')
          s.write(u'"')
          s.write(self._s)
          s.write(u'"')
          s.write(u',')
          s.write(u' ')
          s.write(u'world')
          s.write(u':')
          s.write(u'(')
          s.write(str(len(self._world)))
          s.write(u')')
          s.write(u',')
          s.write(u' ')
          s.write(u'gender')
          s.write(u':')
          s.write(unicode(self._gender))
          s.write(u',')
          s.write(u' ')
          s.write(u'next')
          s.write(u':')
          if self._next is None:
              s.write(u'null')
          else:
              s.write(u'<')
              s.write(u'Info')
              s.write(u'>')
          s.write(u',')
          s.write(u' ')
          s.write(u'conflict')
          s.write(u':')
          s.write(u'<')
          s.write(u'TestAbcConflict')
          s.write(u'>')
          s.write(u',')
          s.write(u' ')
          s.write(u'conflicts')
          s.write(u':')
          s.write(u'(')
          s.write(str(len(self._conflicts)))
          s.write(u')')
          s.write(u',')
          s.write(u' ')
          s.write(u'numbers')
          s.write(u':')
          s.write(u'(')
          s.write(str(len(self._numbers)))
          s.write(u')')
          s.write(u',')
          s.write(u' ')
          s.write(u'mapInfoG')
          s.write(u':')
          s.write(u'[')
          s.write(str(len(self._mapInfoG)))
          s.write(u']')
          s.write(u',')
          s.write(u' ')
          s.write(u'mapGenderInfo')
          s.write(u':')
          s.write(u'[')
          s.write(str(len(self._mapGenderInfo)))
          s.write(u']')
          s.write(u',')
          s.write(u' ')
          s.write(u'mapDouble')
          s.write(u':')
          s.write(u'[')
          s.write(str(len(self._mapDouble)))
          s.write(u']')
          s.write(u',')
          s.write(u' ')
          s.write(u'hotfix')
          s.write(u':')
          if self._hotfix is None:
              s.write(u'null')
          else:
              s.write(u'[')
              s.write(str(len(self._hotfix)))
              s.write(u']')
          s.write(u' ')
          s.write(u'}')
          result = s.getvalue()
          s.close()
          return result
     #def __str__
  
      def __len__(self):
          size = Info.SIZE_
          size += len(self._s)
          size += 4
          for n1 in self._world:
              size += len(n1)
          if self._next is not None:
              size += len(self._next)
          size += len(self._conflict)
          size += 4
          for n1 in self._conflicts:
              size += len(n1)
          if len(self._numbers) > 0:
              size += len(self._numbers) * 8
          size += 4
          for (k1,v1) in self._mapInfoG.items():
              size += len(k1)
              size += sizeof(int32_t)
          size += 4
          for (k1,v1) in self._mapGenderInfo.items():
              size += sizeof(int32_t)
              size += len(v1)
          if len(self._mapDouble) > 0:
              size += len(self._mapDouble) * 12
          if self._hotfix is not None:
              size += 4
              for (k1,v1) in self._hotfix.items():
                  size += len(k1)
                  size += len(v1)
          return size
     #def __len__
  
      def read(r):
          self._key = r.readInt32()
          self._number01 = r.readInt8()
          self._number02 = r.readInt16()
          self._number03 = r.readInt32()
          self._number04 = r.readInt64()
          self._number05 = r.readUInt8()
          self._number06 = r.readUInt16()
          self._number07 = r.readUInt32()
          self._number08 = r.readUInt64()
          self._number09 = r.readSingle()
          self._number10 = r.readDouble()
          self._isReal = r.readBoolean()
          self._s = r.readString()
          lenWorld = r.readUInt32()
          num = 0
          while num < lenWorld:
              num += 1
              n1 = r.readString()
              self._world.append(n1)
          self._gender = r.readInt32()
          nextExists = r.readInt8()
          if 0x01 == nextExists:
              if self._next == None:
                  self._next = Info()
              self._next.read(r)
          elif 0x00 == nextExists:
              self._next = None
          else:
              raise InvarError(497, 'Protoc read error: The value of \'nextExists\' is invalid.')
          self._conflict.read(r)
          lenConflicts = r.readUInt32()
          num = 0
          while num < lenConflicts:
              num += 1
              n1 = TestXyzConflict()
              n1.read(r)
              self._conflicts.append(n1)
          lenNumbers = r.readUInt32()
          num = 0
          while num < lenNumbers:
              num += 1
              n1 = r.readDouble()
              self._numbers.append(n1)
          lenMapInfoG = r.readUInt32()
          num = 0
          while num < lenMapInfoG:
              num += 1
              k1 = Info()
              k1.read(r)
              v1 = r.readInt32()
              self._mapInfoG[k1] = v1
          lenMapGenderInfo = r.readUInt32()
          num = 0
          while num < lenMapGenderInfo:
              num += 1
              k1 = r.readInt32()
              v1 = Info()
              v1.read(r)
              self._mapGenderInfo[k1] = v1
          lenMapDouble = r.readUInt32()
          num = 0
          while num < lenMapDouble:
              num += 1
              k1 = r.readInt32()
              v1 = r.readDouble()
              self._mapDouble[k1] = v1
          hotfixExists = r.readInt8()
          if 0x01 == hotfixExists:
              if self._hotfix == None:
                  self._hotfix = dict()
              lenHotfix = r.readUInt32()
              num = 0
              while num < lenHotfix:
                  num += 1
                  k1 = r.readString()
                  v1 = r.readString()
                  self._hotfix[k1] = v1
          elif 0x00 == hotfixExists:
              self._hotfix = None
          else:
              raise InvarError(498, 'Protoc read error: The value of \'hotfixExists\' is invalid.')
     #def read
  
      def write(w):
          w.writeInt32(self._key)
          w.writeInt8(self._number01)
          w.writeInt16(self._number02)
          w.writeInt32(self._number03)
          w.writeInt64(self._number04)
          w.writeUInt8(self._number05)
          w.writeUInt16(self._number06)
          w.writeUInt32(self._number07)
          w.writeUInt64(self._number08)
          w.writeFloat(self._number09)
          w.writeDouble(self._number10)
          w.writeBool(self._isReal)
          w.writeString(self._s)
          w.writeUInt32(len(self._world))
          for n1 in self._world:
              w.writeString(n1)
          w.writeInt32(self._gender)
          if self._next != None:
              w.writeUInt8(0x01)
              self._next.write(w)
          else:
              w.writeUInt8(0x00)
          self._conflict.write(w)
          w.writeUInt32(len(self._conflicts))
          for n1 in self._conflicts:
              n1.write(w)
          w.writeUInt32(len(self._numbers))
          for n1 in self._numbers:
              w.writeDouble(n1)
          w.writeUInt32(len(self._mapInfoG))
          for (k1,v1) in self._mapInfoG.items():
              k1.write(w)
              w.writeInt32(v1)
          w.writeUInt32(len(self._mapGenderInfo))
          for (k1,v1) in self._mapGenderInfo.items():
              w.writeInt32(k1)
              v1.write(w)
          w.writeUInt32(len(self._mapDouble))
          for (k1,v1) in self._mapDouble.items():
              w.writeInt32(k1)
              w.writeDouble(v1)
          if self._hotfix != None:
              w.writeUInt8(0x01)
              w.writeUInt32(len(self._hotfix))
              for (k1,v1) in self._hotfix.items():
                  w.writeString(k1)
                  w.writeString(v1)
          else:
              w.writeUInt8(0x00)
     #def write
  
  #class Info
  
  if '__main__' == __name__:
      print('dir(Info()) =>\n' + '\n'.join(dir(Info())))
      print('Info.__doc__ => ' + Info.__doc__)
      print('Info.__len__ => ' + str(len(Info())))
      print('Info.__str__ => ' + str(Info()))
  