diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2010-02-15 01:38:49 +0000 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2010-02-15 01:38:49 +0000 |
commit | d08d9ab19964915b4d88ed0e399aa10456080608 (patch) | |
tree | 20f2c43526ce5a2bdc2d25eb7bc0c0187253dc29 /lib/errorcodes.py | |
parent | 3da7a33ffb213de5fb5ed66b1c15fd3218db21df (diff) | |
download | psycopg2-d08d9ab19964915b4d88ed0e399aa10456080608.tar.gz |
Added errorcodes.lookup() function.
Diffstat (limited to 'lib/errorcodes.py')
-rw-r--r-- | lib/errorcodes.py | 16 |
1 files changed, 16 insertions, 0 deletions
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 |