All Projects → DIYer22 → Boxx

DIYer22 / Boxx

Tool-box for efficient build and debug in Python. Especially for Scientific Computing and Computer Vision.

Programming Languages

python
139335 projects - #7 most used programming language
hack
652 projects

Projects that are alternatives of or similar to Boxx

react-native-debug-console
A network and console debug component and modal for react native purely in JavaScript
Stars: ✭ 17 (-96.04%)
Mutual labels:  debugging, debug
deno-debug
Debugging utility for deno. Ported from https://npmjs.com/debug
Stars: ✭ 15 (-96.5%)
Mutual labels:  debugging, debug
SmartDump
SmartDump - an exception and memory dump capture utility
Stars: ✭ 17 (-96.04%)
Mutual labels:  debugging, debug
windbgtree
A command tree based on commands and extensions for Windows Kernel Debugging.
Stars: ✭ 94 (-78.09%)
Mutual labels:  debugging, debug
Debugo
一个可能有点用的 iOS 调试工具~
Stars: ✭ 258 (-39.86%)
Mutual labels:  debugging, debug
debug
A small debugging library for C++
Stars: ✭ 30 (-93.01%)
Mutual labels:  debugging, debug
docker-pudb
Debug Python code within a Docker container remotely from your terminal using pudb
Stars: ✭ 18 (-95.8%)
Mutual labels:  debugging, debug
ducky
Chrome extension to overlay a (super adorable) rubber duck, as a virtual companion during rubber duck debugging.
Stars: ✭ 80 (-81.35%)
Mutual labels:  debugging, debug
caddy-trace
Request Debugging Middleware Plugin for Caddy v2
Stars: ✭ 25 (-94.17%)
Mutual labels:  debugging, debug
pydbg
Python implementation of the Rust `dbg` macro
Stars: ✭ 85 (-80.19%)
Mutual labels:  debugging, debug
axios-curlirize
axios plugin converting requests to cURL commands, saving and logging them.
Stars: ✭ 152 (-64.57%)
Mutual labels:  debugging, debug
Tensorwatch
Debugging, monitoring and visualization for Python Machine Learning and Data Science
Stars: ✭ 3,191 (+643.82%)
Mutual labels:  debugging, debug
clrprint
Print colorful output in the terminal, idle, cmd, and Windows PowerShell using the same functions.
Stars: ✭ 22 (-94.87%)
Mutual labels:  debugging, debug
Xcglogger
A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.
Stars: ✭ 3,710 (+764.8%)
Mutual labels:  debugging, debug
PowerPreference
💾 A Powerful library to control and simplify the usage of shared preference in Android.
Stars: ✭ 95 (-77.86%)
Mutual labels:  debugging, debug
kokkos-tools
Kokkos C++ Performance Portability Programming EcoSystem: Profiling and Debugging Tools
Stars: ✭ 52 (-87.88%)
Mutual labels:  debugging, debug
bugsnag-vue
[DEPRECATED] This package now lives within the monorepo for our Universal JS notifier "@bugsnag/js" • https://github.com/bugsnag/bugsnag-js
Stars: ✭ 26 (-93.94%)
Mutual labels:  debugging, debug
dwarf import
This loads DWARF info from an open binary and propagates function names, arguments, and type info
Stars: ✭ 18 (-95.8%)
Mutual labels:  debugging, debug
CrashLogger
A dll injected into process to dump stack when crashing.
Stars: ✭ 19 (-95.57%)
Mutual labels:  debugging, debug
Bistoury
Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案
Stars: ✭ 3,198 (+645.45%)
Mutual labels:  debugging, debug

Language : English Chinese


Box-X

Hack Python and Vision
A Tool-box for Efficient Build and Debug in Python. Especially for Scientific Computing and Computer Vision.

Code with ❤︎ by DIYer22 and contributors


1. Introduce

Box-X is a Tool-box for Efficient Build and Debug in Python.

Especially for Scientific Computing and Computer Vision.

So, all Tools are divided into 2 parts by wether the tool is general used:

  • General Python Tool: Tools could be used anywhere in Python

  • Scientific Computing and Computer Vision Tool: Those tools are useful in Scientific Computing and Computer Vision field

P.S. boxx supports both Python 2/3 on Linux | macOS | Windows with CPython | IPython | Spyder | Notebook environment.

2. Install

pip install boxx

3. Tutorial

Box-X's Tutorial is a Jupyter Notebook file

There are 3 methods to run or view this Notebook file

Method 1: Executable Interactive Online Notebook

We use Binder to run Tutorial Notebook in an executable interactive online jupyer environment.
That's mean you can run code in notebook rightnow in your browser without download or install anything.

