| Server IP : 101.53.144.229 / Your IP : 216.73.216.104 Web Server : Apache System : Linux host.gdigitalindia.in 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : digitalshiksha ( 1179) PHP Version : 5.6.40 Disable Function : eval,show_source,system,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,show_source,curl_multi_exechellcmd, ini_restore,apache_get_modules,get_cfg_var,passthru, exec ,proc_get_status,fpassthru,c999_buff_prepare,c999_sess_put,c99_buff_prepare,c99_sess_put,proc_close,ini_alter,dl,symlink,link,proc_close,ini_alter,dl,symlink,link,mail MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/cwd/c1/1/usr/lib64/python2.7/site-packages/ |
Upload File : |
# Text wrapper for ldb bindings
#
# Copyright (C) 2015 Petr Viktorin <pviktori@redhat.com>
# Published under the GNU LGPLv3 or later
import ldb
def _recursive_encode(obj):
if isinstance(obj, bytes):
return obj
elif isinstance(obj, str):
return obj.encode('utf-8')
else:
return [_recursive_encode(o) for o in obj]
class _WrapBase(object):
@classmethod
def _wrap(cls, wrapped):
self = cls.__new__(cls)
self._wrapped = wrapped
return self
def __len__(self):
return len(self._wrapped)
def __eq__(self, other):
if hasattr(other, '_wrapped'):
return self._wrapped == other._wrapped
else:
return self._wrapped == other
def __ne__(self, other):
if hasattr(other, '_wrapped'):
return self._wrapped != other._wrapped
else:
return self._wrapped != other
def __lt__(self, other):
if hasattr(other, '_wrapped'):
return self._wrapped < other._wrapped
else:
return self._wrapped < other
def __le__(self, other):
if hasattr(other, '_wrapped'):
return self._wrapped >= other._wrapped
else:
return self._wrapped >= other
def __gt__(self, other):
if hasattr(other, '_wrapped'):
return self._wrapped > other._wrapped
else:
return self._wrapped > other
def __ge__(self, other):
if hasattr(other, '_wrapped'):
return self._wrapped >= other._wrapped
else:
return self._wrapped >= other
def __repr__(self):
return '%s.text' % repr(self._wrapped)
class MessageElementTextWrapper(_WrapBase):
"""Text interface for a LDB message element"""
def __iter__(self):
for item in self._wrapped:
yield item.decode('utf-8')
def __getitem__(self, key):
result = self._wrapped[key]
if result is None:
return None
else:
return result.decode('utf-8')
@property
def flags(self):
return self._wrapped.flags
@property
def set_flags(self):
return self._wrapped.set_flags
_wrap_element = MessageElementTextWrapper._wrap
class MessageTextWrapper(_WrapBase):
"""Text interface for a LDB message"""
def __getitem__(self, key):
result = self._wrapped[key]
if result is None:
return None
else:
return _wrap_element(result)
def get(self, *args, **kwargs):
result = self._wrapped.get(*args, **kwargs)
if isinstance(result, ldb.MessageElement):
return _wrap_element(result)
elif isinstance(result, bytes):
return result.decode('utf-8')
else:
return result
def __setitem__(self, key, item):
self._wrapped[key] = _recursive_encode(item)
def __delitem__(self, key):
del self._wrapped[key]
def elements(self):
return [_wrap_element(el) for el in self._wrapped.elements()]
def items(self):
return [(attr, _wrap_element(el)) for attr, el in self._wrapped.items()]
@property
def keys(self):
return self._wrapped.keys
@property
def remove(self):
return self._wrapped.remove
@property
def add(self):
return self._wrapped.add
@property
def dn(self):
return self._wrapped.dn
@dn.setter
def dn(self, new_value):
self._wrapped.dn = new_value