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