dependabot-python 0.98.29 → 0.98.30

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1faaf65a49ef231340e38940b2009aca36fb70042283d342de4fd7616c10ea3
4
- data.tar.gz: 3cb6606393b643655707d062db6e8de0fb4f22a22550bfef4570424dff6536d5
3
+ metadata.gz: de12aa5fff8598a55962c37fd73ad95554f9322f0c780d77ea7563c145ac4db8
4
+ data.tar.gz: 0b942489fd3b4e6d6f7c92657d66cf26cecea1b9d16078f3082e8e0df31d8073
5
5
  SHA512:
6
- metadata.gz: 670c8a922a5a621752aafffe97cf4e991bdb1479016bc9c2ab2eb797b9aeb51c8bebaa2b3c8d72e7a84ef7b3ad3d096c73e498f1091d6c7aaa0d8a9f09753bd2
7
- data.tar.gz: 9af09e0a3aac11788bdb4723e343ca2a53fe1b65878d5fab8ea52d6532425ff4d8a7f6adbd03a72c67bd5ebae0f749e19fc848d942350ed146831463ac78ecea
6
+ metadata.gz: 48592d3c0b731410126e49e3f2ed35b05b0a3e0c710034b43e267db38435891d52981fe9a7d1ce27885f04068ecdd6beade6bbb5362f16650e25713401dfdf3e
7
+ data.tar.gz: c3ec892d6f85db912d4fe1e81602f06e022acb46f1879099e35a2fcb5edb2f0587a1b98ffdf20ea859fcddb2f3029ae089c931396a27ada7462202833550f308
@@ -73,9 +73,9 @@ module Dependabot
73
73
  # and *aren't* a straight lockfile for the Pipfile
74
74
  next if included_in_pipenv_deps?(normalised_name(dep["name"]))
75
75
 
76
- # If a requirement has a `<` or `<=` marker then updating it is
76
+ # If a requirement has a `<`, `<=` or '==' marker then updating it is
77
77
  # probably blocked. Ignore it.
78
- next if dep["markers"].include?("<")
78
+ next if blocking_marker?(dep)
79
79
 
80
80
  requirements =
81
81
  if lockfile_for_pip_compile_file?(dep["file"]) then []
@@ -105,6 +105,14 @@ module Dependabot
105
105
  pipenv_dependencies.dependencies.map(&:name).include?(dep_name)
106
106
  end
107
107
 
108
+ def blocking_marker?(dep)
109
+ return false if dep["markers"].include?(">")
110
+ return true if dep["markers"].include?("<")
111
+ return true if dep["markers"].include?("==")
112
+
113
+ false
114
+ end
115
+
108
116
  def setup_file_dependencies
109
117
  @setup_file_dependencies ||=
110
118
  SetupFileParser.
@@ -46,25 +46,23 @@ module Dependabot
46
46
 
47
47
  def resolver_type
48
48
  reqs = dependencies.flat_map(&:requirements)
49
- req_files = reqs.map { |r| r.fetch(:file) }
49
+ changed_reqs = reqs.zip(dependencies.flat_map(&:previous_requirements)).
50
+ reject { |(new_req, old_req)| new_req == old_req }.
51
+ map(&:first)
52
+ changed_req_files = changed_reqs.map { |r| r.fetch(:file) }
50
53
 
51
54
  # If there are no requirements then this is a sub-dependency. It
52
55
  # must come from one of Pipenv, Poetry or pip-tools, and can't come
53
56
  # from the first two unless they have a lockfile.
54
- return subdependency_resolver if reqs.none?
57
+ return subdependency_resolver if changed_reqs.none?
55
58
 
56
59
  # Otherwise, this is a top-level dependency, and we can figure out
57
60
  # which resolver to use based on the filename of its requirements
58
- return :pipfile if req_files.any? { |f| f == "Pipfile" }
59
- return :poetry if req_files.any? { |f| f == "pyproject.toml" }
60
- return :pip_compile if req_files.any? { |f| f.end_with?(".in") }
61
-
62
- # Finally, we should only ever be updating a requirements.txt file if
63
- # some requirements have changed. Otherwise, this must be a case where
64
- # we have a requirements.txt *and* some other resolver of which the
65
- # dependency is a sub-dependency.
66
- changed_reqs = reqs - dependencies.flat_map(&:previous_requirements)
67
- changed_reqs.none? ? subdependency_resolver : :requirements
61
+ return :pipfile if changed_req_files.any? { |f| f == "Pipfile" }
62
+ return :poetry if changed_req_files.any? { |f| f == "pyproject.toml" }
63
+ return :pip_compile if changed_req_files.any? { |f| f.end_with?(".in") }
64
+
65
+ :requirements
68
66
  end
69
67
 
70
68
  def subdependency_resolver
@@ -17,7 +17,7 @@ module Dependabot
17
17
  INSTALL_REQ_WITH_REQUIREMENT =
18
18
  /\s*\\?\s*(?<name>#{NAME})
19
19
  \s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
20
- \s*\\?\s*(?<requirements>#{REQUIREMENTS})
20
+ \s*\\?\s*\(?(?<requirements>#{REQUIREMENTS})\)?
21
21
  \s*\\?\s*(?<hashes>#{HASHES})?
22
22
  \s*#*\s*(?<comment>.+)?
23
23
  /x.freeze
@@ -32,7 +32,7 @@ module Dependabot
32
32
  VALID_REQ_TXT_REQUIREMENT =
33
33
  /^\s*\\?\s*(?<name>#{NAME})
34
34
  \s*\\?\s*(\[\s*(?<extras>#{EXTRA}(\s*,\s*#{EXTRA})*)\s*\])?
35
- \s*\\?\s*(?<requirements>#{REQUIREMENTS})?
35
+ \s*\\?\s*\(?(?<requirements>#{REQUIREMENTS})?\)?
36
36
  \s*\\?\s*(?<hashes>#{HASHES})?
37
37
  \s*(\#+\s*(?<comment>.*))?$
38
38
  /x.freeze
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-python
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.98.29
4
+ version: 0.98.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.98.29
19
+ version: 0.98.30
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.98.29
26
+ version: 0.98.30
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement