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