Philipp Hörist pushed to branch master at gajim / gajim

Commits:

1 changed file:

Changes:

  • scripts/update_flatpak_manifest.py
    ... ... @@ -24,17 +24,21 @@ def get_package_type(module: ruamel.yaml.comments.CommentedMap) -> str:
    24 24
         return 'sdist'
    
    25 25
     
    
    26 26
     def get_current_version(module: ruamel.yaml.comments.CommentedMap
    
    27
    -                        ) -> Optional[str]:
    
    27
    +                        ) -> tuple[Optional[str], Optional[str]]:
    
    28 28
         name = module['name'].replace('python3-','')
    
    29 29
         url = module['sources'][0]['url']
    
    30 30
         if url.endswith('.git'):
    
    31
    -        return None
    
    31
    +        return None, None
    
    32 32
         file_name = url.split('/')[-1]
    
    33 33
         file_name = file_name.replace(name, '')
    
    34
    -    return file_name.split('-')[1].replace('.tar.gz', '')
    
    34
    +    parts = file_name.split('-')
    
    35
    +    pkg_version = parts[1].replace('.tar.gz', '')
    
    36
    +    py_version = parts[2] if '.tar.gz' not in parts[1] else None
    
    37
    +    return pkg_version, py_version
    
    35 38
     
    
    36 39
     def get_latest_version(package_name: str,
    
    37
    -                       package_type: str
    
    40
    +                       package_type: str,
    
    41
    +                       py_version: Optional[str]
    
    38 42
                            ) -> tuple[str, Optional[str]]:
    
    39 43
         with urlopen(f'{PYPI_INDEX}/{package_name}/json') as f:
    
    40 44
             data = f.read()
    
    ... ... @@ -42,10 +46,13 @@ def get_latest_version(package_name: str,
    42 46
             version = d['info']['version']
    
    43 47
             sha = None
    
    44 48
             for entry in d['releases'][version]:
    
    45
    -            if entry['packagetype'] == package_type:
    
    46
    -                if sha is not None:
    
    47
    -                    return version, None
    
    48
    -                sha = entry['digests']['sha256']
    
    49
    +            if entry['packagetype'] != package_type:
    
    50
    +                continue
    
    51
    +            if py_version is not None and entry['python_version'] != py_version:
    
    52
    +                continue
    
    53
    +            if sha is not None:
    
    54
    +                return version, None
    
    55
    +            sha = entry['digests']['sha256']
    
    49 56
             return version, sha
    
    50 57
     
    
    51 58
     def update_module(module: ruamel.yaml.comments.CommentedMap) -> None:
    
    ... ... @@ -54,12 +61,12 @@ def update_module(module: ruamel.yaml.comments.CommentedMap) -> None:
    54 61
             return
    
    55 62
     
    
    56 63
         package_type = get_package_type(module)
    
    57
    -    current_version = get_current_version(module)
    
    64
    +    current_version, py_version = get_current_version(module)
    
    58 65
         if current_version is None:
    
    59 66
             return
    
    60 67
     
    
    61 68
         name = module['name'].replace('python3-','')
    
    62
    -    latest_version, sha = get_latest_version(name, package_type)
    
    69
    +    latest_version, sha = get_latest_version(name, package_type, py_version)
    
    63 70
     
    
    64 71
         if current_version == latest_version:
    
    65 72
             return