Personal collection of helpers and often-useful snippets for Python
Install the latest version with pip install -U "git+https://gitlab.com/hoverhell/pyaux.git#egg=pyaux"
Contains:
- window: iterator over a 'window' of N adjacent elements
- dotdict: attr→item dict subclass (e.g. for d.key instead of d['key'])
- DebugPlug: recursive duck-object for debug and testing purposes
- repr_call: convenient syntactically-appropriate representation of call arguments (also used in DebugPlug)
- fxrange, frange, dxrange, drange: xrange() / range() equivalents for float (without error accumulation) and Decimal
- dict_fget, dict_fsetdefault: versions of dict.get and dict.setdefault with lazy-computation of the default value
- split_list: simple one-pass splitting of list into two by a condition
- use_cdecimal: forced instance-wide use (by monkey-hack) of cdecimal instead of decimal (for performance)
- use_exc_ipdb: set unhandled exception handler to run ipdb.pm()
- use_exc_log: set unhandled exception handler to log (by logging) the exception and the stack trace including (when possible) the local variables.
- use_colorer: monkey-patch logging for colored logging
- obj2dict: recursive converter of tree-structure of classes into a tree-structure of dicts, e.g. for pretty-printing the result
- mk_logging_property: make a property that debug-logs the value and caller info when set
- Some other things that are too minor to be listed here.
Also, in separate submodules:
- psql: helpers for saving Django ORM objects into an SQL 'COPY'-like file and loading it in one SQL command (for high-performance loading of large amounts of data into the database)
- lzmah: lzma compress (as function and as an executable file); also provides a function unjsllzma to stream-read (json) lines from a pylzma-compressed file
- lzcat: lzcat for pylzma-specific format (as function and as an executale file)
- runlib: various things for runscripts:
- init_logging: logging.basicConfig with useful defaults (for development runscripts).
- sigeventer: list-based signal handler for SIGINT and SIGTERM (for appending handler functions, similarly to atexit)