API Deprecation

For historical context refer to pull request #23.

The new API exposes all arguments explicitly instead of encapsulated in a dictionary. This change affects most endpoints that accept optional arguments including file uploads.

You won’t need to modify your code for calls such as these:

dri = Driver({
    "scheme": "https",
    "url": "mattermost.server.com",
    "port": 443,
    "token": "YourPersonalAccessToken",

dri.login()
team_id = dri.teams.get_team_by_name("default")["id"]
channel_id = dri.channels.get_channel_by_name(team_id, "town-square")

but for endpoint calls with options the old syntax:

dri.channels.create_channel(options={
    "team_id": team_id,
    "name": "awesome-channel",
    "display_name": "Awesome Channel",
    "type": "O",
})

requires an expansion of the options dictionary:

dri.channels.create_channel(**{
    "team_id": team_id,
    "name": "awesome-channel",
    "display_name": "Awesome Channel",
    "type": "O",
})

This shortcut works so long as none of the arguments clashes with python keywords. Examples from clashes include from

or that arguments are passed explicitly:

dri.channels.create_channel(
    team_id=team_id,
    name="awesome-channel",
    display_name="Awesome Channel",
    type="O",
)

I want to continue using the old API

If you want to continue using the deprecated API you can do so by using Driver instead of the new TypedDriver which will allow you to use the old interface but will raise a DeprecationWarning.

Please note that this interface will be removed in the future so we recommend that you update your code as soon as possible.