Class: Dependabot::Python::UpdateChecker::PoetryVersionResolver
- Inherits:
-
Object
- Object
- Dependabot::Python::UpdateChecker::PoetryVersionResolver
- Defined in:
- lib/dependabot/python/update_checker/poetry_version_resolver.rb
Overview
This class does version resolution for pyproject.toml files.
Constant Summary collapse
- GIT_REFERENCE_NOT_FOUND_REGEX =
/ (?:'git'.*pypoetry-git-(?<name>.+?).{8}', 'checkout', '(?<tag>.+?)' | Failed to checkout (?<tag>.+?) (?<url>.+?).git at '(?<tag>.+?)' | ...Failedtoclone (?<url>.+?).gitat'(?<tag>.+?)', verifyrefexistsonremote) /x
- GIT_DEPENDENCY_UNREACHABLE_REGEX =
TODO: remove the first clause and | when py3.6 support is EoL
/ (?:'\['git', \s+'clone', \s+'--recurse-submodules', \s+'(--)?', \s+'(?<url>.+?)'.* \s+exit\s+status\s+128 | \s+Failed\sto\sclone \s+(?<url>.+?), \s+check\syour\sgit\sconfiguration) /mx
Instance Attribute Summary collapse
-
#credentials ⇒ Object
readonly
TODO: remove the first clause and | when py3.6 support is EoL.
-
#dependency ⇒ Object
readonly
TODO: remove the first clause and | when py3.6 support is EoL.
-
#dependency_files ⇒ Object
readonly
TODO: remove the first clause and | when py3.6 support is EoL.
Instance Method Summary collapse
-
#initialize(dependency:, dependency_files:, credentials:) ⇒ PoetryVersionResolver
constructor
A new instance of PoetryVersionResolver.
- #latest_resolvable_version(requirement: nil) ⇒ Object
- #resolvable?(version:) ⇒ Boolean
Constructor Details
#initialize(dependency:, dependency_files:, credentials:) ⇒ PoetryVersionResolver
Returns a new instance of PoetryVersionResolver.
54 55 56 57 58 |
# File 'lib/dependabot/python/update_checker/poetry_version_resolver.rb', line 54 def initialize(dependency:, dependency_files:, credentials:) @dependency = dependency @dependency_files = dependency_files @credentials = credentials end |
Instance Attribute Details
#credentials ⇒ Object (readonly)
TODO: remove the first clause and | when py3.6 support is EoL
52 53 54 |
# File 'lib/dependabot/python/update_checker/poetry_version_resolver.rb', line 52 def credentials @credentials end |
#dependency ⇒ Object (readonly)
TODO: remove the first clause and | when py3.6 support is EoL
52 53 54 |
# File 'lib/dependabot/python/update_checker/poetry_version_resolver.rb', line 52 def dependency @dependency end |
#dependency_files ⇒ Object (readonly)
TODO: remove the first clause and | when py3.6 support is EoL
52 53 54 |
# File 'lib/dependabot/python/update_checker/poetry_version_resolver.rb', line 52 def dependency_files @dependency_files end |
Instance Method Details
#latest_resolvable_version(requirement: nil) ⇒ Object
60 61 62 63 64 65 |
# File 'lib/dependabot/python/update_checker/poetry_version_resolver.rb', line 60 def latest_resolvable_version(requirement: nil) version_string = fetch_latest_resolvable_version_string(requirement: requirement) version_string.nil? ? nil : Python::Version.new(version_string) end |
#resolvable?(version:) ⇒ Boolean
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/dependabot/python/update_checker/poetry_version_resolver.rb', line 67 def resolvable?(version:) @resolvable ||= {} return @resolvable[version] if @resolvable.key?(version) @resolvable[version] = if fetch_latest_resolvable_version_string(requirement: "==#{version}") true else false end rescue SharedHelpers::HelperSubprocessFailed => e raise unless e..include?("SolverProblemError") || # TODO: Remove once py3.6 is EoL e..include?("version solving failed.") @resolvable[version] = false end |