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
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)
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
safe_access-1.1-py2.7.egg
(5.5 kB
view details)
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b2cac1dbec8844998e5208416140bb4b8b910628033b9f025eb28bdca2e3465
|
|
| MD5 |
cc571c11b621ae5ab1d4b2fa9dae588b
|
|
| BLAKE2b-256 |
5a96c5013d08c413205e26bcd37e68da43938d7b798ddbf7f6ada7b0e47467c3
|
File details
Details for the file safe_access-1.1.macosx-10.10-intel.tar.gz.
File metadata
- Download URL: safe_access-1.1.macosx-10.10-intel.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00be74f31ab945f0677ef18b3afed982d4926468a9412e0d7364343af8798261
|
|
| MD5 |
f07d751587fa5ddf92e1a103f09a665a
|
|
| BLAKE2b-256 |
993b2ec3bd0abc30b50a4a2d4095f7b2d9957b1986ce6aa892f96c7a2557c885
|
File details
Details for the file safe_access-1.1-py2.7.egg.
File metadata
- Download URL: safe_access-1.1-py2.7.egg
- Upload date:
- Size: 5.5 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
319576ba408ccda8cd80bd88a598ea13a2fc28e9dfe2a4db50f6c0ea79639e06
|
|
| MD5 |
7be840f8e9e7c98780b1a37e8adb71db
|
|
| BLAKE2b-256 |
ae4d350c01be2034fb59414ee61a44b29a3e0aed62aaa729533f1628888aa94b
|