code: def read_long(fo, writer_schema=None, reader_schema=None):
      
      c = fo.read(1)
  
      # We do EOF checking only here, since most reader start here
      if not c:
          raise StopIteration
  
      b = ord(c)
      n = b & 0x7F
      shift = 7
  
      while (b & 0x80) != 0:
          b = ord(fo.read(1))
          n |= (b & 0x7F) << shift
          shift += 7
  
      return (n >> 1) ^ -(n & 1)
docs: int and long values are written using variable-length, zig-zag
      coding.