Nezu

Elegant debug module
-
Python Code Example
from nezu import say
x = 13
say('x')
-
Bash Commands to Debug
export NEZU_SEEK=1
python file.py
@4 L.. x:int => 13
-
Powershell Commands to Debug
$env:NEZU_SEEK = 1
python file.py
@4 L.. x:int => 13
Table of Contents
NEZU
Installation
Usage
Output Interpretation
@7 ..B print:function => Prints the values to a stream, or to sys...
│ │ │ │ │
│ │ │ │ └─ Value of inspected variable
│ │ │ │
│ │ │ └─────────────── Type of inspected variable.
│ │ │
│ │ └───────────────────── Name of inspected variable.
│ │
│ └───────────────────────── Scope of inspected variable (see bollow).
|
└─────────────────────────── Line number of inspection.
- Scope codes
L..
- local scope, no shadowing
Lg.
- local scope, shadowing global
L.b
- local scope, shadowing built-in
Lgb
- local scope, shadowing global and built-in
.G.
- Global scope, no shadowing
.Gb
- Global scope, shadowing built-in
..B
- Built-in scope, no shadowing
...
- Undefined
Function say
Inspect scopes and values of given keys (variable names etc.).
-
Args
-
*keys:str
Names of variables to inspect
-
note:str = None
Optional comment. Ignored if equal to None.
-
hide:int = 1
This argument is compared with nezu.seek
.
If nezu.seek >= hide
this debug inspection will be displayed.
If hide <= 0, this message will be displayed by default.
-
Python Code Example
from nezu import say
egg = 3
ham = int()
spam = {'spam':'bacon'}
say('egg')
say('ham.real')
say('print')
say('spam["spam"]')
-
Note
Output of say
function is hidden by default. If you want to see what nezu has to say you need to configure env var NEZU_SEEK
with value of 1
or more.
Config
Module nezu
creates nezu
object that has config attributes used by function say
.
- Attributes
nezu.seek:int = 0
Compared to say
argumenthide
, if nezu.seek >= hide
then say
will be printed.
nezu.color:bool = False
Determines if output of say
function should be colored.
nezu.lock:bool = False
If nezu.lock = True
, this config cannot be changed later, during runtime.
Env Vars Config
If you want to use default config method, change your env vars in terminal and run Python script.
JSON Config
If you don't want to use env vars as config, you can call nezu.json()
to read config data from json file.
It will search for key nezu
inside chosen file.
-
Args
path:str = 'nezu.json'
- path of config file
-
Example Python Code
from nezu import nezu, say
nezu.json('my/json/file.json')
-
Example Config File
"nezu": {
"seek": 1,
"color": true,
"locked": false
}
Hardcoded Config
If you don't want to use env vars as config you can also call object nezu
like function to make hardcoded config.
-
Args
seek:int = 0
- debug level
color:bool = False
- output coloring
lock:bool = False
- lock this config
-
Example
from nezu import nezu, say
nezu(1, True, False)
...
-
Tip
There is no built-in support for yaml, toml or .env in nezu
This is so nezu can stay free of dependencies.
However you can use hardcoded config to pass data from any config file.
Coloring output
By default nezu output is monochrome.
If your terminal of choise support coloring you can change that.
-
Example Bash Command
export NEZU_COLOR=1
python file.py
-
Example PowerShell Command
$env:NEZU_COLOR = $True
python file.py
-
Example JSON Config File
"nezu": {
"color": true,
}
-
Example Hardcoded Config
from nezu import nezu, say
nezu(color = True)
...
Hiding Output
Function say()
can be hidden more by hide
parameter. By default only say calls with hide <= nezu.seek
will be printed. In examples bellow only says hidden up to level 3 are displayed.
-
Python Code Example
from nezu import say
say('egg', hide=1)
say('ham', hide=2)
say('spam', hide=3)
say('bacon', hide=4)
say('lobster', hide=5)
-
Bash Example
export NEZU_SEEK=3
python file.py
@4 ... egg
@5 ... ham
@6 ... spam
-
PowerShell Example
$ENV:NEZU_SEEK = 3
python file.py
@4 ... egg
@5 ... ham
@6 ... spam
-
JSON File Example
"nezu": {
"seek": 3
}