Class: Dependabot::Python::UpdateChecker::PipVersionResolver
- Inherits:
-
Object
- Object
- Dependabot::Python::UpdateChecker::PipVersionResolver
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/python/update_checker/pip_version_resolver.rb,
lib/dependabot/python/update_checker/pip_version_resolver/marker_evaluator.rb
Overview
This resolver intentionally co-locates resolution, marker handling, and constraints matching to keep compatibility decisions in one place. rubocop:disable Metrics/ClassLength
Defined Under Namespace
Classes: MarkerEvaluator
Instance Method Summary collapse
-
#initialize(dependency:, dependency_files:, credentials:, ignored_versions:, security_advisories:, update_cooldown: nil, raise_on_ignored: false) ⇒ PipVersionResolver
constructor
A new instance of PipVersionResolver.
- #latest_resolvable_version ⇒ Object
- #latest_resolvable_version_with_no_unlock ⇒ Object
- #lowest_resolvable_security_fix_version ⇒ Object
Constructor Details
#initialize(dependency:, dependency_files:, credentials:, ignored_versions:, security_advisories:, update_cooldown: nil, raise_on_ignored: false) ⇒ PipVersionResolver
Returns a new instance of PipVersionResolver.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/dependabot/python/update_checker/pip_version_resolver.rb', line 39 def initialize( dependency:, dependency_files:, credentials:, ignored_versions:, security_advisories:, update_cooldown: nil, raise_on_ignored: false ) @dependency = dependency @dependency_files = dependency_files @credentials = credentials @ignored_versions = ignored_versions @security_advisories = security_advisories @update_cooldown = update_cooldown @raise_on_ignored = raise_on_ignored @latest_version_finder = T.let(nil, T.nilable(LatestVersionFinder)) @python_requirement_parser = T.let(nil, T.nilable(FileParser::PythonRequirementParser)) @language_version_manager = T.let(nil, T.nilable(LanguageVersionManager)) @marker_evaluator = T.let(nil, T.nilable(MarkerEvaluator)) @registry_json_urls = T.let(nil, T.nilable(T::Array[String])) @transitive_requirements_cache = T.let({}, T::Hash[String, T::Array[String]]) @transitive_requirement_available_cache = T.let({}, T::Hash[String, T::Boolean]) @constraints_files = T.let(nil, T.nilable(T::Array[String])) @constraints_file_basenames = T.let(nil, T.nilable(T::Array[String])) @requirement_file_directories = T.let(nil, T.nilable(T::Array[String])) @pyproject_content_cache = T.let({}, T::Hash[String, T::Hash[String, T.untyped]]) end |
Instance Method Details
#latest_resolvable_version ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/dependabot/python/update_checker/pip_version_resolver.rb', line 69 def latest_resolvable_version candidate = latest_version_finder.latest_version(language_version: language_version_manager.python_version) return candidate if candidate.nil? return candidate if compatible_with_pinned_pyproject_dependencies?(candidate) nil end |
#latest_resolvable_version_with_no_unlock ⇒ Object
78 79 80 81 |
# File 'lib/dependabot/python/update_checker/pip_version_resolver.rb', line 78 def latest_resolvable_version_with_no_unlock latest_version_finder .latest_version_with_no_unlock(language_version: language_version_manager.python_version) end |
#lowest_resolvable_security_fix_version ⇒ Object
84 85 86 87 88 89 90 91 |
# File 'lib/dependabot/python/update_checker/pip_version_resolver.rb', line 84 def lowest_resolvable_security_fix_version candidate = latest_version_finder .lowest_security_fix_version(language_version: language_version_manager.python_version) return candidate if candidate.nil? return candidate if compatible_with_pinned_pyproject_dependencies?(candidate) nil end |