Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- import os
- import argparse
- from pip._internal.operations import freeze
- def version_comparison(v1: str,
- v2: str):
- if v1 == v2:
- return 0
- else:
- v1 = v1.split('.')
- v2 = v2.split('.')
- for x in v1:
- for y in v2:
- if int(x) == int(y):
- continue
- elif int(x) < int(y):
- return -1
- else:
- return 1
- def version_parser(lista : list):
- """Monta o objeto com as versões de pacotes
- """
- versions = dict( tuple(w.split('==')) for w in lista )
- installed = dict( tuple(val.split('==')) for val in freeze.freeze())
- maps = []
- for k in list(set(installed.keys()) & set(versions.keys())) :
- if version_comparison(versions[k], installed[k]) < 0:
- maps.append((k, versions[k]))
- for k in list(set(versions.keys()) - set(installed.keys()) ):
- maps.append((k,None))
- return maps
- #aplicar a busca no mapping do versions e montar a regra de comparação enter os dicts
- if __name__ == "__main__":
- parser = argparse.ArgumentParser("'Get the versions of python packages within a list")
- parser.add_argument('filename', metavar='file', type=str, help='the filename that contains the list')
- args = parser.parse_args()
- from colorama import init, Fore
- init(autoreset=True)
- with open(args.filename, 'r', encoding='utf8') as file:
- lines = file.readlines()
- lines = [line.replace('\n','') for line in lines]
- print(lines)
- print('Os pacotes a seguir estão atualizados:')
- [print( f' {Fore.GREEN} {val[0]} >= {val[1]}') for val in version_parser(lines) if val[1] ];
- print('Os pacotes abaixo não puderam ser encontrados:')
- [print(f' {Fore.RED} {val[0]}') for val in version_parser(lines) if val[1] is None ];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement