コード例 #1
0
def sort_by_version(value, arg):
    reverse = True if arg == 'desc' else False
    ret_list = []
    for key in sorted(value.keys(), reverse=reverse,
                      key=lambda v: Version(pad_min_version(v))):
        ret_list.append((key, value[key]))
    return ret_list
コード例 #2
0
ファイル: views.py プロジェクト: nextcloud/appstore
    def _sort_by_platform_v(self, releases_by_platform, reverse=True):
        """Sorts a list of tuples like (<platform version>, [releases]) by
        platform version.

        :param releases_by_platform: A list of tuples.
        :param reverse: Descending order if True, ascending otherwise.
        :return sorted list of tuples.
        """

        return sorted(releases_by_platform, reverse=reverse,
                      key=lambda v: Version(pad_min_version(v[0])))
コード例 #3
0
    def _sort_by_platform_v(self, releases_by_platform, reverse=True):
        """Sorts a list of tuples like (<platform version>, [releases]) by
        platform version.

        :param releases_by_platform: A list of tuples.
        :param reverse: Descending order if True, ascending otherwise.
        :return sorted list of tuples.
        """

        return sorted(releases_by_platform, reverse=reverse,
                      key=lambda v: Version(pad_min_version(v[0])))
コード例 #4
0
ファイル: models.py プロジェクト: fossxplorer/appstore
 def is_compatible(self, platform_version, inclusive=False):
     """
     Checks if a release is compatible with a platform version
     :param platform_version: the platform version, not required to be
     semver compatible
     :param inclusive: if True the check will also return True if an app
      requires 9.0.1 and the given platform version is 9.0
     :return: True if compatible, otherwise false
     """
     min_version = Version(pad_min_version(platform_version))
     spec = Spec(self.platform_version_spec)
     if inclusive:
         max_version = Version(pad_max_inc_version(platform_version))
         return (min_version in spec or max_version in spec)
     else:
         return min_version in spec
コード例 #5
0
    def is_compatible(self, platform_version, inclusive=False):
        """Checks if a release is compatible with a platform version

        :param platform_version: the platform version, not required to be
                                 semver compatible
        :param inclusive: if True the check will also return True if an app
                          requires 9.0.1 and the given platform version is 9.0
        :return: True if compatible, otherwise false
        """

        min_version = Version(pad_min_version(platform_version))
        spec = Spec(self.platform_version_spec)
        if inclusive:
            max_version = Version(pad_max_inc_version(platform_version))
            return (min_version in spec or max_version in spec)
        else:
            return min_version in spec
コード例 #6
0
ファイル: parser.py プロジェクト: fossxplorer/appstore
def element_to_dict(element: Any) -> Dict:
    type = element.get('type')
    key = element.tag.replace('-', '_')
    if type == 'int':
        return {key: int(element.text)}
    elif type == 'list':
        return {key: list(map(element_to_dict, element.iterchildren()))}
    elif type == 'min-version':
        return {key: pad_min_version(element.text)}
    elif type == 'max-version':
        return {key: pad_max_version(element.text)}
    elif len(list(element)) > 0:
        contents = {}
        for child in element.iterchildren():
            contents.update(element_to_dict(child))
        return {key: contents}
    else:
        return {key: element.text}
コード例 #7
0
ファイル: parser.py プロジェクト: quinndiggity/appstore
def element_to_dict(element: Any) -> Dict:
    type = element.get('type')
    key = element.tag.replace('-', '_')
    if type == 'int' and element.text is not None:
        return {key: int(element.text)}
    elif type == 'list':
        return {key: list(map(element_to_dict, element.iterchildren()))}
    elif type == 'min-version':
        return {
            key: pad_min_version(element.text),
            'raw_%s' % key: raw_version(element.text)
        }
    elif type == 'max-version':
        return {
            key: pad_max_version(element.text),
            'raw_%s' % key: raw_version(element.text)
        }
    elif len(list(element)) > 0:
        contents = {}
        for child in element.iterchildren():
            contents.update(element_to_dict(child))
        return {key: contents}
    else:
        return {key: element.text}
コード例 #8
0
 def test_pad_minimum(self):
     self.assertEqual('*', pad_min_version(''))
     self.assertEqual('9.0.0', pad_min_version('9'))
     self.assertEqual('9.0.0', pad_min_version('9.0'))
     self.assertEqual('9.0.0', pad_min_version('9.0.0'))