1{ 2 lib, 3 aiobotocore, 4 aiofiles, 5 buildPythonPackage, 6 chalice, 7 cryptography, 8 dill, 9 fetchFromGitHub, 10 moto, 11 poetry-core, 12 poetry-dynamic-versioning, 13 pytest-asyncio, 14 pytestCheckHook, 15 pythonOlder, 16 pythonRelaxDepsHook, 17 requests, 18}: 19 20buildPythonPackage rec { 21 pname = "aioboto3"; 22 version = "12.3.0"; 23 pyproject = true; 24 25 disabled = pythonOlder "3.8"; 26 27 src = fetchFromGitHub { 28 owner = "terrycain"; 29 repo = "aioboto3"; 30 rev = "refs/tags/v${version}"; 31 hash = "sha256-GDuxy/V+j0LRJ2lbcRHMEAga+pdCbYIWhEt3ItrHMB4="; 32 }; 33 34 nativeBuildInputs = [ 35 poetry-core 36 poetry-dynamic-versioning 37 pythonRelaxDepsHook 38 ]; 39 40 pythonRelaxDeps = [ "aiobotocore" ]; 41 42 propagatedBuildInputs = [ aiobotocore ] ++ aiobotocore.optional-dependencies.boto3; 43 44 passthru.optional-dependencies = { 45 chalice = [ chalice ]; 46 s3cse = [ cryptography ]; 47 }; 48 49 nativeCheckInputs = [ 50 aiofiles 51 dill 52 moto 53 pytest-asyncio 54 pytestCheckHook 55 requests 56 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); 57 58 pythonImportsCheck = [ "aioboto3" ]; 59 60 disabledTests = [ 61 # Our moto package is not ready to support more tests 62 "encrypt_decrypt_aes_cbc" 63 "test_chalice_async" 64 "test_dynamo" 65 "test_flush_doesnt_reset_item_buffer" 66 "test_kms" 67 "test_s3" 68 ]; 69 70 meta = with lib; { 71 description = "Wrapper to use boto3 resources with the aiobotocore async backend"; 72 homepage = "https://github.com/terrycain/aioboto3"; 73 changelog = "https://github.com/terrycain/aioboto3/blob/${src.rev}/CHANGELOG.rst"; 74 license = licenses.asl20; 75 maintainers = with maintainers; [ mbalatsko ]; 76 }; 77}