예제 #1
0
def make_unicode(anything):
    """Transform 'anything' on an unicode."""
    if isinstance(anything, bool):
        anything = bool_str(anything)
    elif not isinstance(anything, unicode):
        anything = str(anything).decode('utf8', 'replace')

    return anything
예제 #2
0
 def emit_public_access_changed(self, share_id, node_id, is_public,
                                public_url):
     """Emit the PublicAccessChanged signal."""
     share_id = str(share_id) if share_id else ''
     node_id = str(node_id)
     path = self.syncdaemon_public_files.get_path(share_id, node_id)
     info = dict(
         share_id=str(share_id) if share_id else '',
         node_id=str(node_id),
         is_public=bool_str(is_public),
         public_url=public_url if public_url else '',
         path=path)
     self.emit_signal('on_public_access_changed', info)
예제 #3
0
def sanitize_dict(data):
    """Sanitize *IN PLACE* a dict values to go through DBus."""
    for k, v in data.items():
        if IMarker.providedBy(v):
            # this goes first, as it also is instance of basestring
            data[k] = repr(v)
        elif isinstance(v, basestring):
            pass  # to avoid str() to already strings
        elif isinstance(v, bool):
            data[k] = bool_str(v)
        elif v is None:
            data[k] = 'None'
        else:
            data[k] = str(v)