1{
2 lib,
3 awscrt,
4 boto3,
5 buildPythonPackage,
6 fetchFromGitHub,
7 pytestCheckHook,
8 pythonOlder,
9 setuptools,
10}:
11
12buildPythonPackage rec {
13 pname = "awsiotsdk";
14 version = "1.26.0";
15 pyproject = true;
16
17 disabled = pythonOlder "3.7";
18
19 src = fetchFromGitHub {
20 owner = "aws";
21 repo = "aws-iot-device-sdk-python-v2";
22 tag = "v${version}";
23 hash = "sha256-FK/Sy2zxWqrLmBiJO80PdBp/NJWV9OujFffCk7CG7jk=";
24 };
25
26 postPatch = ''
27 substituteInPlace awsiot/__init__.py \
28 --replace-fail "__version__ = '1.0.0-dev'" "__version__ = '${version}'"
29 '';
30
31 pythonRelaxDeps = [ "awscrt" ];
32
33 build-system = [ setuptools ];
34
35 dependencies = [ awscrt ];
36
37 nativeCheckInputs = [
38 boto3
39 pytestCheckHook
40 ];
41
42 disabledTestPaths = [
43 # Those tests require a custom loader
44 "servicetests/"
45 ];
46
47 pythonImportsCheck = [ "awsiot" ];
48
49 meta = {
50 description = "Next generation AWS IoT Client SDK for Python using the AWS Common Runtime";
51 homepage = "https://github.com/aws/aws-iot-device-sdk-python-v2";
52 changelog = "https://github.com/aws/aws-iot-device-sdk-python-v2/releases/tag/${src.tag}";
53 license = lib.licenses.asl20;
54 maintainers = with lib.maintainers; [ fab ];
55 };
56}