Skip to content

Commit 462e8fa

Browse files
authored
Merge pull request #13650 from dependabot/uv-alias-requirement-parser-delete-pipenv-runner
Alias RequirementParser to Python and remove dead code from uv
2 parents 5bf7456 + 1b46197 commit 462e8fa

File tree

4 files changed

+5
-650
lines changed

4 files changed

+5
-650
lines changed

uv/lib/dependabot/uv/file_parser/setup_file_parser.rb

Lines changed: 0 additions & 194 deletions
This file was deleted.

uv/lib/dependabot/uv/pipenv_runner.rb

Lines changed: 0 additions & 110 deletions
This file was deleted.
Lines changed: 5 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,12 @@
11
# typed: strong
22
# frozen_string_literal: true
33

4+
require "sorbet-runtime"
5+
require "dependabot/python/requirement_parser"
6+
47
module Dependabot
58
module Uv
6-
class RequirementParser
7-
NAME = /[a-zA-Z0-9](?:[a-zA-Z0-9\-_\.]*[a-zA-Z0-9])?/
8-
EXTRA = /[a-zA-Z0-9\-_\.]+/
9-
COMPARISON = /===|==|>=|<=|<|>|~=|!=/
10-
VERSION = /([1-9][0-9]*!)?[0-9]+[a-zA-Z0-9\-_.*]*(\+[0-9a-zA-Z]+(\.[0-9a-zA-Z]+)*)?/
11-
12-
REQUIREMENT = /(?<comparison>#{COMPARISON})\s*\\?\s*v?(?<version>#{VERSION})/
13-
HASH = /--hash=(?<algorithm>.*?):(?<hash>.*?)(?=\s|\\|$)/
14-
REQUIREMENTS = /#{REQUIREMENT}(\s*,\s*\\?\s*#{REQUIREMENT})*/
15-
HASHES = /#{HASH}(\s*\\?\s*#{HASH})*/
16-
MARKER_OP = /\s*(#{COMPARISON}|(\s*in)|(\s*not\s*in))/
17-
PYTHON_STR_C = %r{[a-zA-Z0-9\s\(\)\.\{\}\-_\*#:;/\?\[\]!~`@\$%\^&=\+\|<>]}
18-
PYTHON_STR = /('(#{PYTHON_STR_C}|")*'|"(#{PYTHON_STR_C}|')*")/
19-
ENV_VAR =
20-
/python_version|python_full_version|os_name|sys_platform|
21-
platform_release|platform_system|platform_version|platform_machine|
22-
platform_python_implementation|implementation_name|
23-
implementation_version/
24-
MARKER_VAR = /\s*(#{ENV_VAR}|#{PYTHON_STR})/
25-
MARKER_EXPR_ONE = /#{MARKER_VAR}#{MARKER_OP}#{MARKER_VAR}/
26-
MARKER_EXPR = /(#{MARKER_EXPR_ONE}|\(\s*|\s*\)|\s+and\s+|\s+or\s+)+/
27-
28-
INSTALL_REQ_WITH_REQUIREMENT =
29-
/\s*\\?\s*(?<name>#{NAME})
30-
\s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
31-
\s*\\?\s*\(?(?<requirements>#{REQUIREMENTS})\)?
32-
\s*\\?\s*(;\s*(?<markers>#{MARKER_EXPR}))?
33-
\s*\\?\s*(?<hashes>#{HASHES})?
34-
\s*#*\s*(?<comment>.+)?
35-
/x
36-
37-
INSTALL_REQ_WITHOUT_REQUIREMENT =
38-
/^\s*\\?\s*(?<name>#{NAME})
39-
\s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
40-
\s*\\?\s*(;\s*(?<markers>#{MARKER_EXPR}))?
41-
\s*\\?\s*(?<hashes>#{HASHES})?
42-
\s*#*\s*(?<comment>.+)?$
43-
/x
44-
45-
VALID_REQ_TXT_REQUIREMENT =
46-
/^\s*\\?\s*(?<name>#{NAME})
47-
\s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
48-
\s*\\?\s*\(?(?<requirements>#{REQUIREMENTS})?\)?
49-
\s*\\?\s*(;\s*(?<markers>#{MARKER_EXPR}))?
50-
\s*\\?\s*(?<hashes>#{HASHES})?
51-
\s*(\#+\s*(?<comment>.*))?$
52-
/x
53-
54-
NAME_WITH_EXTRAS =
55-
/\s*\\?\s*(?<name>#{NAME})
56-
(\s*\\?\s*\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
57-
/x
58-
end
9+
# UV uses the same Python requirement parsing regex patterns (PEP 508)
10+
RequirementParser = Dependabot::Python::RequirementParser
5911
end
6012
end

0 commit comments

Comments
 (0)