class_docstr: Profile python/cython files or functions
  
  If you are profiling cython code you need to add
  # cython: profile=True on the top of your .pyx file
  
  and for the functions that you do not want to profile you can use
  this decorator in your cython files
  
  @cython.profile(False)
  
  Parameters
  ----------
  caller : file or function call
  args : function arguments
  
  Attributes
  ----------
  stats : function, stats.print_stats(10) will prin the 10 slower functions
  
  Examples
  --------
  from dipy.core.profile import Profiler
  import numpy as np
  p=Profiler(np.sum,np.random.rand(1000000,3))
  fname='test.py'
  p=Profiler(fname)
  p.print_stats(10)
  p.print_stats('det')
  
  References
  ----------
  https://docs.cython.org/src/tutorial/profiling_tutorial.html
  https://docs.python.org/library/profile.html
  https://github.com/rkern/line_profiler
docstr: Print stats for profiling
  
  You can use it in all different ways developed in pstats
  for example
  print_stats(10) will give you the 10 slowest calls
  or
  print_stats('function_name')
  will give you the stats for all the calls with name 'function_name'
  
  Parameters
  ----------
  N : stats.print_stats argument
docstr_tok: ["Print","stats","for","profiling","You","can","use","it","in","all","different","ways","developed","in","pstats","for","example","print_stats","(","10",")","will","give","you","the","10","slowest","calls","or","print_stats","(","'function_name","'",")","will","give","you","the","stats","for","all","the","calls","with","name","'function_name'","Parameters","--","--","--","--","--","N",":","stats.print_stats","argument"]
code: def print_stats(self, N=10):
      """Print stats for profiling
  
      You can use it in all different ways developed in pstats
      for example
      print_stats(10) will give you the 10 slowest calls
      or
      print_stats('function_name')
      will give you the stats for all the calls with name 'function_name'
  
      Parameters
      ----------
      N : stats.print_stats argument
  
      """
      self.stats.print_stats(N)
  
imports: import os
  import subprocess
  from dipy.utils.optpkg import optional_package
label_desc: Use image node_id 3 for calling the Profiler obj's underlying member method code with example usage: obj.print_stats(N) without return types