Cómo escribir un validador de sangría de Python

No lo hagas La sangría en Python no es fácil a pesar de lo que parece a primera vista. Use las herramientas existentes que ya hacen este trabajo por usted. De lo contrario, podría ser mordido.

Solo para darte una pequeña idea de las dificultades …

Este es Python perfectamente válido:

def my_function ():
“” ”
Aquí está mi docstring.

“” ”

… pero esto no es:

def my_function ():

¿Qué hay de esto?

def my_function ():

“” ”
“” ”

También puede desarrollar una definición de función en varias líneas … ah, y mezclarlas con cadenas de documentos y comentarios …

Este es Python válido:

def my_function ():

“”” Devoluciones: “””
def my_other_function (arg1,
# sdssdsg
arg2,
# y sigo aquí
arg3,
# y que hay de aqui?
arg4):
pasar
arg = arg1 + \
arg2 + \
arg3 + \
arg4
print (“hola”)

Buena suerte analizando eso … y eso es solo la parte superior del iceberg …

Le dirigiría a la documentación de Python, donde describe los análisis léxicos. Después de leer eso, se me ocurrieron algunas ideas para escribir un analizador y un convertidor personalizados. Probablemente terminaré escribiéndolo en Python si alguna vez decido hacerlo.

https://docs.python.org/3/refere