docs: def upload_files_and_create_package(
      ctx,
      opts,
      package_type,
      owner_repo,
      dry_run,
      no_wait_for_sync,
      wait_interval,
      skip_errors,
      sync_attempts,
      **kwargs
  ):
      """Upload package files and create a new package."""
      # pylint: disable=unused-argument
      owner, repo = owner_repo
  
      # 1. Validate package create parameters
      validate_create_package(
          ctx=ctx,
          opts=opts,
          owner=owner,
          repo=repo,
          package_type=package_type,
          skip_errors=skip_errors,
          **kwargs
      )
  
      # 2. Validate file upload parameters
      md5_checksums = {}
      for k, v in kwargs.items():
          if not v or not k.endswith("_file"):
              continue
  
          md5_checksums[k] = validate_upload_file(
              ctx=ctx,
              opts=opts,
              owner=owner,
              repo=repo,
              filepath=v,
              skip_errors=skip_errors,
          )
  
      if dry_run:
          click.echo()
          click.secho("You requested a dry run so skipping upload.", fg="yellow")
          return
  
      # 3. Upload any arguments that look like files
      for k, v in kwargs.items():
          if not v or not k.endswith("_file"):
              continue
  
          kwargs[k] = upload_file(
              ctx=ctx,
              opts=opts,
              owner=owner,
              repo=repo,
              filepath=v,
              skip_errors=skip_errors,
              md5_checksum=md5_checksums[k],
          )
  
      # 4. Create the package with package files and additional arguments
      _, slug = create_package(
          ctx=ctx,
          opts=opts,
          owner=owner,
          repo=repo,
          package_type=package_type,
          skip_errors=skip_errors,
          **kwargs
      )
  
      if no_wait_for_sync:
          return
  
      # 5. (optionally) Wait for the package to synchronise
      wait_for_package_sync(
          ctx=ctx,
          opts=opts,
          owner=owner,
          repo=repo,
          slug=slug,
          wait_interval=wait_interval,
          skip_errors=skip_errors,
          attempts=sync_attempts,
      )