about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/githubkit/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/githubkit/default.nix72
1 files changed, 65 insertions, 7 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/githubkit/default.nix b/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
index 85509528bf35..50ec8128885c 100644
--- a/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
@@ -1,37 +1,95 @@
 { lib
+, anyio
 , buildPythonPackage
-, fetchPypi
-, poetry-core
+, fetchFromGitHub
+, hishel
 , httpx
+, poetry-core
 , pydantic
+, pyjwt
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "githubkit";
-  version = "0.10.7";
+  version = "0.11.1";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-sKikL+761mBP7j+qugHKDQ0hVXT51FV8FYbB3ZJtweA=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "yanyongyu";
+    repo = "githubkit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-nPXs6thXAshDojgHSNyEeBN/jNJkfFECSuY5f51Zozo=";
   };
 
+  pythonRelaxDeps = [
+    "hishel"
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov=githubkit --cov-append --cov-report=term-missing" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
+    hishel
     httpx
     pydantic
     typing-extensions
   ];
 
-  pythonImportsCheck = [ "githubkit" ];
+  passthru.optional-dependencies = {
+    all = [
+      anyio
+      pyjwt
+    ];
+    jwt = [
+      pyjwt
+    ];
+    auth-app = [
+      pyjwt
+    ];
+    auth-oauth-device = [
+      anyio
+    ];
+    auth = [
+      anyio
+      pyjwt
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [
+    "githubkit"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_graphql"
+    "test_async_graphql"
+    "test_call"
+    "test_async_call"
+    "test_versioned_call"
+    "test_versioned_async_call"
+  ];
 
   meta = {
     description = "GitHub SDK for Python";
     homepage = "https://github.com/yanyongyu/githubkit";
+    changelog = "https://github.com/yanyongyu/githubkit/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kranzes ];
   };