Recibo un error de Pylint con respecto a mi constante: MIN_SOIL_PARTICLE_DENS(nombre no válido). ¿Alguna idea de por qué esta constante está mal? Aquí está mi función completa:
def bulk_density(clay, sand, organic_matter):
MIN_SOIL_PARTICLE_DENS = 2.65
x1 = (0.078 + 0.278 * sand + 0.034 * clay + 0.022 * organic_matter - 0.018
* sand * organic_matter - 0.027 * clay * organic_matter - 0.584 * sand
* clay)
x2 = -0.107 + 1.636 * x1
field_capacity = vol_water_content_33_j_kg(clay, sand, organic_matter)#m3/m3
sat_water_content = 0.043 + field_capacity + x2 - 0.097 * sand
return (1 - sat_water_content) * MIN_SOIL_PARTICLE_DENS
fuente

func_name = make_func(1,2,3)podría considerarse incorrecto? El caso de uso actual estávlen = numpy.vectorize(len)en el módulo utils para trabajar con matrices irregulares en h5py .Pocas reglas simples:
UPPER_CASEsolo con letras y deben definirse a nivel de móduloCamelCaseletraslower_casey deben definirse dentro de la función, clases, etc.Ahora hablemos de tu caso
MIN_SOIL_PARTICLE_DENSse define dentro de una función y solo debe tener letras minúsculas. Por lo tanto, en lugar de considerarloMIN_SOIL_PARTICLE_DENScomo una constante, pylint lo considera como una variable aquí y por lo tanto el error de pylint.Tutorial de Pylint
fuente
Encontré este comportamiento molesto, ¡pero hay una manera de configurar pylint para evitarlo!
Fusiona la siguiente declaración de estilo ini en tu
.pylintrcarchivo:[BASIC] variable-rgx=((([a-z_][a-z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-z][a-z0-9_]+__))$)|([A-Z_][A-Z0-9_]+$)Construí esta expresión regular tomando
la expresión regular snake_case predeterminada tomada de la fuente de pylint en esta línea ,
la expresión regular CONST_VAR predeterminada tomada de la fuente de pylint en esta línea
y uniéndolos con
|y algunos paréntesis.Teóricamente, también podría simplemente tomar
.*, pero esto permitiría incluso nombres no válidos comomixed_CASE.fuente