0

There is Resource class in module twisted.web.resource. Is it possible to output path to executing code of handlers or even classname by using of this class, when I'm making requests from browser? Make full tree of resources? It needs for making easier way of coding for developers.

yavalvas
  • 330
  • 2
  • 17

1 Answers1

0

Solved this problem. It's able to make changes for sources of twisted in such way: In site-packages/twisted/web/resource.py make metaclass with plotting of graphs with class-subclass relation

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

And also available to output way to handler of the current request by printing of

resrc = self.site.getResourceFor(self)

in the source code site-packages/twisted/web/server.py

yavalvas
  • 330
  • 2
  • 17