1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 fixtures,
6 pytestCheckHook,
7 pythonOlder,
8 requests,
9 requests-mock,
10 rich,
11 setuptools,
12 urllib3,
13 writableTmpDirAsHomeHook,
14}:
15
16buildPythonPackage rec {
17 pname = "podman";
18 version = "5.6.0";
19 pyproject = true;
20
21 disabled = pythonOlder "3.11";
22
23 src = fetchFromGitHub {
24 owner = "containers";
25 repo = "podman-py";
26 tag = "v${version}";
27 hash = "sha256-VlPhW0FL51EQQRlDrd0F3ByXu/xpydXLSCM5umzpIW0=";
28 };
29
30 build-system = [ setuptools ];
31
32 dependencies = [
33 requests
34 urllib3
35 ];
36
37 optional-dependencies = {
38 progress_bar = [ rich ];
39 };
40
41 nativeCheckInputs = [
42 fixtures
43 pytestCheckHook
44 requests-mock
45 writableTmpDirAsHomeHook
46 ];
47
48 pythonImportsCheck = [ "podman" ];
49
50 disabledTests = [
51 # Integration tests require a running container setup
52 "AdapterIntegrationTest"
53 "ContainersIntegrationTest"
54 "ContainersExecIntegrationTests"
55 "ImagesIntegrationTest"
56 "ManifestsIntegrationTest"
57 "NetworksIntegrationTest"
58 "PodsIntegrationTest"
59 "SecretsIntegrationTest"
60 "SystemIntegrationTest"
61 "VolumesIntegrationTest"
62 ];
63
64 disabledTestPaths = [
65 # Access to the host's filesystem
66 "podman/tests/integration/test_container_create.py"
67 "podman/tests/unit/test_utils.py"
68 ];
69
70 meta = with lib; {
71 description = "Python bindings for Podman's RESTful API";
72 homepage = "https://github.com/containers/podman-py";
73 changelog = "https://github.com/containers/podman-py/releases/tag/${src.tag}";
74 license = licenses.asl20;
75 maintainers = with maintainers; [ fab ];
76 };
77}