Esempio n. 1
0
def profile_json(request):
    base_path = request.registry.settings['pstats_base_path']
    filename = request.params.get('filename')
    if not filename:
        raise exc.HTTPBadRequest("Missing filename param.")

    stats = pstats.Stats(get_pstats_path(base_path, filename))
    return proftojson.encode_stats(stats)
 def test_encode_stats(self, mock_name_mapper, mock_map_stats_dict, mock_json):
     stats = mock.Mock(stats=mock.MagicMock())
     result = proftojson.encode_stats(stats)
     assert_equal(result, mock_json.dumps.return_value)
     mock_name_mapper.assert_called_with()
     name_mapper = mock_name_mapper.return_value
     mock_map_stats_dict.assert_called_with(stats.stats, name_mapper,
         proftojson.map_stat_values)
     name_mapper.get_mapping.assert_called_with()
Esempio n. 3
0
#!/usr/bin/env python
"""Encode a cprofile as json."""

import optparse
import pstats

from psi import proftojson


def get_opts():
    parser = optparse.OptionParser()
    parser.add_option("-o", "--output", help="Filename of output file.")
    parser.add_option("-p", "--profile", help="Filename of input profile.")
    opts, _ = parser.parse_args()

    if not opts.output or not opts.profile:
        parser.perror("Profile and outfile filename required.")
    return opts


if __name__ == "__main__":
    opts = get_opts()
    with open(opts.output, "w") as f:
        f.write(proftojson.encode_stats(pstats.Stats(opts.profile)))