Skip to content

Commit

Permalink
Update _split_requirement
Browse files Browse the repository at this point in the history
Es wurde bisher eine Liste von dicts zurückgeliefert, wenn es mehr als einen Eintrag gab. Das führte dann später zu Fehlern, weil als Ergbnis eine Liste und keine Dictionaries erwartet wurden. Das sollte jetzt behoben sein. Die Werte werden kosolidiert.
  • Loading branch information
CannonRS authored Sep 24, 2023
1 parent 17efb6e commit 2552127
Showing 1 changed file with 19 additions and 35 deletions.
54 changes: 19 additions & 35 deletions lib/shpypi.py
Original file line number Diff line number Diff line change
Expand Up @@ -674,6 +674,8 @@ def get_packagelist(self):
package['is_required_for_plugins'] = True
package['sort'] = self._build_sortstring(package)

self.logger.debug("Package name, type: {}, {}".format(pkg_name, type(required_packages[pkg_name])))
self.logger.debug("Package value: {}".format(required_packages[pkg_name]))
package['vers_req_min'] = required_packages[pkg_name].get('min', '*')
package['vers_req_max'] = required_packages[pkg_name].get('max', '*')
package['vers_req_msg'] = ''
Expand Down Expand Up @@ -946,42 +948,24 @@ def _split_requirement(self, req_str, do_log=False):
if self._compare_versions(pyversion, version, operator):
result_list.append(self._split_requirement_to_min_max(requirement[0]))

if len(result_list) > 2:
# Hier sollten die Einträge noch konsolidiert werden
# Vorübergehend: Eine Liste von dicts zurückliefern
return result_list

if len(result_list) == 2:
# Es wurde bisher eine Liste von dicts zurückgeliefert, wenn es mehr als einen Eintrag gab. Das
# führte dann später zu Fehlern, weil als Ergbnis eine Liste und keine Dictionaries erwartet wurden.
# Das sollte jetzt behoben sein. Die Werte werden kosolidiert.
if len(result_list) > 1:
set_min = '*'
set_max = '*'
for result_entry in result_list:
val_min = result_entry.get('min', None)
if val_min is not None and val_min != '*':
if set_min == '*' or val_min > set_min:
set_min = val_min
val_max = result_entry.get('max', None)
if val_max is not None and val_max != '*':
if set_max == '*' or val_max < set_max:
set_max = val_max
result = {}

#consolidate minimum values (only '*' at the moment)
val0 = result_list[0].get('min', None)
val1 = result_list[1].get('min', None)
if val0 is not None and val1 is not None:
# Consolidate minimum requirements
if val0 == '*':
result['min'] = val1
elif val1 == '*':
result['min'] = val0
elif val0 is None:
result['min'] = val1
elif val1 is None:
result['min'] = val0

#consolidate maximum values (only '*' at the moment)
val0 = result_list[0].get('max', None)
val1 = result_list[1].get('max', None)
if val0 is not None and val1 is not None:
# Consolidate minimum requirements
if val0 == '*':
result['max'] = val1
elif val1 == '*':
result['max'] = val0
elif val0 is None:
result['max'] = val1
elif val1 is None:
result['max'] = val0

result['min'] = set_min
result['max'] = set_max
return result

if len(result_list) == 0:
Expand Down

0 comments on commit 2552127

Please sign in to comment.