Python (a)sync Slack API library
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
examples Migrate to poetry (#49) Nov 22, 2018
slack
.flake8 Test setup & pipfile (#37) Aug 8, 2018
.gitignore pytest deprecation warnings Sep 23, 2018
.isort.cfg Test setup & pipfile (#37) Aug 8, 2018
.readthedocs.yml Try to fix readthedocs Nov 22, 2018
.travis.yml Migrate to poetry (#49) Nov 22, 2018
CODE_OF_CONDUCT.md readme & changelog Aug 19, 2017
CONTRIBUTING.rst Typo contributing.rst Jan 6, 2018
LICENSE Initial commit Aug 9, 2017
README.rst Migrate to poetry (#49) Nov 22, 2018
poetry.lock
pyproject.toml Migrate to poetry (#49) Nov 22, 2018
setup.cfg initial mypy support Aug 24, 2018
tox.ini Migrate to poetry (#49) Nov 22, 2018

README.rst

slack-sansio

Python (a)sync Slack API library

Documentation Status Travis-ci status PyPI status Coverage status

Installation

Slack-sansio is available on PyPI.

$ pip3 install slack-sansio  # No specific implementation requirements
$ pip3 install slack-sansio[requests]   # Requests implementation requirements
$ pip3 install slack-sansio[aiohttp]    # Aiohttp implementation requirements
$ pip3 install slack-sansio[curio]      # Curio implementation requirements
$ pip3 install slack-sansio[trio]       # Trio implementation requirements

Quickstart

import slack
import pprint
import requests

from slack.io.sync import SlackAPI

session = requests.session()
slack_client = SlackAPI(token=TOKEN, session=session)
data = client.query(slack.methods.AUTH_TEST)
pprint.pprint(data)

For more examples see the examples folder.

I/O Implementations

Most people would want to use one of these implementations directly. For those that have an HTTP library which is not supported this library provide the base tools to ease the use of the Slack API.

The library also provide an abstract base class on which to built I/O implementation.

Changelog

0.7.0

  • Migrate to poetry for dependencies management
  • Remove treq implementation.

0.6.1

  • Fix Documentation build.

0.6.0

  • Rework of the pytest plugin slack.tests.plugins.
  • Remove deprecated rate limit code.
  • Add type annotations & fix found bugs.
  • Move slack.exceptions.UnknownActionType to slack.action.UnknownActionType.

0.5.1

  • Allow testing without installing sync I/O requirements

0.5.0

  • Support for new slack request signing (sansio.validate_request_signature and exceptions.InvalidSlackSignature)

0.4.2

  • Support incoming action of type message_action

0.4.1

  • Support incoming action of type dialog_submission.

0.4.0

  • Support sending json for selected slack methods.

0.3.5

  • Add subtype argument to events.MessageRouter.register.
  • Fix routing bug for message with text=None.

0.3.4

  • Refactor tests
  • Create pytest plugin with useful fixtures.

0.3.3

  • Add minimum_time argument to SlackAPI.iter in order to force a minimum elapsed time between two call to the API

0.3.2

  • Add conversation & dialog methods in Enum.
  • Fix not_authed when using rate limit retry.

0.3.1

  • Bugfix for actions.Action and actions.Router.
  • Bugfix in data serialization for response urls https://hooks.slack.com/.

0.3.0

  • Bugfix for commands.Router.
  • New events.MessageRouter for events.Message routing based on regular expression.
  • Rename events.Router to events.EventRouter.
  • Change TypeError to ValueError in events.EventRouter.register.
  • Bugfix for threaded messages.

0.2.2

  • Fix routing bug in events.Router.
  • Inherit from Exception instead of BaseExecption in custom exceptions.

0.2.1

  • Curio support (query and iterate)
  • Trio support (query and iterate)
  • Twisted support (query only)

0.2.0

  • Enum of slack API methods

0.1.0

  • Initial beta release
  • RTM API
  • Pagination

0.0.1

  • Initial development release