def __init__(self, description, url, licenses, developers, scm, name=None):
    def validate_nonempty_list(list_name, item, expected_type):
      assert_list(item, expected_type=expected_type, can_be_none=False, key_arg='roles', allowable=(list,))
      if not item:
        raise ValueError('At least 1 entry is required in the {} list.'.format(list_name))
      return item

    self.description = _validate_string('description', description)
    self.url = _validate_string('url', url)
    self.licenses = validate_nonempty_list('licenses', licenses, License)
    self.developers = validate_nonempty_list('developers', developers, Developer)

    if not isinstance(scm, Scm):
      raise ValueError("scm must be an instance of Scm")
    self.scm = scm

    self.name = _validate_maybe_string('name', name)
All parameters are required except for `name` to pass OSSRH requirements.
dataset/ETHPy150Open pantsbuild/pants/src/python/pants/backend/jvm/ossrh_publication_metadata.py/OSSRHPublicationMetadata.__init__