Sha256: 812f864630c6a80457fdf8f4306f6e7652f7bb48b469615abc2413bc5e0e182d

Contents?: true

Size: 1.12 KB

Versions: 15

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

class PythonRequirementParser
  NAME = /[a-zA-Z0-9\-_\.]+/.freeze
  EXTRA = /[a-zA-Z0-9\-_\.]+/.freeze
  COMPARISON = /===|==|>=|<=|<|>|~=|!=/.freeze
  VERSION = /[0-9]+[a-zA-Z0-9\-_\.*]*(\+[0-9a-zA-Z]+(\.[0-9a-zA-Z]+)*)?/.freeze
  REQUIREMENT =
    /(?<comparison>#{COMPARISON})\s*\\?\s*(?<version>#{VERSION})/.freeze
  HASH = /--hash=(?<algorithm>.*?):(?<hash>.*?)(?=\s|$)/.freeze
  REQUIREMENTS = /#{REQUIREMENT}(\s*,\s*\\?\s*#{REQUIREMENT})*/.freeze
  HASHES = /#{HASH}(\s*\\?\s*#{HASH})*/.freeze

  INSTALL_REQ_WITH_REQUIREMENT =
    /\s*\\?\s*(?<name>#{NAME})
      \s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
      \s*\\?\s*(?<requirements>#{REQUIREMENTS})
      \s*\\?\s*(?<hashes>#{HASHES})?
      \s*#*\s*(?<comment>.+)?
    /x.freeze

  INSTALL_REQ_WITHOUT_REQUIREMENT =
    /^\s*\\?\s*(?<name>#{NAME})
      \s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
      \s*\\?\s*(?<hashes>#{HASHES})?
      \s*#*\s*(?<comment>.+)?$
    /x.freeze

  NAME_WITH_EXTRAS =
    /\s*\\?\s*(?<name>#{NAME})
      (\s*\\?\s*\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
    /x.freeze
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
dependabot-core-0.78.0 lib/python_requirement_parser.rb
dependabot-core-0.77.2 lib/python_requirement_parser.rb
dependabot-core-0.77.1 lib/python_requirement_parser.rb
dependabot-core-0.77.0 lib/python_requirement_parser.rb
dependabot-core-0.76.11 lib/python_requirement_parser.rb
dependabot-core-0.76.10 lib/python_requirement_parser.rb
dependabot-core-0.76.9 lib/python_requirement_parser.rb
dependabot-core-0.76.8 lib/python_requirement_parser.rb
dependabot-core-0.76.7 lib/python_requirement_parser.rb
dependabot-core-0.76.6 lib/python_requirement_parser.rb
dependabot-core-0.76.5 lib/python_requirement_parser.rb
dependabot-core-0.76.4 lib/python_requirement_parser.rb
dependabot-core-0.76.3 lib/python_requirement_parser.rb
dependabot-core-0.76.2 lib/python_requirement_parser.rb
dependabot-core-0.76.1 lib/python_requirement_parser.rb