diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2016-05-19 18:41:01 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-05-19 18:41:01 +0000 |
commit | ce294655f981e19b420f2201b7c499a435ef1ce2 (patch) | |
tree | 3d29fc6c999dbb9ab3d78cb64b336caf8a36fd65 /lib/python2.7/site-packages/setools/descriptors.py | |
parent | 9870834a1f61689aaff1eedda0e1ee73d7150763 (diff) | |
parent | 3d3d1bae29e9b2d88c73aecda916640ba3a5e5b8 (diff) | |
download | platform_prebuilts_python_linux-x86_2.7.5-ce294655f981e19b420f2201b7c499a435ef1ce2.tar.gz platform_prebuilts_python_linux-x86_2.7.5-ce294655f981e19b420f2201b7c499a435ef1ce2.tar.bz2 platform_prebuilts_python_linux-x86_2.7.5-ce294655f981e19b420f2201b7c499a435ef1ce2.zip |
Merge "Update prebuilt setools to 4.0.1"ndk-r13-beta2ndk-r13-beta1ndk-r13android-wear-n-preview-2android-wear-7.1.1_r1android-n-preview-5android-n-preview-4android-n-iot-preview-2nougat-mr1-wear-releasendk-r13-releasen-iot-preview-2
Diffstat (limited to 'lib/python2.7/site-packages/setools/descriptors.py')
-rwxr-xr-x[-rw-r--r--] | lib/python2.7/site-packages/setools/descriptors.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/setools/descriptors.py b/lib/python2.7/site-packages/setools/descriptors.py index c4bb73c..c4eb81c 100644..100755 --- a/lib/python2.7/site-packages/setools/descriptors.py +++ b/lib/python2.7/site-packages/setools/descriptors.py @@ -190,3 +190,38 @@ class EdgeAttrList(NetworkXGraphEdgeDescriptor): # in Python3 a .clear() function was added for lists # keep this implementation for Python 2 compat del obj.G[obj.source][obj.target][self.name][:] + + +# +# Permission map descriptors +# +class PermissionMapDescriptor(object): + + """ + Descriptor for Permission Map mappings. + + Parameter: + name The map setting name. + validator A callable for validating the setting. + + Instance class attribute use (obj parameter): + perm_map The full permission map. + class_ The mapping's object class + perm The mapping's permission + """ + + def __init__(self, propname, validator): + self.name = propname + self.validator = validator + + def __get__(self, obj, objtype=None): + if obj is None: + return self + + return obj.perm_map[obj.class_][obj.perm][self.name] + + def __set__(self, obj, value): + obj.perm_map[obj.class_][obj.perm][self.name] = self.validator(value) + + def __delete__(self, obj): + raise AttributeError |