Skip to main content

A fast way to build Block Kit interfaces in Python.

Project description

Screenshot

Build status PyPI version Downloads


Blockkit is a Python library for building UI interfaces for Slack apps. It allows you to compose the interface from Python classes, so you type less, and your code becomes more maintainable.

Blockkit performs validation at runtime and provides user-friendly errors when data is invalid.

Generate

You don't even need to write code yourself. Go to blockkit-generator.com paste your JSON payload from Block Kit Builder and get corresponding Python code!

Screenshot

Installation

pip install blockkit

Usage

Start with one of the Home, Modal, or Message surface classes and follow the structure as you would follow it in JSON.

The library supports all types of surfaces, blocks, block elements, and composition objects Slack provides.

Once UI is ready, call the build() method to render components to dictionary:

from blockkit import Section, MarkdownText

Section(text=MarkdownText(text="hello world")).build()

{"type": "section", "text": {"text": "hello world", "type": "mrkdwn"}}

Here's the list of types of components and corresponding classes:

Surfaces

Type Class
home Home
modal Modal
Message

Blocks

Type Class
actions Actions
context Context
divider Divider
header Header
image ImageBlock
input Input
section Section

Block elements

Type Class
button Button
checkboxes Checkboxes
datepicker DatePicker
type Image
multi_static_select MultiStaticSelect
multi_users_select MultiUsersSelect
multi_channels_select MultiChannelsSelect
multi_conversations_select MultiConversationsSelect
multi_external_select MultiExternalSelect
overflow Overflow
plain_text_input PlainTextInput
radio_buttons RadioButtons
static_select StaticSelect
users_select UsersSelect
channels_select ChannelsSelect
conversations_select ConversationsSelect
external_select ExternalSelect
timepicker Timepicker

Composition objects

Type Class
plain_text PlainText
mrkdwn MarkdownText
Confirm
Option
OptionGroup
Filter
DispatchActionConfig

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blockkit-1.1.0.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blockkit-1.1.0-py2.py3-none-any.whl (13.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file blockkit-1.1.0.tar.gz.

File metadata

  • Download URL: blockkit-1.1.0.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.11

File hashes

Hashes for blockkit-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e90c182755a8c8ae89a4f9ae4cba58791c327161d5e8a36d68657df836365f6f
MD5 5d65a3557c329c05140d61e2ea028e0d
BLAKE2b-256 d6d3b64a3935dcc1cf411b4e8bc9b720aecd06194993bde0b5bd6a333356893e

See more details on using hashes here.

File details

Details for the file blockkit-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: blockkit-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.11

File hashes

Hashes for blockkit-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 27a58537d39f0bf8f02d84dc61c16221443664148c7359f94026ae07be35e682
MD5 793bdd3f696b4170dbe7f15e277799b2
BLAKE2b-256 34d34641320ca5772f22f274ff6bc704e9f675f65f877801a7d3ee7c71335b80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page