42 lignes
948 B
Python
42 lignes
948 B
Python
# -*- coding: utf-8 -*-
|
|
# utilitaires simples pur python sans dependance django
|
|
import sys
|
|
|
|
|
|
def rwrite(msg):
|
|
sys.stdout.write(msg)
|
|
sys.stdout.flush()
|
|
|
|
|
|
class ProgCpt(object):
|
|
""" ProgCpt, un compteur permettant de voir la progression
|
|
usage:
|
|
cpt = ProgCpt(msg, idx_start, total, fd)
|
|
for i in <list>:
|
|
cpt()
|
|
cpt(last=True)
|
|
|
|
si fd n'est pas precise, c'est sys.stdout qui est utilise, il faut
|
|
donc importer le module sys...
|
|
"""
|
|
|
|
def __init__(self, msg="process", idx_start=1, total=100, fd=None):
|
|
self.msg = msg
|
|
self.idx = idx_start
|
|
self.total = total
|
|
self.fd = fd or sys.stdout
|
|
|
|
def __call__(self, last=False):
|
|
if last:
|
|
self.idx -= 1
|
|
self.fd.write(
|
|
"{0}: {1}/{2}{3}".format(
|
|
self.msg, self.idx, self.total, "\n" if last else "\r"
|
|
)
|
|
)
|
|
self.fd.flush()
|
|
self.idx += 1
|
|
|
|
|
|
# EOF
|