A Nix-style immutable data management library in Python
Project description
Pylightnix
Pylightnix is a minimalistic Python library for managing filesystem-based immutable data objects, inspired by Purely Functional Software Deployment Model thesis by Eelco Dolstra and the Nix package manager.
The library may be thought as of low-level API for creating caching wrappers for a subset of Python functions. In particular, Pylightnix allows user to
- Prepare (or, in our terms - instantiate) the computation plan aimed at creating a tree of linked immutable stage objects, stored in the filesystem.
- Implement (in our terms - realize) the prepared computation plan, access the resulting artifacts. Pylightnix is able to handle non-deterministic results of the computation. As one example, it is possible to define a stage depending on best top-10 instances (in a user-defined sense) of prerequisite stages.
- Handle changes in the computation plan, re-use the existing artifacts whenever possible.
- Gain full control over all aspects of the cached data including the garbage-collection.
Documentation
QuickStart [PDF] | API Referece [MD]
Demos:
- GNU Hello, turns Pylightnix into a toy package manager to build the GNU Hello from sources.
- MDRUN, evaluate code sections in a Markdown document, and cache the results betwee runs.
(Outdated)
Manual [PDF] |
- Ultimatum tutorial, managing experiments.
- MNIST demo shows some machine learning specific.
- REPL demo illustrates how to debug stage sequences.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylightnix-0.3.0.tar.gz.
File metadata
- Download URL: pylightnix-0.3.0.tar.gz
- Upload date:
- Size: 126.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0.post20200709 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a861879c38ad857e0fa0508e8a862f31749a4033feedce1e35564b27580475de
|
|
| MD5 |
976670d60daab0a9ac6836c91210537f
|
|
| BLAKE2b-256 |
92f5b96cf0abf32ffaa1751172c68daec492639bc5c804666ef8c877d8ab4e91
|
File details
Details for the file pylightnix-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pylightnix-0.3.0-py3-none-any.whl
- Upload date:
- Size: 62.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0.post20200709 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa0c28908f4e5a1e822721490f4238099d4a929b9e08a4f4f00d6f4998d12021
|
|
| MD5 |
64b02777c42ff7a7582f4200c52b8862
|
|
| BLAKE2b-256 |
05bbba0e61d6704e66e49061807e86f40ef1249394a5577d03727eda60f8b4c8
|