1{
2 lib,
3 aiodns,
4 aiohttp,
5 aiosqlite,
6 boto3,
7 buildPythonPackage,
8 fetchFromGitHub,
9 moto,
10 pytest-asyncio,
11 pytestCheckHook,
12 setuptools,
13 sqlalchemy,
14 websocket-client,
15 websockets,
16 writableTmpDirAsHomeHook,
17}:
18
19buildPythonPackage rec {
20 pname = "slack-sdk";
21 version = "3.36.0";
22 pyproject = true;
23
24 src = fetchFromGitHub {
25 owner = "slackapi";
26 repo = "python-slack-sdk";
27 tag = "v${version}";
28 hash = "sha256-Y6w4osSpirBjxPdZRlODwEAWd4Z+sPHrr7alVl/6mPA=";
29 };
30
31 build-system = [ setuptools ];
32
33 optional-dependencies.optional = [
34 aiodns
35 aiohttp
36 boto3
37 sqlalchemy
38 websocket-client
39 websockets
40 ];
41
42 pythonImportsCheck = [ "slack_sdk" ];
43
44 nativeCheckInputs = [
45 aiosqlite
46 moto
47 pytest-asyncio
48 pytestCheckHook
49 ]
50 ++ optional-dependencies.optional;
51
52 disabledTests = [
53 # Requires internet access (to slack API)
54 "test_start_raises_an_error_if_rtm_ws_url_is_not_returned"
55 # Requires network access: [Errno 111] Connection refused
56 "test_send_message_while_disconnection"
57 ];
58
59 disabledTestPaths = [
60 # Event loop issues
61 "tests/slack_sdk/oauth/installation_store/test_file.py"
62 "tests/slack_sdk/oauth/state_store/test_file.py"
63 ];
64
65 __darwinAllowLocalNetworking = true;
66
67 meta = {
68 description = "Slack Developer Kit for Python";
69 homepage = "https://slack.dev/python-slack-sdk/";
70 changelog = "https://github.com/slackapi/python-slack-sdk/releases/tag/v${version}";
71 license = lib.licenses.mit;
72 maintainers = with lib.maintainers; [ fab ];
73 };
74}