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 details)

Uploaded Source

Built Distributions

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

Uploaded Source

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

Uploaded Source

File details

Details for the file safe_access-1.1.tar.gz.

File metadata

  • Download URL: safe_access-1.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for safe_access-1.1.tar.gz
Algorithm Hash digest
SHA256 4b2cac1dbec8844998e5208416140bb4b8b910628033b9f025eb28bdca2e3465
MD5 cc571c11b621ae5ab1d4b2fa9dae588b
BLAKE2b-256 5a96c5013d08c413205e26bcd37e68da43938d7b798ddbf7f6ada7b0e47467c3

See more details on using hashes here.

File details

Details for the file safe_access-1.1.macosx-10.10-intel.tar.gz.

File metadata

File hashes

Hashes for safe_access-1.1.macosx-10.10-intel.tar.gz
Algorithm Hash digest
SHA256 00be74f31ab945f0677ef18b3afed982d4926468a9412e0d7364343af8798261
MD5 f07d751587fa5ddf92e1a103f09a665a
BLAKE2b-256 993b2ec3bd0abc30b50a4a2d4095f7b2d9957b1986ce6aa892f96c7a2557c885

See more details on using hashes here.

File details

Details for the file safe_access-1.1-py2.7.egg.

File metadata

File hashes

Hashes for safe_access-1.1-py2.7.egg
Algorithm Hash digest
SHA256 319576ba408ccda8cd80bd88a598ea13a2fc28e9dfe2a4db50f6c0ea79639e06
MD5 7be840f8e9e7c98780b1a37e8adb71db
BLAKE2b-256 ae4d350c01be2034fb59414ee61a44b29a3e0aed62aaa729533f1628888aa94b

See more details on using hashes here.

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