'Get the current qBittorrent preferences.
Can also be used to assign individual preferences.
For setting multiple preferences at once,
see ``set_preferences`` method.
Note: Even if this is a ``property``,
to fetch the current preferences dict, you are required
to call it like a bound method.
Wrong::
qb.preferences
Right::
qb.preferences()'

@property
def preferences(self):

    prefs = self._get('query/preferences')
    class Proxy(Client, ):
        "\n                                                Proxy    class    to    to    allow    assignment    of    individual    preferences.\n                                                this    class    overrides    some    methods    to    ease    things.\n\n                                                Because    of    this,    settings    can    be    assigned    like::\n\n                                                                In    [5]:    prefs    =    qb.preferences()\n\n                                                                In    [6]:    prefs['autorun_enabled']\n                                                                Out[6]:    True\n\n                                                                In    [7]:    prefs['autorun_enabled']    =    False\n\n                                                                In    [8]:    prefs['autorun_enabled']\n                                                                Out[8]:    False\n\n                                                "
        def __init__(self, url, prefs, auth, session):
            super(Proxy, self).__init__(url)
            self.prefs = prefs
            self._is_authenticated = auth
            self.session = session
        def __getitem__(self, key):
            return self.prefs[key]
        def __setitem__(self, key, value):
            kwargs = {key: value}
            return self.set_preferences(**kwargs)
        def __call__(self):
            return self.prefs
    return Proxy(self.url, prefs, self._is_authenticated, self.session)
