def run(name, trace_filter=None, config=None, comment=None): if not config: config = Config() if trace_filter: config.trace_filter = trace_filter graphviz = GraphvizOutput() graphviz.output_file = 'filter-{}.png'.format(name) if comment: graphviz.graph_attributes['graph']['label'] = comment with PyCallGraph(config=config, output=graphviz): banana = Banana() banana.eat()
def run(name, trace_grouper=None, config=None, comment=None): if not config: config = Config() config.trace_filter = GlobbingFilter() if trace_grouper is not None: config.trace_grouper = trace_grouper graphviz = GraphvizOutput() graphviz.output_file = 'grouper-{}.png'.format(name) if comment: graphviz.graph_attributes['graph']['label'] = comment with PyCallGraph(config=config, output=graphviz): example_with_submodules.main()
def stdlib_trace(trace_processor, include_stdlib): trace_processor.config = Config(include_stdlib=include_stdlib) sys.settrace(trace_processor.process) re.match("asdf", "asdf") calls.one_nop() sys.settrace(None) return trace_processor.call_dict
def main(): graphviz = GraphvizOutput() graphviz.output_file = 'regexp.png' config = Config(include_stdlib=True) with PyCallGraph(output=graphviz, config=config): reo = compile() match(reo)
def main(): graphviz = GraphvizOutput() graphviz.output_file = 'large.png' config = Config(include_stdlib=True) with PyCallGraph(output=graphviz, config=config): from urllib3 import urlopen from xml.dom.minidom import parseString parseString(urlopen('http://w3.org/').read())
def main(): import_list = ( 'pickle', 'htmllib', 'urllib2', ) graphviz = GraphvizOutput() config = Config(include_stdlib=True) for module in import_list: graphviz.output_file = 'import-{}.png'.format(module) with PyCallGraph(output=graphviz, config=config): __import__(module)
def main(): graphviz = GraphvizOutput() pycallgraph = PyCallGraph(output=graphviz, config=Config(include_stdlib=True)) pycallgraph.start() pycallgraph.stop() # Set the edge colour to black for all examples graphviz.edge_color_func = lambda e: Color(0, 0, 0) # Default node colouring graphviz.output_file = 'colours-default.png' graphviz.done() def run(func, output_file): graphviz.node_color_func = func graphviz.output_file = output_file graphviz.done() run(rainbow, 'colors-rainbow.png') run(greyscale, 'colors-greyscale.png') run(orange_green, 'colors-orange-green.png') run(rand, 'colors-random.png')
def test_set_config(): """Should not raise!""" Output().set_config(Config())
def test_init(): assert Config().groups assert Config(groups=False).groups is False
def filter_depth(): config = Config() config.max_depth = 1 run('max_depth', config=config, comment='Should only show a depth of one.')
from breakpoints import * import numpy as np def filter_fun(name): return name[0] == "_" # def filtercalls(clas, func, full): # mod_ignore = ['shutil','scipy.optimize','re','os','sys','json', 'numpy', 'np', 'logging'] # func_ignore = filter(filter_fun, func) ++ ['logging'] # clas_ignore = ['pdb', 'logging'] # return modul not in mod_ignore and func not in func_ignore and clas not in clas_ignore config = Config(max_depth=7) config.trace_filter = GlobbingFilter(exclude=[ 'logging.*', '__main__', "all", "any", "abc.__instancecheck__", "abc.__subclasscheck__", "utils.Breakpoints.__init__", "copy", "repeat", "vstack", "allclose", "concatenate", "isclose", "argmin",
import matplotlib import numpy as np import pytest from nottingham_covid_modelling import MODULE_DIR from nottingham_covid_modelling.optimise_model import run_optimise from pycallgraph2 import PyCallGraph from pycallgraph2.output import GraphvizOutput from pycallgraph2 import Config from pycallgraph2 import GlobbingFilter #config.trace_filter = GlobbingFilter(include=['__main__', 'nottingham_covid_modelling.*', 'pints']) #config.trace_filter = GlobbingFilter(exclude=['argparse', 'argparse.*' 'nottingham_covid_modelling.lib.data', 'nottingham_covid_modelling.lib.data.*', 'unittest', 'unittest.*', 'codecs', 'codecs.*', 'amax', 'argsort', '_bootlocale', 'all', 'logging', 'logging.*', '--new--', '-handle_fromlist', 'warnings', 'warnings.*', 'posixpath', 'posixpath.*', 'os', 'os.*', 'genericpath', 'genericpath.*', 'locle', 'locale.*']) graphviz = GraphvizOutput() graphviz.output_file = '/home/uczmh2/optimise_model.png' testargs = ["run_optimise", "--limit_pints_iterations", "10"] config = Config(max_depth=5) config.trace_filter = GlobbingFilter(exclude=[ 'pycallgraph.*', 'argparse', 'argparse.*', 'unittest', 'unittest.*', 'logging', 'logging.*', '--new--', 'nottingham_covid_modelling.data.*', 'nottingham_covid_modelling.data.DataLoader', 'nottingham_covid_modelling.data.DataLoader.*' ]) with PyCallGraph(output=graphviz, config=config): with mock.patch.object(sys, 'argv', testargs): run_optimise()
def config(): return Config()