Skip to main content

A Nix-style immutable data management library in Python

Project description

coverage

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] |

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

pylightnix-0.3.0.tar.gz (126.3 kB view details)

Uploaded Source

Built Distribution

pylightnix-0.3.0-py3-none-any.whl (62.9 kB view details)

Uploaded Python 3

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

Hashes for pylightnix-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a861879c38ad857e0fa0508e8a862f31749a4033feedce1e35564b27580475de
MD5 976670d60daab0a9ac6836c91210537f
BLAKE2b-256 92f5b96cf0abf32ffaa1751172c68daec492639bc5c804666ef8c877d8ab4e91

See more details on using hashes here.

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

Hashes for pylightnix-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa0c28908f4e5a1e822721490f4238099d4a929b9e08a4f4f00d6f4998d12021
MD5 64b02777c42ff7a7582f4200c52b8862
BLAKE2b-256 05bbba0e61d6704e66e49061807e86f40ef1249394a5577d03727eda60f8b4c8

See more details on using hashes here.

Supported by

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