Je suis en train de découvrir le signal
et j'ai écrit ce script pour ma première implémentation :
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
""" First implementation of signal module """
import time
import signal
import os
import sys
def cls():
""" console clearing """
os.system('clear')
return
def handler(signal, frame):
""" Catch <ctrl+c> signal for clean stop"""
print("{}, script stops".format(time.strftime('%H:%M:%S')))
sys.exit(0)
signal.signal(signal.SIGINT, handler)
START_TIME = time.strftime('%H:%M:%S')
PROGRESSION = str()
while True:
time.sleep(2)
PROGRESSION += "."
cls()
print("{}, script starts\n{}".format(START_TIME, PROGRESSION))
Sauf l'ennuyeux ^C
apparaissant après l'interruption, le script fonctionne comme prévu :
14:38:01, script starts
......
^C14:38:14, script stops
Cependant pylint3
la vérification me donne ce retour :
testsignal.py:16: [W0621(redefined-outer-name), handler] Redefining name 'signal' from outer scope (line 5)
testsignal.py:16: [W0613(unused-argument), handler] Unused argument 'signal'
testsignal.py:16: [W0613(unused-argument), handler] Unused argument 'frame'
Selon le documentation du signal Je l'ai bien fait.
Si je change la ligne 16, avec un trait de soulignement à la fin dans signal
(comme mentionné dans PEP8 je résous l'avertissement W0621 .
Est-ce un effet secondaire de pylint
ou ai-je manqué quelque chose ?
D'ailleurs, si quelqu'un sait comment éviter la ^C
ficelle, je serai heureux aussi.
pylint3 --version
pylint3 1.5.2,
astroid 1.4.4
Python 3.4.2 (default, Oct 8 2014, 10:45:20)
[GCC 4.9.1]