Skip to main content

Elegant debuging module

Project description

Nezu

PyPI version License Dependencies

Elegant debug module

  • Python Code Example

    # file.py
    from nezu import say
    x = 13
    say('x')  # Prints debug info.
    
  • Bash Commands to Debug

    export NEZU_SEEK=1
    python file.py
        @4 l x:int  =>  13
    

Table of Contents

NEZU

Installation

  • Pip

    python -m pip install nezu
    
  • Poetry

    python -m poetry add nezu
    

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.
 │                          l:local, g:global, b:build-in, u:undefined
 |
 └───────────────────────── Line number of inspection.

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

    # file.py
    from nezu import say
    
    egg = 3
    ham = int()
    spam = {'spam':'bacon'}
    
    say('egg')          # Works on simple variables.
    say('ham.real')     # Works on attributes.
    say('print')        # Works on functions and build-ins.
    say('spam["spam"]') # DOES NOT work on keys and indexes yet.
    
  • 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.

  • Bash

    export NEZU_SEEK=1
    export NEZU_COLOR=1
    export NEZU_LOCK=0
    python file.py
    
  • PowerShell

    $env:NEZU_SEEK = 1
    $env:NEZU_COLOR = $True
    $env:NEZU_LOCK = $True
    python file.py
    

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

    # file.py
    from nezu import nezu, say
    
    nezu(1, True, False)
    ...
    
  • Tip

    There is no build-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

    #file.py
    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 u egg
          @5 u ham
          @6 u spam
    
  • PowerShell Example

    $ENV:NEZU_SEEK = 3 
    python file.py
          @4 u egg
          @5 u ham
          @6 u spam
    
  • JSON File Example

    "nezu": {
        "seek": 3
    }
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nezu-0.3.13.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nezu-0.3.13-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file nezu-0.3.13.tar.gz.

File metadata

  • Download URL: nezu-0.3.13.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.7 Windows/10

File hashes

Hashes for nezu-0.3.13.tar.gz
Algorithm Hash digest
SHA256 8911d88b929d24ef48d5f92f6b42386c8493d96df90e5b1fda2288c8e17faa93
MD5 12bf8c20a96f8aa5eaa61edc0e56b697
BLAKE2b-256 c22c889ec2df64d458ba9ba6dbadf22c63c9e502886d2a79b109bae9d7e258d4

See more details on using hashes here.

File details

Details for the file nezu-0.3.13-py3-none-any.whl.

File metadata

  • Download URL: nezu-0.3.13-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.7 Windows/10

File hashes

Hashes for nezu-0.3.13-py3-none-any.whl
Algorithm Hash digest
SHA256 2e54310f631469ff1c0d4db6a9efd47f0195a1438d7bdf2e2c367f2627799b57
MD5 35bdf13a84ffec014bd986def06ab08e
BLAKE2b-256 44b4a4e6681b224dac9e9984584965b88021572ad69cca5bd0af81b26b3b14b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page