code: def parse(cls, fptr, offset, length):
          
          num_bytes = offset + length - fptr.tell()
          read_buffer = fptr.read(num_bytes)
          # Extract the brand, minor version.
          (brand, minor_version) = struct.unpack_from('>4sI', read_buffer, 0)
          if sys.hexversion >= 0x030000:
              brand = brand.decode('utf-8')
  
          # Extract the compatibility list.  Each entry has 4 bytes.
          num_entries = int((length - 16) / 4)
          compatibility_list = []
          for j in range(int(num_entries)):
              entry, = struct.unpack_from('>4s', read_buffer, 8 + j * 4)
              if sys.hexversion >= 0x03000000:
                  try:
                      entry = entry.decode('utf-8')
                  except UnicodeDecodeError:
                      # The entry is invalid, but we've got code to catch this
                      # later on.
                      pass
  
              compatibility_list.append(entry)
  
          return cls(brand=brand, minor_version=minor_version,
                     compatibility_list=compatibility_list,
                     length=length, offset=offset)
docs: Parse JPEG 2000 file type box.
  
          Parameters
          ----------
          f : file
              Open file object.
          offset : int
              Start position of box in bytes.
          length : int
              Length of the box in bytes.
  
          Returns
          -------
          FileTypeBox
              Instance of the current file type box.