python - Mensaje de Pylint: Nombre de constante no válida(nombre no válido)
(2)
El problema es que estás definiendo myprint a nivel de módulo.
Si lo define dentro de main, no obtendrá este error de pylint.
Pylint se queja de Invalid constant name "myprint" (invalid-name)
en el caso de una taquigrafía para una función de registrador.
# import
from utils import get_logger
LOGFILE = ''6_evaluator.log''
myprint = get_logger(LOGFILE)
def main():
# some stuff
myprint(''log log'')
if __name__ == ''__main__'':
main()
¿Se puede hacer esto sin ajustar la configuración del pylint?
Si es necesario, aquí está la definición de get_logger
:
import logging
import os
def get_logger(logfile):
""" Return a logger that log on stdout and in LOGFILE"""
if os.path.isfile(''{}''.format(logfile)):
os.remove(''{}''.format(logfile))
logging.basicConfig(filename=''{}''.format(logfile), level=logging.INFO)
logger = logging.getLogger('''')
logger.addHandler(logging.StreamHandler())
myprint = logger.info
myprint(''log file at: {}''.format(logfile))
myprint(''Again Hello from logger'')
return myprint
Mover la definición de myprint
a main()
es una forma de suprimir el mensaje.
Según los documentos de Pylint para invalid-name
(C0103) , parece que el nombre de una constante debe estar en mayúsculas. Como tal, el nombre MYPRINT
no generará el mensaje.
Si agrega el comentario como abajo a la línea, el mensaje no debe ser generado.
log = get_logger() # pylint: disable=locally-disabled, invalid-name
Alternativamente, agregue lo siguiente a .pylintrc
para su proyecto. Esta es mi solución preferida.
[BASIC]
good-names=log
Si desea que un patrón completo de nombres no válidos (y no solo un solo nombre) sea válido, de lo contrario puede personalizar const-rgx
, etc. en la misma sección. Consulte la página de pylint vinculada anteriormente.
Por último, si su aplicación es pequeña e independiente, solo puede configurar y usar el registrador raíz, como con logging.warn(''test'')
.