2014-07-24 1 views
0

Il existe une classe Resource dans le module twisted.web.resource. Est-il possible de produire un chemin d'accès à l'exécution de code de gestionnaires ou même de nom de classe en utilisant cette classe, lorsque je fais des requêtes depuis le navigateur? Faire l'arbre complet des ressources? Il a besoin de faciliter le codage des développeurs.Comment tracer l'arborescence des ressources dans twisted.web python

Répondre

0

Résolu ce problème. Il est en mesure de faire des changements pour les sources de tordu de telle manière: Dans site-packages/twisted/web/resource.py faire métaclasse avec tracé des graphiques avec relation classe sous-classe

import pygraphviz as pgv 
A=pgv.AGraph() 
A.node_attr.update(color="red", style="filled") 
A.edge_attr.update(color="blue", len="10.0", width="2.0") 
class Watcher(type): 
    def __init__(cls, name, bases, clsdict): 
     print(bases,"was subclassed by " + name) 
     print("Class", cls) 
     print("CLS DICT", clsdict) 
     print("\n\n"*3) 
     A.add_edge(bases, name) 
     super(Watcher, cls).__init__(name, bases, clsdict) 
     A.write('resources_graph.dot') 
     B=pgv.AGraph('resources_graph.dot') 
     B.layout() 
     B.draw('resources_graph.png') 
class Resource: 
    __metaclass__ = Watcher 

Et aussi disponible à sens unique de sortie au gestionnaire de la demande en cours par impression de

resrc = self.site.getResourceFor(self) 

dans le code source site-packages/twisted/web/server.py