code: def read_pkg_file(self, file):
      
      msg = message_from_file(file)
  
      def _read_field(name):
          value = msg[name]
          if value == 'UNKNOWN':
              return None
          return value
  
      def _read_list(name):
          values = msg.get_all(name, None)
          if values == []:
              return None
          return values
  
      self.metadata_version = StrictVersion(msg['metadata-version'])
      self.name = _read_field('name')
      self.version = _read_field('version')
      self.description = _read_field('summary')
      # we are filling author only.
      self.author = _read_field('author')
      self.maintainer = None
      self.author_email = _read_field('author-email')
      self.maintainer_email = None
      self.url = _read_field('home-page')
      self.license = _read_field('license')
  
      if 'download-url' in msg:
          self.download_url = _read_field('download-url')
      else:
          self.download_url = None
  
      self.long_description = _read_field('description')
      self.description = _read_field('summary')
  
      if 'keywords' in msg:
          self.keywords = _read_field('keywords').split(',')
  
      self.platforms = _read_list('platform')
      self.classifiers = _read_list('classifier')
  
      # PEP 314 - these fields only exist in 1.1
      if self.metadata_version == StrictVersion('1.1'):
          self.requires = _read_list('requires')
          self.provides = _read_list('provides')
          self.obsoletes = _read_list('obsoletes')
      else:
          self.requires = None
          self.provides = None
          self.obsoletes = None
docs: Reads the metadata values from a file object.