Source code for postgresql.sys

##
# .sys
##
"""
py-postgresql system functions and data.

Data
----

 ``libpath``
  The local file system paths that contain query libraries.

Overridable Functions
---------------------

 excformat
  Information that makes up an exception's displayed "body".
  Effectively, the implementation of `postgresql.exception.Error.__str__`

 msghook
  Display a message.
"""
import sys
import os
import traceback
from .python.element import format_element
from .python.string import indent

libpath = []

[docs]def default_errformat(val): """ Built-in error formatter. DON'T TOUCH! """ it = val._e_metas() if val.creator is not None: # Protect against element traceback failures. try: after = os.linesep + format_element(val.creator) except Exception: after = 'Element Traceback of %r caused exception:%s' %( type(val.creator).__name__, os.linesep ) after += indent(traceback.format_exc()) after = os.linesep + indent(after).rstrip() else: after = '' return next(it)[1] \ + os.linesep + ' ' \ + (os.linesep + ' ').join( k + ': ' + v for k, v in it ) + after
[docs]def default_msghook(msg, format_message = format_element): """ Built-in message hook. DON'T TOUCH! """ if sys.stderr and not sys.stderr.closed: try: sys.stderr.write(format_message(msg) + os.linesep) except Exception: try: sys.excepthook(*sys.exc_info()) except Exception: # gasp. pass
[docs]def errformat(*args, **kw): """ Raised Database Error formatter pointing to default_excformat. Override if you like. All postgresql.exceptions.Error's are formatted using this function. """ return default_errformat(*args, **kw)
[docs]def msghook(*args, **kw): """ Message hook pointing to default_msghook. Override if you like. All untrapped messages raised by driver connections come here to be printed to stderr. """ return default_msghook(*args, **kw)
[docs]def reset_errformat(with_func = errformat): 'restore the original excformat function' global errformat errformat = with_func
[docs]def reset_msghook(with_func = msghook): 'restore the original msghook function' global msghook msghook = with_func