Skip to main content

One interface to docker, podman and Apple's container.

Project description

PyPI version Supported Python versions Build status ReadTheDocs status

imaged gives you one interface to docker, podman and Apple’s container. Start a container, speak to its standard streams, and be told what went wrong in terms you can branch on.

from imaged import Engine

engine = Engine.detect()

id = await engine.create_pulling_if_needed("alpine", "cat")
async with engine.start(id) as session:
    await session.send("hello")
    assert await session.receive() == "hello"

Why

Every engine reports the same failure differently, and none of them do so machine readably – not even over their HTTP APIs. Working out that an image simply doesn’t exist otherwise means matching on substrings of prose, separately for each engine. imaged does that once, and raises NoSuchImage.

Each engine is driven via its command line interface, which is the only mechanism all three have in common, as Apple’s container has no HTTP API at all. Doing so also leaves the engine to demultiplex container stdio onto real pipes, rather than leaving you to unpick its framing.

Containers get no networking unless you ask for it, on the theory that something you are running should have to say so before it can phone home.

anyio is the only async dependency, so this runs unmodified on both asyncio and trio. Its own test suite runs on both, against all three engines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imaged-2026.7.2.tar.gz (43.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imaged-2026.7.2-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file imaged-2026.7.2.tar.gz.

File metadata

  • Download URL: imaged-2026.7.2.tar.gz
  • Upload date:
  • Size: 43.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for imaged-2026.7.2.tar.gz
Algorithm Hash digest
SHA256 db0daa5417dfca07ddbbfdf4fb00db7f743d43cb071455f84a9fd7b386b3cdc8
MD5 78b07c1002d90ac71e817561f02683a5
BLAKE2b-256 83d144a8e3143e047c00c8fe2939e916da58dc567277101b21fcc3356529e999

See more details on using hashes here.

Provenance

The following attestation bundles were made for imaged-2026.7.2.tar.gz:

Publisher: ci.yml on Julian/imaged

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imaged-2026.7.2-py3-none-any.whl.

File metadata

  • Download URL: imaged-2026.7.2-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for imaged-2026.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 361ecc358b92cc0bfeffbaa31a509013a3ff06ae87ed5c02ceaf87e8ea730eec
MD5 52c2c3d2bc0833e9dbd48cc8b53ba653
BLAKE2b-256 503b7a38fa3bd5baea64a54fed4277e57ffd83fa499d444df920ec02cdedb701

See more details on using hashes here.

Provenance

The following attestation bundles were made for imaged-2026.7.2-py3-none-any.whl:

Publisher: ci.yml on Julian/imaged

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page