[FIX] script poetry_update: support ~= when compare dependency
- clean code
This commit is contained in:
parent
b913300b5b
commit
5be3b1c1c8
1 changed files with 20 additions and 9 deletions
|
|
@ -82,8 +82,10 @@ def combine_requirements(config):
|
||||||
"""
|
"""
|
||||||
priority_filename_requirement = "requirements.txt"
|
priority_filename_requirement = "requirements.txt"
|
||||||
second_priority_filename_requirement = "odoo/requirements.txt"
|
second_priority_filename_requirement = "odoo/requirements.txt"
|
||||||
lst_sign = ("==", "!=", ">=", "<=", "<", ">", ";")
|
except_sign = ";"
|
||||||
|
lst_sign = ("==", "!=", ">=", "<=", "<", ">", except_sign, "~=")
|
||||||
lst_requirements = []
|
lst_requirements = []
|
||||||
|
lst_replace_special_sign = {} # the lib iscompatible doesn't support ~=
|
||||||
ignore_requirements = ["sys_platform == 'win32'", "python_version < '3.7'"]
|
ignore_requirements = ["sys_platform == 'win32'", "python_version < '3.7'"]
|
||||||
dct_requirements = defaultdict(set)
|
dct_requirements = defaultdict(set)
|
||||||
lst_requirements_file = get_lst_requirements_txt()
|
lst_requirements_file = get_lst_requirements_txt()
|
||||||
|
|
@ -102,23 +104,23 @@ def combine_requirements(config):
|
||||||
if sign in b:
|
if sign in b:
|
||||||
# Exception, some time the sign ; can be first, just check
|
# Exception, some time the sign ; can be first, just check
|
||||||
if (
|
if (
|
||||||
sign != ";"
|
sign != except_sign
|
||||||
and ";" in b
|
and except_sign in b
|
||||||
and b.find(sign) > b.find(";")
|
and b.find(sign) > b.find(except_sign)
|
||||||
):
|
):
|
||||||
module_name = b[: b.find(";")]
|
module_name = b[: b.find(except_sign)]
|
||||||
else:
|
else:
|
||||||
module_name = b[: b.find(sign)]
|
module_name = b[: b.find(sign)]
|
||||||
module_name = module_name.strip()
|
module_name = module_name.strip()
|
||||||
# Special condition for ";", ignore it
|
# Special condition for ";", ignore it
|
||||||
if ";" in b:
|
if except_sign in b:
|
||||||
for ignore_string in ignore_requirements:
|
for ignore_string in ignore_requirements:
|
||||||
if ignore_string in b:
|
if ignore_string in b:
|
||||||
break
|
break
|
||||||
if ignore_string in b:
|
if ignore_string in b:
|
||||||
break
|
break
|
||||||
lst_requirements_with_condition.add(module_name)
|
lst_requirements_with_condition.add(module_name)
|
||||||
value = b[: b.find(";")].strip()
|
value = b[: b.find(except_sign)].strip()
|
||||||
dct_special_condition[module_name].append(b)
|
dct_special_condition[module_name].append(b)
|
||||||
else:
|
else:
|
||||||
value = b
|
value = b
|
||||||
|
|
@ -174,6 +176,10 @@ def combine_requirements(config):
|
||||||
for requirement in lst_requirement:
|
for requirement in lst_requirement:
|
||||||
if ".*" in requirement:
|
if ".*" in requirement:
|
||||||
requirement = requirement.replace(".*", "")
|
requirement = requirement.replace(".*", "")
|
||||||
|
if "~=" in requirement:
|
||||||
|
old_requirement = requirement
|
||||||
|
requirement = requirement.replace("~=", "==")
|
||||||
|
lst_replace_special_sign[requirement] = old_requirement
|
||||||
result_number = iscompatible.parse_requirements(requirement)
|
result_number = iscompatible.parse_requirements(requirement)
|
||||||
if not result_number:
|
if not result_number:
|
||||||
# Ignore empty version
|
# Ignore empty version
|
||||||
|
|
@ -225,8 +231,13 @@ def combine_requirements(config):
|
||||||
odoo_value = None
|
odoo_value = None
|
||||||
erplibre_value = None
|
erplibre_value = None
|
||||||
for version_requirement in lst_version_requirement:
|
for version_requirement in lst_version_requirement:
|
||||||
|
key_require = version_requirement[0]
|
||||||
|
if key_require in lst_replace_special_sign.keys():
|
||||||
|
key_require = lst_replace_special_sign.get(
|
||||||
|
key_require
|
||||||
|
)
|
||||||
filename_1 = dct_requirements_module_filename.get(
|
filename_1 = dct_requirements_module_filename.get(
|
||||||
version_requirement[0]
|
key_require
|
||||||
)
|
)
|
||||||
if priority_filename_requirement in filename_1:
|
if priority_filename_requirement in filename_1:
|
||||||
erplibre_value = version_requirement[0]
|
erplibre_value = version_requirement[0]
|
||||||
|
|
@ -265,7 +276,7 @@ def combine_requirements(config):
|
||||||
result = key
|
result = key
|
||||||
|
|
||||||
if result:
|
if result:
|
||||||
dct_requirements[key] = set((result,))
|
dct_requirements[key] = {result}
|
||||||
else:
|
else:
|
||||||
print(f"Internal error, missing result for {lst_requirement}.")
|
print(f"Internal error, missing result for {lst_requirement}.")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue