#!/usr/bin/python

from pprint import pformat

def reindent(string):
    """This is my first attempt at getting pretty printing."""
    output = []
    level = 0
    for substring in string.split('('):
        level += 1
        substring_ = substring + '(\n' + (level * '    ') #to put the ( back in
        suboutput = []
        for subsubstring in substring_.split(')'):
            level -= 1
            subsubstring_ = subsubstring + ')\n' + (level * '    ')
            suboutput.append(subsubstring_)
        suboutput[-1] = subsubstring #last one doesn't actually have a ) after it
        level += 1
        output.extend(suboutput)
    output = ''.join(output)
    output,_,_ = output.rpartition('(') #last one doesn't actually have a ( after it
    return output

class dbus:    
    """This is a really cheeky hack. I like it very much. 
    It lets you call eval() on the repr string, and returns something made of 
    standard python types, suitable for pretty-printing in the standard way.
    There is something slightly JSON about this, don't you think?
    Watch out though: dbus fails at type inference on variant valued dictionaries, 
    so you can't always pass this into a dbus method."""
    @staticmethod
    def String(s, *args, **kwargs):
        return str(s)
    @staticmethod
    def Dictionary(d, *args, **kwargs):
        return d
    @staticmethod
    def Array(a, *args, **kwargs):
        return a
    @staticmethod
    def Struct(s, *args, **kwargs):
        return s
    @staticmethod
    def ObjectPath(o, *args, **kwargs):
        return o
    @staticmethod
    def Signature(s, *args, **kwargs):
        return s
    @staticmethod
    def UInt32(s, *args, **kwargs):
        return s
    @staticmethod
    def Boolean(s, *args, **kwargs):
        return s
        
        
def clean(printed):
    return pformat(eval(printed))
    
    


if __name__ == "__main__":
    print clean('''dbus.Dictionary({dbus.String(u'Channels'): dbus.Array([dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/Buddies'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'Buddies', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(7L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/_3aD'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u':D', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/bancrofts'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'bancrofts', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(2L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/goodness'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'goodness', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/Other_20Contacts'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'Other Contacts', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/cambridge'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'cambridge', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(5L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/Group/home'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'home', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(6L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/List/publish'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'publish', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/List/subscribe'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'subscribe', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(2L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/List/known'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'known', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None), dbus.Struct((dbus.ObjectPath('/org/freedesktop/Telepathy/Connection/gabble/jabber/alsuren_40gmail_2ecom_2fTelepathy/RosterChannel/List/deny'), dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(u'deny', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Interfaces'): dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Interface.Group')], signature=dbus.Signature('s'), variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorHandle'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.InitiatorID'): dbus.String(u'', variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.Requested'): dbus.Boolean(False, variant_level=1)}, signature=dbus.Signature('sv'))), signature=None)], signature=dbus.Signature('(oa{sv})'), variant_level=1), dbus.String(u'RequestableChannelClasses'): dbus.Array([dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(4L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(3L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.ContactList', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.Text', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(0L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.RoomList', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.Type.RoomList.Server')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(2L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.Text', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(2L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.Tubes', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(2L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'), dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(2L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'), dbus.String(u'org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.Tubes', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'), dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamTube.DRAFT.Service')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'), dbus.String(u'org.freedesktop.Telepathy.Channel.Type.DBusTube.DRAFT.ServiceName')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1L, variant_level=1), dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamedMedia', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandle'), dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.laptop.Telepathy.Channel.Type.BuddyView', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.laptop.Telepathy.Channel.Interface.View.MaxSize'), dbus.String(u'org.laptop.Telepathy.Channel.Type.BuddyView.Properties'), dbus.String(u'org.laptop.Telepathy.Channel.Type.BuddyView.Alias')], signature=dbus.Signature('s'))), signature=None), dbus.Struct((dbus.Dictionary({dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.laptop.Telepathy.Channel.Type.ActivityView', variant_level=1)}, signature=dbus.Signature('sv')), dbus.Array([dbus.String(u'org.laptop.Telepathy.Channel.Interface.View.MaxSize'), dbus.String(u'org.laptop.Telepathy.Channel.Type.ActivityView.Properties'), dbus.String(u'org.laptop.Telepathy.Channel.Type.ActivityView.Participants')], signature=dbus.Signature('s'))), signature=None)], signature=dbus.Signature('(a{sv}as)'), variant_level=1)}, signature=dbus.Signature('sv'))''')
    