mirror of https://github.com/interlegis/sapl.git
Marcio Mazza
9 years ago
1 changed files with 38 additions and 0 deletions
@ -0,0 +1,38 @@ |
|||||
|
#!/usr/bin/env python |
||||
|
|
||||
|
# Este script altera os arquivos requirements/*requirements.txt |
||||
|
# atualizando as versões fixadas neles para coincidirem com as do venv. |
||||
|
# |
||||
|
# Rode esse script após atualizar as dependências do venv usando, p. ex.: |
||||
|
# pip-review |
||||
|
# |
||||
|
# Após usá-lo confira sempre o resultado com `git diff` e teste as mudanças |
||||
|
|
||||
|
import glob |
||||
|
import re |
||||
|
import subprocess |
||||
|
|
||||
|
freeze_output = subprocess.Popen( |
||||
|
'pip freeze', shell=True, |
||||
|
stdout=subprocess.PIPE).stdout.read().decode('ascii') |
||||
|
freeze = freeze_output.strip().split('\n') |
||||
|
freeze = {name.lower(): version |
||||
|
for name, version in [re.split('==+', s) for s in freeze]} |
||||
|
req_files = glob.glob('requirements/*requirements.txt') |
||||
|
requirements = [(f, open(f).read().strip().split('\n')) |
||||
|
for f in req_files] |
||||
|
|
||||
|
|
||||
|
def novas_linhas(linhas): |
||||
|
for linha in linhas: |
||||
|
split = re.split('==', linha) |
||||
|
if len(split) == 1: |
||||
|
yield split[0] |
||||
|
else: |
||||
|
nome, versao = split |
||||
|
nome = nome.lower() |
||||
|
yield '%s==%s' % (nome, freeze[nome]) |
||||
|
|
||||
|
for arq, linhas in requirements: |
||||
|
with open(arq, 'w') as f: |
||||
|
f.writelines(l + '\n' for l in novas_linhas(linhas)) |
Loading…
Reference in new issue