python - vscode - warnings examples
"Advertencia de importaciĆ³n no utilizada" y pylint (5)
Como se ha mencionado, envuélvalo en una función y llamar a la configuración explícitamente resolvería esta advertencia. Y como Steven mencionó, este sería considerado un mejor código, ya que es más explícito sobre lo que está haciendo.
Si le preocupa llamar a esta función dos veces, puede, por supuesto, usar un indicador interno de módulo para permitir la ejecución del cuerpo de la función solo una vez.
__initialized = False
def init():
if not __initialized:
__initialized = True
#DoStuff
Así que estoy trabajando en un proyecto en Python y tratando de mantenerlo a la altura de los estándares con pylint y en general Entonces, tengo un archivo de origen, (lo llamaremos a.py)
#a.py
import loggingsetup
def foo():
log.info("This is a log message")
Pero, quiero controlar cómo se ve el registro, así 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 "import - import loggingetup sin usar", ya que no estoy llamando a ningún método o función desde loggingsetup.
Podría hacer algo 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 importé loggingsetup de otra parte, y si entiendo cómo Python maneja las importaciones, eso no es un problema con mi configuración actual).
Obviamente, simplemente podría decirle a pylint que ignore la advertencia, pero pensé que primero pediría aquí para asegurarme de que esto no sea algo que deba manejar de manera diferente.
El enfoque que usaría es usar loggingsetup
como una especie de envoltorio para el logging
.
import logging
# set up logging config here
from logging import *
Luego en sus otros módulos usted:
import loggingsetup as logging
Es posible que desee utilizar un nombre distinto de loggingsetup
en este caso, por ejemplo, tweaked_logging
o logging_with_my_settings
.
En tales casos, aún puede indicar explícitamente a pylint que esta importación no utilizada está prevista:
import loggingsetup # pylint: disable=unused-import
Observe que la instrucción está en la misma línea que la importación, por lo que W0611 solo está deshabilitado para esta línea y no para todos los bloques a continuación.
Si usa pylint
y flake8
, puede ignorar la advertencia de importación no utilizada en ambas herramientas de esta manera:
import loggingsetup # noqa # pylint: disable=unused-import
su código debe estar en una función llamada una vez en el script principal