Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/containers/podman-py
Python bindings for Podman's RESTful API
https://github.com/containers/podman-py
libpod podman python
Last synced: 6 days ago
JSON representation
Python bindings for Podman's RESTful API
- Host: GitHub
- URL: https://github.com/containers/podman-py
- Owner: containers
- License: apache-2.0
- Created: 2020-02-01T16:19:43.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-04T18:42:54.000Z (16 days ago)
- Last Synced: 2025-02-07T06:09:31.590Z (13 days ago)
- Topics: libpod, podman, python
- Language: Python
- Homepage:
- Size: 1.04 MB
- Stars: 273
- Watchers: 14
- Forks: 101
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# podman-py
[](https://cirrus-ci.com/github/containers/podman-py/main)This python package is a library of bindings to use the RESTful API of [Podman](https://github.com/containers/podman).
It is currently under development and contributors are welcome!## Installation
```console
pip install podman
```---
**Documentation**: https://podman-py.readthedocs.io/en/latest/
**Source Code**: https://github.com/containers/podman-py
---
## Dependencies
* For runtime dependencies, see \[dependencies\] in [pyproject.toml](https://github.com/containers/podman-py/blob/main/pyproject.toml)
* For testing and development dependencies, see \[project.optional.dependencies\] in [pyproject.toml](https://github.com/containers/podman-py/blob/main/pyproject.toml)
* The package is split in \[progress\_bar\], \[docs\], and \[test\]## Example usage
```python
"""Demonstrate PodmanClient."""
import json
from podman import PodmanClient# Provide a URI path for the libpod service. In libpod, the URI can be a unix
# domain socket(UDS) or TCP. The TCP connection has not been implemented in this
# package yet.uri = "unix:///run/user/1000/podman/podman.sock"
with PodmanClient(base_url=uri) as client:
version = client.version()
print("Release: ", version["Version"])
print("Compatible API: ", version["ApiVersion"])
print("Podman API: ", version["Components"][0]["Details"]["APIVersion"], "\n")# get all images
for image in client.images.list():
print(image, image.id, "\n")# find all containers
for container in client.containers.list():
# After a list call you would probably want to reload the container
# to get the information about the variables such as status.
# Note that list() ignores the sparse option and assumes True by default.
container.reload()
print(container, container.id, "\n")
print(container, container.status, "\n")# available fields
print(sorted(container.attrs.keys()))print(json.dumps(client.df(), indent=4))
```## Contributing
See [CONTRIBUTING.md](https://github.com/containers/podman-py/blob/main/CONTRIBUTING.md)