Class: Dependabot::Python::FileParser::PythonRequirementParser

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/python/file_parser/python_requirement_parser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency_files:) ⇒ PythonRequirementParser

Returns a new instance of PythonRequirementParser.



22
23
24
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 22

def initialize(dependency_files:)
  @dependency_files = dependency_files
end

Instance Attribute Details

#dependency_filesObject (readonly)

Returns the value of attribute dependency_files.



19
20
21
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 19

def dependency_files
  @dependency_files
end

Instance Method Details

#imputed_requirementsObject



41
42
43
44
45
46
47
48
49
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 41

def imputed_requirements
  requirement_files.flat_map do |file|
    T.must(file.content).lines
     .select { |l| l.include?(";") && l.include?("python") }
     .filter_map { |l| l.match(/python_version(?<req>.*?["'].*?['"])/) }
     .map { |re| T.must(re.named_captures.fetch("req")).gsub(/['"]/, "") }
     .select { |r| valid_requirement?(r) }
  end
end

#user_specified_requirementsObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/dependabot/python/file_parser/python_requirement_parser.rb', line 27

def user_specified_requirements
  [
    pipfile_python_requirement,
    pyproject_python_requirement,
    pip_compile_python_requirement,
    python_version_file_version,
    runtime_file_python_version,
    setup_file_requirement
  ].compact
end