'Return the roster node for a JID.
A new roster node will be created if one
does not already exist.
Arguments:
key -- Return the roster for this JID.'

def __getitem__(self, key):

    if (key is None):
        key = self.xmpp.boundjid
    if (not isinstance(key, JID)):
        key = JID(key)
    key = key.bare
    if (key not in self._rosters):
        self.add(key)
        self._rosters[key].auto_authorize = self.auto_authorize
        self._rosters[key].auto_subscribe = self.auto_subscribe
    return self._rosters[key]
