Skip to main content

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

Project details


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)

Uploaded Source

Built Distributions

safe_access-1.1.macosx-10.10-intel.tar.gz (4.3 kB view hashes)

Uploaded Source

safe_access-1.1-py2.7.egg (5.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page