Fix problem where pip module cannot accept multiple extras
PR #46937 Fixes #46519
This commit is contained in:
parent
4352a4e54d
commit
b697da39c8
2 changed files with 12 additions and 2 deletions
|
@ -292,11 +292,16 @@ def _recover_package_name(names):
|
||||||
# reconstruct the names
|
# reconstruct the names
|
||||||
name_parts = []
|
name_parts = []
|
||||||
package_names = []
|
package_names = []
|
||||||
|
in_brackets = False
|
||||||
for name in names:
|
for name in names:
|
||||||
if _is_package_name(name):
|
if _is_package_name(name) and not in_brackets:
|
||||||
if name_parts:
|
if name_parts:
|
||||||
package_names.append(",".join(name_parts))
|
package_names.append(",".join(name_parts))
|
||||||
name_parts = []
|
name_parts = []
|
||||||
|
if "[" in name:
|
||||||
|
in_brackets = True
|
||||||
|
if in_brackets and "]" in name:
|
||||||
|
in_brackets = False
|
||||||
name_parts.append(name)
|
name_parts.append(name)
|
||||||
package_names.append(",".join(name_parts))
|
package_names.append(",".join(name_parts))
|
||||||
return package_names
|
return package_names
|
||||||
|
@ -498,6 +503,7 @@ class Package:
|
||||||
# old pkg_resource will replace 'setuptools' with 'distribute' when it already installed
|
# old pkg_resource will replace 'setuptools' with 'distribute' when it already installed
|
||||||
if self._requirement.project_name == "distribute":
|
if self._requirement.project_name == "distribute":
|
||||||
self.package_name = "setuptools"
|
self.package_name = "setuptools"
|
||||||
|
self._requirement.project_name = "setuptools"
|
||||||
else:
|
else:
|
||||||
self.package_name = self._requirement.project_name
|
self.package_name = self._requirement.project_name
|
||||||
self._plain_package = True
|
self._plain_package = True
|
||||||
|
@ -639,7 +645,7 @@ def main():
|
||||||
"Please keep the version specifier, but remove the 'version' argument."
|
"Please keep the version specifier, but remove the 'version' argument."
|
||||||
)
|
)
|
||||||
# if the version specifier is provided by version, append that into the package
|
# if the version specifier is provided by version, append that into the package
|
||||||
packages[0] = Package(packages[0].package_name, version)
|
packages[0] = Package(to_native(packages[0]), version)
|
||||||
|
|
||||||
if module.params['editable']:
|
if module.params['editable']:
|
||||||
args_list = [] # used if extra_args is not used at all
|
args_list = [] # used if extra_args is not used at all
|
||||||
|
|
|
@ -470,6 +470,10 @@
|
||||||
assert:
|
assert:
|
||||||
that: "version13 is failed"
|
that: "version13 is failed"
|
||||||
|
|
||||||
|
- name: try install package with setuptools extras
|
||||||
|
pip:
|
||||||
|
name: "{{pip_test_package}}[dev,test]"
|
||||||
|
|
||||||
- name: clean up
|
- name: clean up
|
||||||
pip:
|
pip:
|
||||||
name: "{{ pip_test_packages }}"
|
name: "{{ pip_test_packages }}"
|
||||||
|
|
Loading…
Reference in a new issue