From d08d9ab19964915b4d88ed0e399aa10456080608 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Mon, 15 Feb 2010 01:38:49 +0000 Subject: Added errorcodes.lookup() function. --- lib/errorcodes.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/errorcodes.py') diff --git a/lib/errorcodes.py b/lib/errorcodes.py index 30110fd..3720697 100644 --- a/lib/errorcodes.py +++ b/lib/errorcodes.py @@ -29,6 +29,22 @@ This module contains symbolic names for all PostgreSQL error codes. # http://www.postgresql.org/docs/8.4/static/errcodes-appendix.html # +def lookup(code, _cache={}): + """Lookup a code error and return its symbolic name. + + Raise KeyError if the code is not found. + """ + if _cache: + return _cache[code] + + # Generate the lookup map at first usage. + for k, v in globals().iteritems(): + if isinstance(v, str) and len(v) in (2, 5): + _cache[v] = k + + return lookup(code) + + # autogenerated data: do not edit below this point. # Error classes -- cgit v1.2.1