1{ 2 lib, 3 blinker, 4 botocore, 5 buildPythonPackage, 6 fetchFromGitHub, 7 pytest-env, 8 pytest-mock, 9 pytestCheckHook, 10 pythonOlder, 11 setuptools, 12 typing-extensions, 13}: 14 15buildPythonPackage rec { 16 pname = "pynamodb"; 17 version = "6.0.0"; 18 format = "setuptools"; 19 20 disabled = pythonOlder "3.7"; 21 22 src = fetchFromGitHub { 23 owner = "pynamodb"; 24 repo = "PynamoDB"; 25 rev = "refs/tags/${version}"; 26 hash = "sha256-Ag/ivZ2SDYX0kwXbExt3kE/pMJgfoGc6gWoy+Rr6GTw="; 27 }; 28 29 build-system = [ setuptools ]; 30 31 dependencies = [ botocore ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ]; 32 33 optional-dependencies = { 34 signal = [ blinker ]; 35 }; 36 37 nativeCheckInputs = [ 38 pytest-env 39 pytest-mock 40 pytestCheckHook 41 ] ++ optional-dependencies.signal; 42 43 pythonImportsCheck = [ "pynamodb" ]; 44 45 disabledTests = [ 46 # Tests requires credentials or network access 47 "test_binary_attribute_update" 48 "test_binary_set_attribute_update" 49 "test_connection_integration" 50 "test_make_api_call__happy_path" 51 "test_model_integration" 52 "test_sign_request" 53 "test_table_integration" 54 "test_transact" 55 # require a local dynamodb instance 56 "test_create_table" 57 "test_create_table__incompatible_indexes" 58 ]; 59 60 meta = with lib; { 61 description = "Interface for Amazons DynamoDB"; 62 longDescription = '' 63 DynamoDB is a great NoSQL service provided by Amazon, but the API is 64 verbose. PynamoDB presents you with a simple, elegant API. 65 ''; 66 homepage = "http://jlafon.io/pynamodb.html"; 67 changelog = "https://github.com/pynamodb/PynamoDB/releases/tag/${version}"; 68 license = licenses.mit; 69 maintainers = with maintainers; [ ]; 70 }; 71}