Así que estoy trabajando en un proyecto en Python y tratando de mantenerlo en estándares con la pildora y en general. Por lo tanto, tengo un archivo de origen, (sólo tendremos que llamarlo a.py)"Advertencia de importación no utilizada" y pylint
#a.py
import loggingsetup
def foo():
log.info("This is a log message")
Pero, quiero controlar lo que el registro se parece, por lo que en loggingsetup tengo algo como:
#loggingsetup.py
import logging
logging.root.setLevel(logging.DEBUG)
consoleOut = logging.StreamHandler()
consoleOut.setLevel(logging.INFO)
consoleOut.setFormatter(logging.Formatter("\t"+logging.BASIC_FORMAT))
logging.root.addHandler(consoleOut)
#etc
Ahora, esto parece funcionar bien. Supongo que como pregunta preliminar debería preguntar si esta es la forma correcta de hacerlo, o si hay una forma diferente de estructurar mi código que sería preferible.
Pero mi pregunta principal es que cuando ejecuto pylint en a.py recibo una advertencia como "importación no utilizada - import loggingsetup", ya que en realidad no estoy llamando a ningún método o función de loggingsetup.
Podría hacer algo así como redefinir el cuerpo de loggingsetup como una función y llamarlo, pero parece tonto y propenso a errores (tendría que preocuparme de llamarlo dos veces si importase loggingsetup desde otro lugar, y si entiendo cómo Python maneja las importaciones, eso no es un problema con mi configuración actual).
Pudiera simplemente decirle a la empresa que ignore la advertencia, pero pensé que podría preguntar aquí primero para asegurarme de que esto no sea algo que deba manejar de manera diferente.
Importación de un módulo sólo por sus efectos secundarios se siente mal a mí. Hace que la intención de tu código sea más difícil de discernir. Explícito es mejor que implícito. –
Es solo una advertencia de que puede haber olvidado algo y/o puede estar haciendo algo innecesario. Ignora si ese no es el caso. – martineau
En cierto modo estoy en desacuerdo con el sentimiento anterior de martineau. Sí, a veces es así, y tienes que ignorar las advertencias, pero por lo general las advertencias no deben tratarse como "recordatorios amistosos" e ignorarlas sin estar seguras, por lo que llegué a asegurarme de que podía ignorarlo, o obtener un mejor enfoque. – Retsam