dependabot-uv 0.299.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/helpers/build +34 -0
- data/helpers/lib/__init__.py +0 -0
- data/helpers/lib/hasher.py +36 -0
- data/helpers/lib/parser.py +270 -0
- data/helpers/requirements.txt +13 -0
- data/helpers/run.py +22 -0
- data/lib/dependabot/uv/authed_url_builder.rb +31 -0
- data/lib/dependabot/uv/file_fetcher.rb +328 -0
- data/lib/dependabot/uv/file_parser/pipfile_files_parser.rb +192 -0
- data/lib/dependabot/uv/file_parser/pyproject_files_parser.rb +345 -0
- data/lib/dependabot/uv/file_parser/python_requirement_parser.rb +185 -0
- data/lib/dependabot/uv/file_parser/setup_file_parser.rb +193 -0
- data/lib/dependabot/uv/file_parser.rb +437 -0
- data/lib/dependabot/uv/file_updater/compile_file_updater.rb +576 -0
- data/lib/dependabot/uv/file_updater/pyproject_preparer.rb +124 -0
- data/lib/dependabot/uv/file_updater/requirement_file_updater.rb +73 -0
- data/lib/dependabot/uv/file_updater/requirement_replacer.rb +214 -0
- data/lib/dependabot/uv/file_updater.rb +105 -0
- data/lib/dependabot/uv/language.rb +76 -0
- data/lib/dependabot/uv/language_version_manager.rb +114 -0
- data/lib/dependabot/uv/metadata_finder.rb +186 -0
- data/lib/dependabot/uv/name_normaliser.rb +26 -0
- data/lib/dependabot/uv/native_helpers.rb +38 -0
- data/lib/dependabot/uv/package_manager.rb +54 -0
- data/lib/dependabot/uv/pip_compile_file_matcher.rb +38 -0
- data/lib/dependabot/uv/pipenv_runner.rb +108 -0
- data/lib/dependabot/uv/requirement.rb +163 -0
- data/lib/dependabot/uv/requirement_parser.rb +60 -0
- data/lib/dependabot/uv/update_checker/index_finder.rb +227 -0
- data/lib/dependabot/uv/update_checker/latest_version_finder.rb +297 -0
- data/lib/dependabot/uv/update_checker/pip_compile_version_resolver.rb +506 -0
- data/lib/dependabot/uv/update_checker/pip_version_resolver.rb +73 -0
- data/lib/dependabot/uv/update_checker/requirements_updater.rb +391 -0
- data/lib/dependabot/uv/update_checker.rb +317 -0
- data/lib/dependabot/uv/version.rb +321 -0
- data/lib/dependabot/uv.rb +35 -0
- metadata +306 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require "dependabot/version"
|
|
5
|
+
require "dependabot/utils"
|
|
6
|
+
|
|
7
|
+
# See https://packaging.python.org/en/latest/specifications/version-specifiers for spec details.
|
|
8
|
+
|
|
9
|
+
module Dependabot
|
|
10
|
+
module Uv
|
|
11
|
+
class Version < Dependabot::Version
|
|
12
|
+
sig { returns(Integer) }
|
|
13
|
+
attr_reader :epoch
|
|
14
|
+
|
|
15
|
+
sig { returns(T::Array[Integer]) }
|
|
16
|
+
attr_reader :release_segment
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
|
19
|
+
attr_reader :dev
|
|
20
|
+
|
|
21
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
|
22
|
+
attr_reader :pre
|
|
23
|
+
|
|
24
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
|
25
|
+
attr_reader :post
|
|
26
|
+
|
|
27
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
|
28
|
+
attr_reader :local
|
|
29
|
+
|
|
30
|
+
INFINITY = 1000
|
|
31
|
+
NEGATIVE_INFINITY = -INFINITY
|
|
32
|
+
|
|
33
|
+
# See https://peps.python.org/pep-0440/#appendix-b-parsing-version-strings-with-regular-expressions
|
|
34
|
+
VERSION_PATTERN = /
|
|
35
|
+
v?
|
|
36
|
+
(?:
|
|
37
|
+
(?:(?<epoch>[0-9]+)!)? # epoch
|
|
38
|
+
(?<release>[0-9]+(?:\.[0-9]+)*) # release
|
|
39
|
+
(?<pre> # prerelease
|
|
40
|
+
[-_\.]?
|
|
41
|
+
(?<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
|
|
42
|
+
[-_\.]?
|
|
43
|
+
(?<pre_n>[0-9]+)?
|
|
44
|
+
)?
|
|
45
|
+
(?<post> # post release
|
|
46
|
+
(?:-(?<post_n1>[0-9]+))
|
|
47
|
+
|
|
|
48
|
+
(?:
|
|
49
|
+
[-_\.]?
|
|
50
|
+
(?<post_l>post|rev|r)
|
|
51
|
+
[-_\.]?
|
|
52
|
+
(?<post_n2>[0-9]+)?
|
|
53
|
+
)
|
|
54
|
+
)?
|
|
55
|
+
(?<dev> # dev release
|
|
56
|
+
[-_\.]?
|
|
57
|
+
(?<dev_l>dev)
|
|
58
|
+
[-_\.]?
|
|
59
|
+
(?<dev_n>[0-9]+)?
|
|
60
|
+
)?
|
|
61
|
+
)
|
|
62
|
+
(?:\+(?<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
|
|
63
|
+
/ix
|
|
64
|
+
|
|
65
|
+
ANCHORED_VERSION_PATTERN = /\A\s*#{VERSION_PATTERN}\s*\z/
|
|
66
|
+
|
|
67
|
+
sig { override.params(version: VersionParameter).returns(T::Boolean) }
|
|
68
|
+
def self.correct?(version)
|
|
69
|
+
return false if version.nil?
|
|
70
|
+
|
|
71
|
+
version.to_s.match?(ANCHORED_VERSION_PATTERN)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
sig { override.params(version: VersionParameter).void }
|
|
75
|
+
def initialize(version)
|
|
76
|
+
raise Dependabot::BadRequirementError, "Malformed version string - string is nil" if version.nil?
|
|
77
|
+
|
|
78
|
+
@version_string = version.to_s
|
|
79
|
+
|
|
80
|
+
raise Dependabot::BadRequirementError, "Malformed version string - string is empty" if @version_string.empty?
|
|
81
|
+
|
|
82
|
+
matches = ANCHORED_VERSION_PATTERN.match(@version_string.downcase)
|
|
83
|
+
|
|
84
|
+
unless matches
|
|
85
|
+
raise Dependabot::BadRequirementError,
|
|
86
|
+
"Malformed version string - #{@version_string} does not match regex"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
@epoch = matches["epoch"].to_i
|
|
90
|
+
@release_segment = matches["release"]&.split(".")&.map(&:to_i) || []
|
|
91
|
+
@pre = parse_letter_version(matches["pre_l"], matches["pre_n"])
|
|
92
|
+
@post = parse_letter_version(matches["post_l"], matches["post_n1"] || matches["post_n2"])
|
|
93
|
+
@dev = parse_letter_version(matches["dev_l"], matches["dev_n"])
|
|
94
|
+
@local = parse_local_version(matches["local"])
|
|
95
|
+
super(matches["release"] || "")
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
sig { override.params(version: VersionParameter).returns(Dependabot::Uv::Version) }
|
|
99
|
+
def self.new(version)
|
|
100
|
+
T.cast(super, Dependabot::Uv::Version)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
sig { returns(String) }
|
|
104
|
+
def to_s
|
|
105
|
+
@version_string
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
sig { returns(String) }
|
|
109
|
+
def inspect # :nodoc:
|
|
110
|
+
"#<#{self.class} #{@version_string}>"
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
sig { returns(T::Boolean) }
|
|
114
|
+
def prerelease?
|
|
115
|
+
!!(pre || dev)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
sig { returns(Dependabot::Uv::Version) }
|
|
119
|
+
def release
|
|
120
|
+
Dependabot::Uv::Version.new(release_segment.join("."))
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
sig { params(other: VersionParameter).returns(Integer) }
|
|
124
|
+
def <=>(other)
|
|
125
|
+
other = Dependabot::Uv::Version.new(other.to_s) unless other.is_a?(Dependabot::Uv::Version)
|
|
126
|
+
other = T.cast(other, Dependabot::Uv::Version)
|
|
127
|
+
|
|
128
|
+
epoch_comparison = epoch <=> other.epoch
|
|
129
|
+
return epoch_comparison unless epoch_comparison.zero?
|
|
130
|
+
|
|
131
|
+
release_comparison = release_version_comparison(other)
|
|
132
|
+
return release_comparison unless release_comparison.zero?
|
|
133
|
+
|
|
134
|
+
pre_comparison = compare_keys(pre_cmp_key, other.pre_cmp_key)
|
|
135
|
+
return pre_comparison unless pre_comparison.zero?
|
|
136
|
+
|
|
137
|
+
post_comparison = compare_keys(post_cmp_key, other.post_cmp_key)
|
|
138
|
+
return post_comparison unless post_comparison.zero?
|
|
139
|
+
|
|
140
|
+
dev_comparison = compare_keys(dev_cmp_key, other.dev_cmp_key)
|
|
141
|
+
return dev_comparison unless dev_comparison.zero?
|
|
142
|
+
|
|
143
|
+
compare_keys(local_cmp_key, other.local_cmp_key)
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
sig do
|
|
147
|
+
params(
|
|
148
|
+
key: T.any(Integer, T::Array[T.any(String, Integer)]),
|
|
149
|
+
other_key: T.any(Integer, T::Array[T.any(String, Integer)])
|
|
150
|
+
).returns(Integer)
|
|
151
|
+
end
|
|
152
|
+
def compare_keys(key, other_key)
|
|
153
|
+
if key.is_a?(Integer) && other_key.is_a?(Integer)
|
|
154
|
+
key <=> other_key
|
|
155
|
+
elsif key.is_a?(Array) && other_key.is_a?(Array)
|
|
156
|
+
key <=> other_key
|
|
157
|
+
elsif key.is_a?(Integer)
|
|
158
|
+
key == NEGATIVE_INFINITY ? -1 : 1
|
|
159
|
+
elsif other_key.is_a?(Integer)
|
|
160
|
+
other_key == NEGATIVE_INFINITY ? 1 : -1
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
|
165
|
+
def pre_cmp_key
|
|
166
|
+
if pre.nil? && post.nil? && dev # sort 1.0.dev0 before 1.0a0
|
|
167
|
+
NEGATIVE_INFINITY
|
|
168
|
+
elsif pre.nil?
|
|
169
|
+
INFINITY # versions without a pre-release should sort after those with one.
|
|
170
|
+
else
|
|
171
|
+
T.must(pre)
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
|
176
|
+
def local_cmp_key
|
|
177
|
+
if local.nil?
|
|
178
|
+
# Versions without a local segment should sort before those with one.
|
|
179
|
+
NEGATIVE_INFINITY
|
|
180
|
+
else
|
|
181
|
+
# According to PEP440.
|
|
182
|
+
# - Alphanumeric segments sort before numeric segments
|
|
183
|
+
# - Alphanumeric segments sort lexicographically
|
|
184
|
+
# - Numeric segments sort numerically
|
|
185
|
+
# - Shorter versions sort before longer versions when the prefixes match exactly
|
|
186
|
+
local&.map do |token|
|
|
187
|
+
if token.is_a?(Integer)
|
|
188
|
+
[token, ""]
|
|
189
|
+
else
|
|
190
|
+
[NEGATIVE_INFINITY, token]
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
|
197
|
+
def post_cmp_key
|
|
198
|
+
# Versions without a post segment should sort before those with one.
|
|
199
|
+
return NEGATIVE_INFINITY if post.nil?
|
|
200
|
+
|
|
201
|
+
T.must(post)
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
|
205
|
+
def dev_cmp_key
|
|
206
|
+
# Versions without a dev segment should sort after those with one.
|
|
207
|
+
return INFINITY if dev.nil?
|
|
208
|
+
|
|
209
|
+
T.must(dev)
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
sig { returns(String) }
|
|
213
|
+
def lowest_prerelease_suffix
|
|
214
|
+
"dev0"
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
sig { override.returns(T::Array[String]) }
|
|
218
|
+
def ignored_patch_versions
|
|
219
|
+
parts = release_segment # e.g [1,2,3] if version is 1.2.3-alpha3
|
|
220
|
+
version_parts = parts.fill(0, parts.length...2)
|
|
221
|
+
upper_parts = version_parts.first(1) + [version_parts[1].to_i + 1] + [lowest_prerelease_suffix]
|
|
222
|
+
lower_bound = "> #{self}"
|
|
223
|
+
upper_bound = "< #{upper_parts.join('.')}"
|
|
224
|
+
|
|
225
|
+
["#{lower_bound}, #{upper_bound}"]
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
sig { override.returns(T::Array[String]) }
|
|
229
|
+
def ignored_minor_versions
|
|
230
|
+
parts = release_segment # e.g [1,2,3] if version is 1.2.3-alpha3
|
|
231
|
+
version_parts = parts.fill(0, parts.length...2)
|
|
232
|
+
lower_parts = version_parts.first(1) + [version_parts[1].to_i + 1] + [lowest_prerelease_suffix]
|
|
233
|
+
upper_parts = version_parts.first(0) + [version_parts[0].to_i + 1] + [lowest_prerelease_suffix]
|
|
234
|
+
lower_bound = ">= #{lower_parts.join('.')}"
|
|
235
|
+
upper_bound = "< #{upper_parts.join('.')}"
|
|
236
|
+
|
|
237
|
+
["#{lower_bound}, #{upper_bound}"]
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
sig { override.returns(T::Array[String]) }
|
|
241
|
+
def ignored_major_versions
|
|
242
|
+
version_parts = release_segment # e.g [1,2,3] if version is 1.2.3-alpha3
|
|
243
|
+
lower_parts = [version_parts[0].to_i + 1] + [lowest_prerelease_suffix] # earliest next major version prerelease
|
|
244
|
+
lower_bound = ">= #{lower_parts.join('.')}"
|
|
245
|
+
|
|
246
|
+
[lower_bound]
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
private
|
|
250
|
+
|
|
251
|
+
sig { params(other: Dependabot::Uv::Version).returns(Integer) }
|
|
252
|
+
def release_version_comparison(other)
|
|
253
|
+
tokens, other_tokens = pad_for_comparison(release_segment, other.release_segment)
|
|
254
|
+
tokens <=> other_tokens
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
sig do
|
|
258
|
+
params(
|
|
259
|
+
tokens: T::Array[Integer],
|
|
260
|
+
other_tokens: T::Array[Integer]
|
|
261
|
+
).returns(T::Array[T::Array[Integer]])
|
|
262
|
+
end
|
|
263
|
+
def pad_for_comparison(tokens, other_tokens)
|
|
264
|
+
tokens = tokens.dup
|
|
265
|
+
other_tokens = other_tokens.dup
|
|
266
|
+
|
|
267
|
+
longer = [tokens, other_tokens].max_by(&:count)
|
|
268
|
+
shorter = [tokens, other_tokens].min_by(&:count)
|
|
269
|
+
|
|
270
|
+
difference = T.must(longer).length - T.must(shorter).length
|
|
271
|
+
|
|
272
|
+
difference.times { T.must(shorter) << 0 }
|
|
273
|
+
|
|
274
|
+
[tokens, other_tokens]
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
sig { params(local: T.nilable(String)).returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
|
278
|
+
def parse_local_version(local)
|
|
279
|
+
return if local.nil?
|
|
280
|
+
|
|
281
|
+
# Takes a string like abc.1.twelve and turns it into ["abc", 1, "twelve"]
|
|
282
|
+
local.split(/[\._-]/).map { |s| /^\d+$/.match?(s) ? s.to_i : s }
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
sig do
|
|
286
|
+
params(
|
|
287
|
+
letter: T.nilable(String), number: T.nilable(String)
|
|
288
|
+
).returns(T.nilable(T::Array[T.any(String, Integer)]))
|
|
289
|
+
end
|
|
290
|
+
def parse_letter_version(letter = nil, number = nil)
|
|
291
|
+
return if letter.nil? && number.nil?
|
|
292
|
+
|
|
293
|
+
if letter
|
|
294
|
+
# Implicit 0 for cases where prerelease has no numeral
|
|
295
|
+
number ||= 0
|
|
296
|
+
|
|
297
|
+
# Normalize alternate spellings
|
|
298
|
+
if letter == "alpha"
|
|
299
|
+
letter = "a"
|
|
300
|
+
elsif letter == "beta"
|
|
301
|
+
letter = "b"
|
|
302
|
+
elsif %w(c pre preview).include? letter
|
|
303
|
+
letter = "rc"
|
|
304
|
+
elsif %w(rev r).include? letter
|
|
305
|
+
letter = "post"
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
return letter, number.to_i
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
# Number but no letter i.e. implicit post release syntax (e.g. 1.0-1)
|
|
312
|
+
letter = "post"
|
|
313
|
+
|
|
314
|
+
[letter, number.to_i]
|
|
315
|
+
end
|
|
316
|
+
end
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
Dependabot::Utils
|
|
321
|
+
.register_version_class("uv", Dependabot::Uv::Version)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# typed: strict
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
# These all need to be required so the various classes can be registered in a
|
|
5
|
+
# lookup table of package manager names to concrete classes.
|
|
6
|
+
require "dependabot/uv/file_fetcher"
|
|
7
|
+
require "dependabot/uv/file_parser"
|
|
8
|
+
require "dependabot/uv/update_checker"
|
|
9
|
+
require "dependabot/uv/file_updater"
|
|
10
|
+
require "dependabot/uv/metadata_finder"
|
|
11
|
+
require "dependabot/uv/requirement"
|
|
12
|
+
require "dependabot/uv/version"
|
|
13
|
+
require "dependabot/uv/name_normaliser"
|
|
14
|
+
|
|
15
|
+
require "dependabot/pull_request_creator/labeler"
|
|
16
|
+
Dependabot::PullRequestCreator::Labeler
|
|
17
|
+
.register_label_details("uv", name: "python:uv", colour: "2b67c6")
|
|
18
|
+
|
|
19
|
+
require "dependabot/dependency"
|
|
20
|
+
Dependabot::Dependency.register_production_check(
|
|
21
|
+
"uv",
|
|
22
|
+
lambda do |groups|
|
|
23
|
+
return true if groups.empty?
|
|
24
|
+
return true if groups.include?("default")
|
|
25
|
+
return true if groups.include?("install_requires")
|
|
26
|
+
|
|
27
|
+
groups.include?("dependencies")
|
|
28
|
+
end
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# See https://www.python.org/dev/peps/pep-0503/#normalized-names
|
|
32
|
+
Dependabot::Dependency.register_name_normaliser(
|
|
33
|
+
"uv",
|
|
34
|
+
->(name) { Dependabot::Uv::NameNormaliser.normalise(name) }
|
|
35
|
+
)
|
metadata
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: dependabot-uv
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.299.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Dependabot
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2025-02-28 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: dependabot-common
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - '='
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.299.1
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.299.1
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: debug
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 1.9.2
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 1.9.2
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: gpgme
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '2.0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '2.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '13'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '13'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rspec
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '3.12'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '3.12'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rspec-its
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '1.3'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '1.3'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rspec-sorbet
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 1.9.2
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 1.9.2
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: rubocop
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 1.67.0
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 1.67.0
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rubocop-performance
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: 1.22.1
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: 1.22.1
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: rubocop-rspec
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: 2.29.1
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - "~>"
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: 2.29.1
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: rubocop-sorbet
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: 0.8.5
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: 0.8.5
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: simplecov
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: 0.22.0
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: 0.22.0
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
182
|
+
name: turbo_tests
|
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - "~>"
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: 2.2.0
|
|
188
|
+
type: :development
|
|
189
|
+
prerelease: false
|
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - "~>"
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: 2.2.0
|
|
195
|
+
- !ruby/object:Gem::Dependency
|
|
196
|
+
name: vcr
|
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
|
198
|
+
requirements:
|
|
199
|
+
- - "~>"
|
|
200
|
+
- !ruby/object:Gem::Version
|
|
201
|
+
version: '6.1'
|
|
202
|
+
type: :development
|
|
203
|
+
prerelease: false
|
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
205
|
+
requirements:
|
|
206
|
+
- - "~>"
|
|
207
|
+
- !ruby/object:Gem::Version
|
|
208
|
+
version: '6.1'
|
|
209
|
+
- !ruby/object:Gem::Dependency
|
|
210
|
+
name: webmock
|
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
|
212
|
+
requirements:
|
|
213
|
+
- - "~>"
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: '3.18'
|
|
216
|
+
type: :development
|
|
217
|
+
prerelease: false
|
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
219
|
+
requirements:
|
|
220
|
+
- - "~>"
|
|
221
|
+
- !ruby/object:Gem::Version
|
|
222
|
+
version: '3.18'
|
|
223
|
+
- !ruby/object:Gem::Dependency
|
|
224
|
+
name: webrick
|
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
|
226
|
+
requirements:
|
|
227
|
+
- - ">="
|
|
228
|
+
- !ruby/object:Gem::Version
|
|
229
|
+
version: '1.7'
|
|
230
|
+
type: :development
|
|
231
|
+
prerelease: false
|
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
233
|
+
requirements:
|
|
234
|
+
- - ">="
|
|
235
|
+
- !ruby/object:Gem::Version
|
|
236
|
+
version: '1.7'
|
|
237
|
+
description: Dependabot-uv provides support for bumping Python packages via Dependabot.
|
|
238
|
+
If you want support for multiple package managers, you probably want the meta-gem
|
|
239
|
+
dependabot-omnibus.
|
|
240
|
+
email: opensource@github.com
|
|
241
|
+
executables: []
|
|
242
|
+
extensions: []
|
|
243
|
+
extra_rdoc_files: []
|
|
244
|
+
files:
|
|
245
|
+
- helpers/build
|
|
246
|
+
- helpers/lib/__init__.py
|
|
247
|
+
- helpers/lib/hasher.py
|
|
248
|
+
- helpers/lib/parser.py
|
|
249
|
+
- helpers/requirements.txt
|
|
250
|
+
- helpers/run.py
|
|
251
|
+
- lib/dependabot/uv.rb
|
|
252
|
+
- lib/dependabot/uv/authed_url_builder.rb
|
|
253
|
+
- lib/dependabot/uv/file_fetcher.rb
|
|
254
|
+
- lib/dependabot/uv/file_parser.rb
|
|
255
|
+
- lib/dependabot/uv/file_parser/pipfile_files_parser.rb
|
|
256
|
+
- lib/dependabot/uv/file_parser/pyproject_files_parser.rb
|
|
257
|
+
- lib/dependabot/uv/file_parser/python_requirement_parser.rb
|
|
258
|
+
- lib/dependabot/uv/file_parser/setup_file_parser.rb
|
|
259
|
+
- lib/dependabot/uv/file_updater.rb
|
|
260
|
+
- lib/dependabot/uv/file_updater/compile_file_updater.rb
|
|
261
|
+
- lib/dependabot/uv/file_updater/pyproject_preparer.rb
|
|
262
|
+
- lib/dependabot/uv/file_updater/requirement_file_updater.rb
|
|
263
|
+
- lib/dependabot/uv/file_updater/requirement_replacer.rb
|
|
264
|
+
- lib/dependabot/uv/language.rb
|
|
265
|
+
- lib/dependabot/uv/language_version_manager.rb
|
|
266
|
+
- lib/dependabot/uv/metadata_finder.rb
|
|
267
|
+
- lib/dependabot/uv/name_normaliser.rb
|
|
268
|
+
- lib/dependabot/uv/native_helpers.rb
|
|
269
|
+
- lib/dependabot/uv/package_manager.rb
|
|
270
|
+
- lib/dependabot/uv/pip_compile_file_matcher.rb
|
|
271
|
+
- lib/dependabot/uv/pipenv_runner.rb
|
|
272
|
+
- lib/dependabot/uv/requirement.rb
|
|
273
|
+
- lib/dependabot/uv/requirement_parser.rb
|
|
274
|
+
- lib/dependabot/uv/update_checker.rb
|
|
275
|
+
- lib/dependabot/uv/update_checker/index_finder.rb
|
|
276
|
+
- lib/dependabot/uv/update_checker/latest_version_finder.rb
|
|
277
|
+
- lib/dependabot/uv/update_checker/pip_compile_version_resolver.rb
|
|
278
|
+
- lib/dependabot/uv/update_checker/pip_version_resolver.rb
|
|
279
|
+
- lib/dependabot/uv/update_checker/requirements_updater.rb
|
|
280
|
+
- lib/dependabot/uv/version.rb
|
|
281
|
+
homepage: https://github.com/dependabot/dependabot-core
|
|
282
|
+
licenses:
|
|
283
|
+
- MIT
|
|
284
|
+
metadata:
|
|
285
|
+
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
286
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.299.1
|
|
287
|
+
post_install_message:
|
|
288
|
+
rdoc_options: []
|
|
289
|
+
require_paths:
|
|
290
|
+
- lib
|
|
291
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
292
|
+
requirements:
|
|
293
|
+
- - ">="
|
|
294
|
+
- !ruby/object:Gem::Version
|
|
295
|
+
version: 3.1.0
|
|
296
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
297
|
+
requirements:
|
|
298
|
+
- - ">="
|
|
299
|
+
- !ruby/object:Gem::Version
|
|
300
|
+
version: 3.1.0
|
|
301
|
+
requirements: []
|
|
302
|
+
rubygems_version: 3.5.22
|
|
303
|
+
signing_key:
|
|
304
|
+
specification_version: 4
|
|
305
|
+
summary: Provides Dependabot support for Python uv
|
|
306
|
+
test_files: []
|