1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 hatchling,
7 scim2-models,
8 pytestCheckHook,
9 portpicker,
10 pytest-httpserver,
11 pytest-asyncio,
12 scim2-server,
13 httpx,
14 werkzeug,
15 cacert,
16}:
17
18buildPythonPackage rec {
19 pname = "scim2-client";
20 version = "0.6.1";
21
22 pyproject = true;
23
24 disabled = pythonOlder "3.9";
25
26 src = fetchPypi {
27 inherit version;
28 pname = "scim2_client";
29 hash = "sha256-5XOUOKf0vYHkewY22x5NQdhICXCd+EftKhsxtQurgHQ=";
30 };
31
32 build-system = [ hatchling ];
33
34 dependencies = [ scim2-models ];
35
36 nativeCheckInputs = [
37 pytestCheckHook
38 portpicker
39 pytest-httpserver
40 pytest-asyncio
41 scim2-server
42 werkzeug
43 cacert
44 ]
45 ++ optional-dependencies.httpx;
46
47 # Werkzeug returns 500, didn't deem it worth it to investigate
48 disabledTests = [
49 "test_search_request"
50 "test_query_dont_check_request_payload"
51 ];
52
53 pythonImportsCheck = [ "scim2_client" ];
54
55 optional-dependencies = {
56 httpx = [ httpx ];
57 werkzeug = [ werkzeug ];
58 };
59
60 meta = with lib; {
61 description = "Pythonically build SCIM requests and parse SCIM responses";
62 homepage = "https://scim2-client.readthedocs.io/";
63 changelog = "https://github.com/python-scim/scim2-client/releases/tag/${version}";
64 license = licenses.asl20;
65 maintainers = with maintainers; [ erictapen ];
66 };
67}