about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
authorFabian Affolter <mail@fabian-affolter.ch>2022-10-28 09:22:05 +0200
committerGitHub <noreply@github.com>2022-10-28 09:22:05 +0200
commit40362d20663ee5551b88d032b005709cc0ba1d98 (patch)
tree4a48d45d59110142b8b418d4a530e9f5ffee5c92 /pkgs/development/python-modules
parent99b1fb1c1f8791d3c98368e22cfe39fcb6b52e47 (diff)
python310Packages.pynamodb: switch to pytestCheckHook
- add pythonImportsCheck
- disable on older Python releases
- add optional-dependencies
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/pynamodb/default.nix61
1 files changed, 50 insertions, 11 deletions
diff --git a/pkgs/development/python-modules/pynamodb/default.nix b/pkgs/development/python-modules/pynamodb/default.nix
index b0a83e293e52d..4844ebee99903 100644
--- a/pkgs/development/python-modules/pynamodb/default.nix
+++ b/pkgs/development/python-modules/pynamodb/default.nix
@@ -1,33 +1,72 @@
 { lib
-, buildPythonPackage
+, blinker
 , botocore
-, fetchPypi
-, mock
-, mypy
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-mock
+, pytestCheckHook
 , python-dateutil
-, pytest
+, pythonOlder
 , requests
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "pynamodb";
   version = "5.2.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pynamodb";
+    repo = "PynamoDB";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-3Si0BCMofr38OuXoX8Tj9n3ITv3rH5hNfDQZvZWk79o=";
+  };
+
+  propagatedBuildInputs = [
+    python-dateutil
+    botocore
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-lgGlHllIiwUy5RN9HJcMJT4XVKu6DihSQi6Usbfpp10=";
+  passthru.optional-dependencies = {
+    signal = [
+      blinker
+    ];
   };
 
-  propagatedBuildInputs = [ python-dateutil botocore ];
-  checkInputs = [ requests mock pytest mypy ];
+  checkInputs = [
+    pytest-mock
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.signal;
+
+  pythonImportsCheck = [
+    "pynamodb"
+  ];
+
+  disabledTests = [
+    # Tests requires credentials or network access
+    "test_binary_attribute_update"
+    "test_binary_set_attribute_update"
+    "test_connection_integration"
+    "test_make_api_call__happy_path"
+    "test_model_integration"
+    "test_sign_request"
+    "test_table_integration"
+    "test_transact"
+  ];
 
   meta = with lib; {
-    description = "A Pythonic interface for Amazon’s DynamoDB that supports Python 2 and 3.";
+    description = "Interface for Amazon’s DynamoDB";
     longDescription = ''
       DynamoDB is a great NoSQL service provided by Amazon, but the API is
       verbose. PynamoDB presents you with a simple, elegant API.
     '';
     homepage = "http://jlafon.io/pynamodb.html";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }