text: # -*- coding: utf-8 -*-
  
  ## \package globals.debugging
  #
  #  Helper functions for printing debugging messages to terminal
  
  # MIT licensing
  # See: docs/LICENSE.txt
  
  
  import inspect
  
  
  ## Retrieves line number of script
  def lineno():
  	return inspect.currentframe().f_back.f_lineno
  
  
  ## Prints a message to the terminal
  #
  #  \param message
  #	\b \e string : Text do be output
  #  \param mode
  #	\b \e string : Message prefix printed in all capitals
  #  \param script
  #	\b \e string : Name of script from where function is being called
  #  \param line
  #	\b \e int : Line number of script where function is being called
  #  \param newline
  #	\b \e bool : If True, prepends an empty newline to printed message
  def HelperMessage(message, mode, script=None, line=None, newline=True):
  	if script:
  		if line:
  			script = u'{}:{}'.format(script, line)
  
  		message = u'[{}] {}'.format(script, message)
  
  	message = u'{}: {}'.format(mode.upper(), message)
  
  	if newline:
  		message = u'\n{}'.format(message)
  
  	print(message)
  
  
  ## Prints a DEBUG message to the terminal
  #
  #  \param message
  #	\b \e string : Text do be output
  #  \param script
  #	\b \e string : Name of script from where function is being called
  #  \param line
  #	\b \e int : Line number of script where function is being called
  #  \param newline
  #	\b \e bool : If True, prepends an empty newline to printed message
  def DebugMessage(message, script=None, line=None, newline=True):
  	HelperMessage(message, u'DEBUG', script, line, newline)
  
  
  ## Prints a FIXME message to the terminal
  #
  #  \param message
  #	\b \e string : Text do be output
  #  \param script
  #	\b \e string : Name of script from where function is being called
  #  \param line
  #	\b \e int : Line number of script where function is being called
  #  \param newline
  #	\b \e bool : If True, prepends an empty newline to printed message
  def FixmeMessage(message, script=None, line=None, newline=True):
  	HelperMessage(message, u'FIXME', script, line, newline)
  
  
  ## Prints a TODO message to the terminal
  #
  #  \param message
  #	\b \e string : Text do be output
  #  \param script
  #	\b \e string : Name of script from where function is being called
  #  \param line
  #	\b \e int : Line number of script where function is being called
  #  \param newline
  #	\b \e bool : If True, prepends an empty newline to printed message
  def TodoMessage(message, script=None, line=None, newline=True):
  	HelperMessage(message, u'TODO', script, line, newline)
  