Method 2: Download and Run at Local

git clone https://github.com/DIYer22/boxx
cd boxx/
python setup.py install
jupyter notebook

Then open ./tutorial_for_boxx.ipynb in notebook.

Method 3: Static Noetbook

Just view the Tutorial Notebook.

4. Examples

Examples are divided into 2 parts too.

General Python Tool on left, Scientific Computing and Computer Vision Tool on right.

💡 Note:

  • Click the image will see more clearer image, and if image is GIF, GIF will be replayed
  • The following content is layout of desktop browser, if you are viewing through a mobile browser, it is recommended to visit => Static Tutorial

General Python Tool


p/x is better way to print(x)

p/x will print(x) and return x click to restart GIF and see more clearer GIF
💡 Note: p/x is easy to print value in expression.






▶ Use g.name = x or g.name/x to transport variable to Python interactive console

click to restart GIF and see more clearer GIF
💡 Note:

  • gg is the meaning of "to Global and log", has same usage as g, but gg will print the transported variable.
  • if variable name exists in console before, the variable's value will be covered by new value.




g() to transport all vars that in the function to Python interactive console

click to restart GIF and see more clearer GIF
💡 Note: g() is a useful tool for debug. import boxx.g is convenient way to use g() instead of from boxx import g;g()(import boxx.gg is avaliable too)






with p, with g, with gg are mulit variables version of p, g, gg that work under "with statement"

Only act on interested variables which is under "with statement" click to restart GIF and see more clearer GIF
💡 Note:

  • with p, with g, with gg only act on assignment variables under "with statement".

  • If variable's name exists in locals() before and id(variable) not change ,variable may not be detected


Scientific Computing and Computer Vision

Useful tools in Scientific Computing and Computer Vision field. All tools support array-like types, include numpy, torch.tensor, mxnet.ndarray, PIL.Image .etc

💡 Note: If you are using ssh to execute code on a remote server, it is recommended that ssh plus -X make visualized plt charts can be transferred to the local and display, like ssh -x [email protected].


loga to visualization matrix and tensor

loga is short of "log array", loga will show many attributes of array-like object. click to restart GIF and see more clearer GIF
💡 Note: loga analysis array-like object by it's shape, max, min, mean, and distribute. Support numpy, torch.tensor, mxnet.ndarray, PIL.Image .etc






show is easy to do imshow, even images are in complex struct

show could find every image in complex struct and imshow they. click to restart GIF and see more clearer GIF
💡 Note: if args inculde function(like torgb). those functions will process all numpys befor imshow.






tree for visualization complex struct

like tree command in shell, boxx.tree could visualization any struct in tree struct view. click to restart GIF and see more clearer GIF
💡 Note: tree support types include list, tuple, dict, numpy, torch.tensor/Dataset/DataLoader, mxnet.ndarray, PIL.Image.etc


boxx debug tool matrix

How many vars \ Operation print transport print & transport
Single variable p/x g.name/x gg.name/x
Multi variables with p: with g: with gg:
All locals() p() g() gg()
All locals()_2 import boxx.p import boxx.g import boxx.gg

💡 Note:

  • transport mean "transport variable to Python interactive console"
  • All locals() mean operation will act on all variables in the function or module
  • All locals()_2 : when boxx are not imported, import boxx.{operation} is a convenient way to execution operation


what to know "What's this?"

click to restart GIF and see more clearer GIF
💡 Note: what(x) will show "what is x?" by pretty print it's Self, Document, Father Classes, Inner Struct and Attributes. It is a supplement of help(x).


timeit is convenient timing tool

click to restart GIF and see more clearer GIF
💡 Note: timeit will timing code block under "with statement" and print spend time in blue color.


mapmp is Multi Process version of map

mapmp is the meaning of "MAP for Multi Process", has the same usage as map but faster.
click to restart GIF and see more clearer GIF
💡 Note:

  • pool parameter in mapmp mean the number of Process, the default is the number of CPUs in the system.
  • In multi process programs, display processing progress is troublesome. printfreq parameter in mapmp can handle this problem.
  • Like map, mapmp support muliti args to as input to function, like mapmp(add, list_1, list_2).
    • It's better to run multi process under __name__ == '__main__' environment.
  • If you speed up the numpy program, note that in the MKL version of numpy, multiple processes will be slower. You can run boxx.testNumpyMultiprocessing() to test how friendly the current environment is to a multi-process numpy.


heatmap to show the time heat map of your code

click to restart GIF and see more clearer GIF
💡 Note: heatmap also support python code string.


performance could statistic function calls and visualize code performance

click to restart GIF and see more clearer GIF
💡 Note: performance also support python code string.


5. Acknowledgments

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].