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