Eh bien, même si Python ne traite pas les chaînes définies immédiatement après une définition globale comme une docstring pour la variable, sphinx le fait et ce n'est certainement pas une mauvaise pratique de les inclure.
debug = False
'''Set to True to turn on debugging mode. This enables opening IPython on
exceptions.
'''
Voici du code qui analysera un module et extraira les noms des définitions de variables globales, la valeur et une docstring qui suit.
def GetVarDocs(fname):
'''Read the module referenced in fname (often <module>.__file__) and return a
dict with global variables, their value and the "docstring" that follows
the definition of the variable
'''
import ast,os
fname = os.path.splitext(fname)[0]+'.py' # convert .pyc to .py
with open(fname, 'r') as f:
fstr = f.read()
d = {}
key = None
for node in ast.walk(ast.parse(fstr)):
if isinstance(node,ast.Assign):
key = node.targets[0].id
d[key] = [node.value.id,'']
continue
elif isinstance(node,ast.Expr) and key:
d[key][1] = node.value.s.strip()
key = None
return d