User:Mstone/Tricks: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 34: | Line 34: | ||
[http://dev.laptop.org/git?p=users/mstone/puritan;a=blob;f=main.py;hb=f9#l16 puritan's main.py] |
[http://dev.laptop.org/git?p=users/mstone/puritan;a=blob;f=main.py;hb=f9#l16 puritan's main.py] |
||
==== Eschew object-orientation ==== |
|||
rainbow's [http://dev.laptop.org/git?p=users/mstone/security;a=blob;f=rainbow/rainbow/inject.py;hb=cli inject.py] can be automatically checked for many errors by [http://www.logilab.org/project/pylint pylint] because it passes all data explicitly through function calls. |
Revision as of 00:44, 24 September 2008
Verbose Python Tracebacks
Just import nice_traces; if you're feeling fancy, then consider trace(sys.exc_info())
Handy report() function
See trac_helper.py
Pythonic relations
See my relation module and Alloy (which was my inspiration, though I've made nothing more than a poor knockoff).
Relational error logging
See trac_helper.py and collect-pkgs.py.
Email-based error reporting
See email_warnings.py.
RPM Makefiles
See rpm-packaging as well as individual projects like [1] along with my Fedora packaging bibliography.
pymeta parser-based controllers
See triagebot for cute tricks.
Python GDB Macros
http://wiki.python.org/moin/DebuggingWithGdb
Tree-based python context management
Eschew object-orientation
rainbow's inject.py can be automatically checked for many errors by pylint because it passes all data explicitly through function calls.