Skip to main content

Wetlands

Wetlands tests Wetlands PyPI Wetlands Python versions

Wetlands lets a Python application run functions and external commands in separate Pixi environments.

This is useful when one application needs libraries whose dependencies cannot be installed together. Wetlands creates the environments, keeps worker processes ready for repeated calls, transfers ordinary Python values between the application and workers, and supervises commands and services installed in an environment.

Wetlands is intended for code you trust. Environments prevent dependency conflicts, but they do not restrict what code can access on your computer.

Install

pip install wetlands

Wetlands transfers NumPy array data between the application and workers through operating-system shared memory automatically. Install the optional host-side NumPy support when arrays cross the worker boundary:

pip install "wetlands[shared-memory]"

Also include NumPy in each managed worker environment that receives or returns arrays. Your code uses ordinary, independently owned arrays; it never manages shared-memory handles directly. See NumPy arrays and shared-memory transport for the complete transfer model.

Run a task

from wetlands import EnvironmentManager, EnvironmentSpec

with EnvironmentManager(root="wetlands") as manager:
    environment = manager.provision(
        "first-example",
        EnvironmentSpec(python="3.12.*"),
    ).wait_for()

    with environment.start() as workers:
        result = workers.execute_import(
            "builtins:sum",
            args=([20, 22],),
        )

print(result)  # 42

The first run may download Pixi and Python packages and can take several minutes.

Continue with the first-task tutorial or browse the complete documentation. Existing Wetlands 1 users should read the migration guide.

Development

Install the development environment:

uv sync --frozen --group dev --extra shared-memory

Run the fast tests and static checks:

uv run --extra shared-memory pytest -m "not integration and not compat and not manual"
uv run ruff check
uv run ruff format --check
uv run mypy src/wetlands

Start with the contributor setup and validation guide. The architecture guide explains the runtime design. Maintainers should follow RELEASING.md when publishing a release.

Wetlands is licensed under the MIT License. Read the security policy before executing third-party worker code, managed commands, or post-install commands.

Metadata

Release files for wetlands 2.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wetlands 2.4.2
File Size Uploaded
wetlands-2.4.2.tar.gz 343.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wetlands 2.4.2
File Interpreter ABI Platform
wetlands-2.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 482.7 kB

Release files / wetlands-2.4.2.tar.gz

Download URL wetlands-2.4.2.tar.gz
Size 343.7 kB
Tags Source
SHA-256 checksum
How to use checksums
564a7e20679196f3bd56ef32a16e7684c6440c0c74998034cc68ad344e6ea739
BLAKE2b-256 checksum
How to use checksums
127b787c6a5c9d20f4b2ca6b43d86045a4fe2a9898e285cbd28d2a2b668c64c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / wetlands-2.4.2-py3-none-any.whl

Download URL wetlands-2.4.2-py3-none-any.whl
Size 139.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ff0b016fb46dfd26edef5bcdda516aa80cc14eef85c7b487d8f391d89df2f17
BLAKE2b-256 checksum
How to use checksums
153ce2c61c4aadf4011f8cd340db6cb50248a83ded86639516af1f310a304fe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

2.6.1

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.3

2 release files

This release

2.4.2 This release

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.1.6

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page