1{
2 lib,
3 buildPythonPackage,
4 python-dotenv,
5 pythonOlder,
6 fetchFromGitHub,
7 setuptools,
8 httpx,
9 microsoft-kiota-abstractions,
10 microsoft-kiota-authentication-azure,
11 microsoft-kiota-http,
12 microsoft-kiota-serialization-json,
13 azure-identity,
14 pytestCheckHook,
15 responses,
16}:
17
18buildPythonPackage rec {
19 pname = "msgraph-core";
20 version = "1.3.8";
21 pyproject = true;
22
23 disabled = pythonOlder "3.9";
24
25 src = fetchFromGitHub {
26 owner = "microsoftgraph";
27 repo = "msgraph-sdk-python-core";
28 tag = "v${version}";
29 hash = "sha256-6M1C2Y0jYec/yKjigtbaaZiEL23csQAFtuUVMTlaiXk=";
30 };
31
32 build-system = [ setuptools ];
33
34 dependencies = [
35 httpx
36 microsoft-kiota-abstractions
37 microsoft-kiota-authentication-azure
38 microsoft-kiota-http
39 ]
40 ++ httpx.optional-dependencies.http2;
41
42 nativeCheckInputs = [
43 azure-identity
44 microsoft-kiota-serialization-json
45 pytestCheckHook
46 python-dotenv
47 responses
48 ];
49
50 pythonImportsCheck = [ "msgraph_core" ];
51
52 disabledTestPaths = [
53 # client_id should be the id of a Microsoft Entra application
54 "tests/tasks/test_page_iterator.py"
55 ];
56
57 meta = {
58 description = "Core component of the Microsoft Graph Python SDK";
59 homepage = "https://github.com/microsoftgraph/msgraph-sdk-python-core";
60 changelog = "https://github.com/microsoftgraph/msgraph-sdk-python-core/releases/tag/${src.tag}";
61 license = lib.licenses.mit;
62 maintainers = with lib.maintainers; [ dotlambda ];
63 };
64}