Class: Dependabot::Python::FileParser::PythonRequirementParser
- Inherits:
-
Object
- Object
- Dependabot::Python::FileParser::PythonRequirementParser
- Defined in:
- lib/dependabot/python/file_parser/python_requirement_parser.rb
Instance Attribute Summary collapse
-
#dependency_files ⇒ Object
readonly
Returns the value of attribute dependency_files.
Instance Method Summary collapse
-
#imputed_requirements ⇒ Object
TODO: Add better Python version detection using dependency versions (e.g., Django 2.x implies Python 3).
-
#initialize(dependency_files:) ⇒ PythonRequirementParser
constructor
A new instance of PythonRequirementParser.
- #user_specified_requirements ⇒ Object
Constructor Details
#initialize(dependency_files:) ⇒ PythonRequirementParser
Returns a new instance of PythonRequirementParser.
16 17 18 |
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 16 def initialize(dependency_files:) @dependency_files = dependency_files end |
Instance Attribute Details
#dependency_files ⇒ Object (readonly)
Returns the value of attribute dependency_files.
14 15 16 |
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 14 def dependency_files @dependency_files end |
Instance Method Details
#imputed_requirements ⇒ Object
TODO: Add better Python version detection using dependency versions (e.g., Django 2.x implies Python 3)
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 32 def imputed_requirements requirement_files.flat_map do |file| file.content.lines. select { |l| l.include?(";") && l.include?("python") }. map { |l| l.match(/python_version(?<req>.*?["'].*?['"])/) }. compact. map { |re| re.named_captures.fetch("req").gsub(/['"]/, "") }. select do |r| requirement_class.new(r) true rescue Gem::Requirement::BadRequirementError false end end end |
#user_specified_requirements ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 20 def user_specified_requirements [ pipfile_python_requirement, pyproject_python_requirement, python_version_file_version, runtime_file_python_version, setup_file_requirement ].compact end |