class Dependabot::Uv::FileUpdater::CompileFileUpdater

def compile_file(filename)

def compile_file(filename)
  # Shell out to pip-compile, generate a new set of requirements.
  # This is slow, as pip-compile needs to do installs.
  options = compile_options(filename)
  options_fingerprint = compile_options_fingerprint(options)
  name_part = "pyenv exec uv pip compile " \
              "#{options} -P " \
              "#{dependency.name}"
  fingerprint_name_part = "pyenv exec uv pip compile " \
                          "#{options_fingerprint} -P " \
                          "<dependency_name>"
  version_part = "#{dependency.version} #{filename}"
  fingerprint_version_part = "<dependency_version> <filename>"
  # Don't escape pyenv `dep-name==version` syntax
  run_uv_compile_command(
    "#{SharedHelpers.escape_command(name_part)}==" \
    "#{SharedHelpers.escape_command(version_part)}",
    allow_unsafe_shell_command: true,
    fingerprint: "#{fingerprint_name_part}==#{fingerprint_version_part}"
  )
rescue SharedHelpers::HelperSubprocessFailed => e
  retry_count ||= 0
  retry_count += 1
  if compilation_error?(e) && retry_count <= 1
    @build_isolation = false
    retry
  end
  raise
end