Managed isolated environments for Python
Project description
Isolate
Run any Python function, with any dependencies, in any machine you want. Isolate offers a pluggable end-to-end solution for building, managing, and using isolated environments (virtualenv, conda, remote, and more).
Motivation
The fact that nearly every piece of software uses some other libraries or some other programs is undeniable. Each of these come with their set of dependencies, and this chain moves forward. Once there are enough 'nodes' in the chain, then the "dependency mess" starts to surface and our lives become much harder.
Python tried to solve it by recommending the "virtual environment" concept. In
theory it was designed to isolate environments of different projects, so my project
A can depend on pandas==1.0.0
while B depends on pandas==2.0.0
and whichever
project I choose to work with, I just activate its own environment.
Overall this was a very nice solution that did work, and still continues to work for this use case. But as with every other scoped fix, in time other problems started to appear that demand a much narrower scope (like defining module-level dependencies, or even function-level ones for cloud runtimes that allow seamless integration with the rest of your code running in a different machine).
However, unlike "virtual environment" concept, each of the projects that tried to tackle this problem lacked a universal interface which one can simply define a set of requirements (this might be dependencies, size of the machine that is needed to run it, or something completely different) and can change it without any loss. Isolate is working towards a future where this transititon is as seamless as the transition from your local environment to the remote environment.
Contributing
Installing in editable mode with dev dependencies
pip install -e '.[dev]'
Running tests
pytest
Pre-commit
pre-commit install
Commit format
Please follow conventional commits specification for descriptions/messages.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file isolate-0.14.2.tar.gz
.
File metadata
- Download URL: isolate-0.14.2.tar.gz
- Upload date:
- Size: 70.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9432ee6f2c6b86cc310c01c6d9b3ba700620afa08f8591ee791abd0a518eed91 |
|
MD5 | f3a265ab7079e468f82fa05f54744236 |
|
BLAKE2b-256 | 4dde12600e6ed5f65888c544887f7be765c6f800d6ec394043a470a5fe6a6bff |
File details
Details for the file isolate-0.14.2-py3-none-any.whl
.
File metadata
- Download URL: isolate-0.14.2-py3-none-any.whl
- Upload date:
- Size: 72.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6835b35d6371646cde30bd18fffa747d11c85e4f84b80f7b84479e070523da2 |
|
MD5 | 7cec63510f2ed7212807db65632d69a3 |
|
BLAKE2b-256 | 6e636f3f31d53d5bc6c1fb1f009bdcce665f154d287e46a03dc7b8c823a2ba12 |