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