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