Tool to make drilling into Python objects easy & painless
Project description
Safe Access
==============
Tired of always checking hasattr, len, or if a key is in a dictionary? safe_access allows
you to safely drill down multiple levels into any python object without having to worry about
AttributeErrors, KeyErrors, or IndexErrors. Oh, and it supports wildcards.
*Available on pypi*: https://pypi.python.org/pypi/safe_access
python
from safe_access import safe_access
class A(object):
pass
a = A()
a.b = {"abc": ['x', 'y', 'z'], "def": [1, 2, 3]}
# Access valid path
print safe_access(a, 'a.b["abc"][1]', default_value=7)
# returns 'y'
# Access valid path with variable substitution
myvar = 1
print safe_access(a, 'a.b["abc"][myvar]', default_value=7, myvar=myvar)
# returns 'y'
# Access that causes index out of range, but returns default value of 7
print safe_access(a, 'a.b["abc"][404]', default_value=7)
# returns 7
# Access non-existant attribute
print safe_access(a, 'a.bad_attribute')
# returns None
# Access wildcard
print safe_access(a, 'a.b[*][0]')
# returns ['x', 1]
Limitations:
\1. Does not support function calls at this time
\2. Does not support escaped quotations
\3. Does not support variable references withing tuple literals
==============
Tired of always checking hasattr, len, or if a key is in a dictionary? safe_access allows
you to safely drill down multiple levels into any python object without having to worry about
AttributeErrors, KeyErrors, or IndexErrors. Oh, and it supports wildcards.
*Available on pypi*: https://pypi.python.org/pypi/safe_access
python
from safe_access import safe_access
class A(object):
pass
a = A()
a.b = {"abc": ['x', 'y', 'z'], "def": [1, 2, 3]}
# Access valid path
print safe_access(a, 'a.b["abc"][1]', default_value=7)
# returns 'y'
# Access valid path with variable substitution
myvar = 1
print safe_access(a, 'a.b["abc"][myvar]', default_value=7, myvar=myvar)
# returns 'y'
# Access that causes index out of range, but returns default value of 7
print safe_access(a, 'a.b["abc"][404]', default_value=7)
# returns 7
# Access non-existant attribute
print safe_access(a, 'a.bad_attribute')
# returns None
# Access wildcard
print safe_access(a, 'a.b[*][0]')
# returns ['x', 1]
Limitations:
\1. Does not support function calls at this time
\2. Does not support escaped quotations
\3. Does not support variable references withing tuple literals
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
safe_access-1.1.tar.gz
(9.4 kB
view hashes)
Built Distributions
safe_access-1.1-py2.7.egg
(5.5 kB
view hashes)
Close
Hashes for safe_access-1.1.macosx-10.10-intel.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00be74f31ab945f0677ef18b3afed982d4926468a9412e0d7364343af8798261 |
|
MD5 | f07d751587fa5ddf92e1a103f09a665a |
|
BLAKE2b-256 | 993b2ec3bd0abc30b50a4a2d4095f7b2d9957b1986ce6aa892f96c7a2557c885 |