Skip to content

hl037/dbug.py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Quick Debug functions to print informations on the context.

Each function has 3 optional keyword-only arguments :

  • i : indent level (defaults to 0)
  • indent_str : indent string for one level (defaults to 2 spaces)
  • stream : file-like object to output (defaults to stderr)

These two last parameters are actually defaulted to the module variables dbug._Dindent_str and dbug._Dstream.

Each functions F exist in 2 flavours :

  • F : normal
  • nF : print a new line before

Functions available

  • [n]D(*args, **kw) : Simply prints *args
  • [n]Dvar(*expr, **kw) : Print for each expression expr : f'{expr} = {eval(expr)}\n'
  • [n]DWAI(**kw) : Print W-here A-m I with this format : module.function(param=val_param, param2=val_param2...) # /path/to/function/definition:line_of_DWAI_call
  • [n]DNL(**kw) : Print a N-ew L-ine (i and indeit_str have no effect on this one
  • Dnop(res, *args) : Returns res, so that one can execute any side effect function in a list comprehension (best used with Dvar())
  • DnopL(*args, res) : Same as Dnop but execute the side effects first

Classes Available

There is also the Dbug class which takes as parameters stream and indent_str and have the normal version of the previous functions without the leading D, passing them stream and defaulting the indent level to Dbug.indent_level

  • Dbug.__call__(*args, **kw) calls D
  • Dbug.var(*expr, **kw) calls Dvar
  • Dbug.var(*expr, **kw) calls Dvar
  • Dbug.WAI(**kw) calls DWAI
  • Dbug.NL(**kw) calls NL

This class is also a context manager and you can do things like :

with Dbug(open('log', 'w')) as D :
  D.WAI()
  D.var('a')

As a shortcut to change the indent level for a Dbug instance object, you can use the shift operator :

with Dbug(open('log', 'w')) as D :
  D.WAI()
  D>>1  # indent level is now 1
  D.var('a')
  D<<1  # indent level is back to 0

Installation

pip install dbug

About

Quick Debug print functions to show variable values, context etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages