Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
cumtime_percall = r.cummulativePer
cumtime_percall_str = time_fmt.format(cumtime_percall)
file_line_func = '{0}:{1}({2})'.format(r.filename,
r.lineno,
r.name)
rows.append(StatsRow(calls_value, calls_str,
tottime, tottime_str,
tottime_percall, tottime_percall_str,
cumtime, cumtime_str,
cumtime_percall, cumtime_percall_str,
file_line_func))
return rows
class VizHandler(handler.Handler):
"""
Handler for the main visualization page. Renders viz.html.
"""
def get(self, profile_name):
if self.request.path.startswith('/viz/file/'):
if self.settings['single_user_mode']:
# Allow opening arbitrary files by full filesystem path
# WARNING!!! Obviously this must be disabled by default
# TODO: Some modicum of error handling here as well...
json_path = '/json/file/%s.json' % profile_name
if profile_name[0] != '/' and platform.system() != 'Windows':
profile_name = '/' + profile_name
filename = os.path.abspath(profile_name)
filename : str
Any name to give a file.
Returns
-------
tempname : str
`filename` with temporary file directory prepended.
"""
if len(filename) == 0:
raise ValueError('filename must length greater than 0.')
return os.path.join(tempfile.gettempdir(), filename)
class UploadHandler(handler.Handler):
"""
Handler for a profile upload page. Not used in the command line
version.
"""
def get(self):
self.render('upload.html')
def post(self):
filename = self.request.files['profile'][0]['filename']
sfilename = storage_name(filename)
# save the stats info to a file so it can be loaded by pstats
with open(sfilename, 'wb') as f:
f.write(self.request.files['profile'][0]['body'])