Class: Dependabot::Python::UpdateChecker::PipCompileVersionResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/python/update_checker/pip_compile_version_resolver.rb

Overview

This class does version resolution for pip-compile. Its approach is:

  • Unlock the dependency we’re checking in the requirements.in file

  • Run ‘pip-compile` and see what the result is

Constant Summary collapse

VERSION_REGEX =
/[0-9]+(?:\.[A-Za-z0-9\-_]+)*/.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, dependency_files:, credentials:, unlock_requirement:, latest_allowable_version:) ⇒ PipCompileVersionResolver

Returns a new instance of PipCompileVersionResolver.



25
26
27
28
29
30
31
32
# File 'lib/dependabot/python/update_checker/pip_compile_version_resolver.rb', line 25

def initialize(dependency:, dependency_files:, credentials:,
               unlock_requirement:, latest_allowable_version:)
  @dependency               = dependency
  @dependency_files         = dependency_files
  @credentials              = credentials
  @latest_allowable_version = latest_allowable_version
  @unlock_requirement       = unlock_requirement
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



23
24
25
# File 'lib/dependabot/python/update_checker/pip_compile_version_resolver.rb', line 23

def credentials
  @credentials
end

#dependencyObject (readonly)

Returns the value of attribute dependency.



23
24
25
# File 'lib/dependabot/python/update_checker/pip_compile_version_resolver.rb', line 23

def dependency
  @dependency
end

#dependency_filesObject (readonly)

Returns the value of attribute dependency_files.



23
24
25
# File 'lib/dependabot/python/update_checker/pip_compile_version_resolver.rb', line 23

def dependency_files
  @dependency_files
end

Instance Method Details

#latest_resolvable_versionObject



34
35
36
37
38
39
# File 'lib/dependabot/python/update_checker/pip_compile_version_resolver.rb', line 34

def latest_resolvable_version
  return @latest_resolvable_version if @resolution_already_attempted

  @resolution_already_attempted = true
  @latest_resolvable_version ||= fetch_latest_resolvable_version
end