A set of convenience utils for Python requiring no external libs. Some of the best tricks from django-htk
, without the bloat and Django dependency.
- Debug via Slack using
slack_debug
andslack_debug_json
. The best ofprintln
debugging, without the inconvenience of visually fishing for one message out of thousands of log lines. - Debug via writing to local file using
fdb
(fdebug
) andfdb_json
(fdebug_json
). Certifiably awesome, fast, and secure.
- Install via PIP:
pip install htk
- (Alternative install via clone) Install via local clone: clone this repository into a directory named
htk
SSH:git clone git@github.com:hacktoolkit/python-htk.git htk
HTTPS:git clone https://github.com/hacktoolkit/python-htk.git
- Add your Slack incoming webhook URL.
- Create an ENV variable named
HTK_SLACK_WEBHOOK_URL
orSLACK_WEBHOOK_URL
. - For a local clone, you can also create a
local_settings.py
and add the constantHTK_SLACK_WEBHOOK_URL
orSLACK_WEBHOOK_URL
within.
- Create an ENV variable named
- You can place it outside of your app directory tree, and then symlink it inside.
- To not be nagged by the presence of the
htk
directory whenever you dogit status
, addhtk
to your.git/info/exclude
file (like.gitignore
, but only in your local repository, not checked in).
- Example usage in Python Shell
In [1]: from htk import slack_debug In [2]: from htk import slack_debug_json In [3]: slack_debug('This is seriously awesome!') Out[3]: <Response [200]> In [4]: slack_debug('Yeah, no kidding.') Out[4]: <Response [200]> In [5]: slack_debug_json({'A':1,'B':2,'C':3,'X':['foo','bar','baz'],'Z':{'nested_key':'nested_val ...: ue'}}), Out[5]: (None,)
- Check your Slack to verify that the message was posted. If not, perhaps your token was wrong, or the Slack integration was disabled.
(Alternative link to screenshot above: https://cl.ly/436cfb4383a2) - Profit!
- (Recommended) Create a BASH alias or similar:
alias fdb='touch /tmp/fdebug.log; tail -f /tmp/fdebug.log'
- By default, the file path which
fdb
writes to is/tmp/fdebug.log
. This is because/tmp
is generally a writeable path on most systems. - In a separate window used for debugging, run
fdb
to watch the logs roll in.
- By default, the file path which
from htk import fdb
fdb('Not all heroes wear capes')
- If a different file path is desired, simply invoke
fdb
with its second optional argument: `fdb('log or debugging message', file_path='/path/to/fdebug.log')
- If a different file path is desired, simply invoke
- C# - https://github.com/hacktoolkit/csharp-htk
- JavaScript - https://github.com/hacktoolkit/htk.js
- PHP - https://github.com/hacktoolkit/php-htk
- Python (full) - https://github.com/hacktoolkit/python-htk
- Python (lite) - https://github.com/hacktoolkit/python-htk-lite
- Ruby - https://github.com/hacktoolkit/htk-rb
MIT. See LICENSE.md