web-dev-qa-db-fra.com

Pragmas dans python

Je lis le code source de bottle.py. C'est un framework web, avec seulement 3000+ lignes python. Tellement cool.

J'ai trouvé un code comme celui-ci:

class ServerAdapter(object):
    quiet = False
    def __init__(self, Host='127.0.0.1', port=8080, **config):
        self.options = config
        self.Host = Host
        self.port = int(port)

    def run(self, handler): # pragma: no cover
        pass
    ... 

Que fait le # pragma: no cover signifier? Je ne trouve aucune introduction sur la syntaxe pragma dans les documentations python.

44
hhbcarl

Il est apparemment lié à coverage.py :

Coverage.py est un outil pour mesurer la couverture de code des programmes Python. Il surveille votre programme, notant quelles parties du code ont été exécutées, puis analyse la source pour identifier le code qui aurait pu être exécuté mais ne l'était pas.

C'est exact # pragma: no cover est l'indice que la partie du code doit être ignorée par l'outil - voir Exclure le code de la couverture .

74
pepr

Pour Python, c'est simplement un commentaire. Il peut s'agir d'une annotation ciblant un outil externe, qui lit et analyse Python, similaire, par exemple, aux annotations #doctest: +Ellipsis De doctest ou au style # pylint: disable=W0613 De PyLint annotations.

12
Dirk