Skip to main content

Stateful, object-oriented, pseudo-functional programming in python.

Project description

Cellulose provides a mechanism for maintaining consistency between inter-dependant values with caching and lazy evaluation.

You can think of it like a spreadsheet program – Many cells are are calculated from the values of other cells. When one cell changes, all of the dependant cells get updated with new values.

However, cellulose goes quite a ways beyond this. It guarantees that when a value is read, it is consistant with all the values it depends on. It also is lazy (read: efficient.) Calculating a value is put off till the very last possible moment, and only recalculated when absolutely needed.

Dependency discovery and cache invalidation are fully transparent and automatic. This greatly reduces a major source of bugs in software.

A goal of the project is to be as simple as possible, (but no simpler,) so that anyone wanting to seriously use it could easily understand the internals.

Cellulose is similar in purpose to PyCells, but is in a way ‘lower level’. It tries real hard to stay out of your way, but, as a result, lacks some of the helpers that PyCells provides. The most essential algorithmic difference is probably that Cellulose desperatly wants to be lazy, while in PyCells everything is calculated immediately (by default.) (On the flipside of this, observers in PyCells are quite a bit easier to work with.)

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

Cellulose-0.1.2.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

Cellulose-0.1.2-py2.4.egg (41.7 kB view details)

Uploaded Source

File details

Details for the file Cellulose-0.1.2.tar.gz.

File metadata

  • Download URL: Cellulose-0.1.2.tar.gz
  • Upload date:
  • Size: 26.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Cellulose-0.1.2.tar.gz
Algorithm Hash digest
SHA256 121b790f4441a3f5ba88d60c800cc8d843361b8f15559b82fe022b0debb2b016
MD5 0ee1805e197db54ca8ce3d0783e1015b
BLAKE2b-256 471be8940c904b424bd06970b0e6275336ac8b8ab82548fa082e22fe5e8f2d63

See more details on using hashes here.

File details

Details for the file Cellulose-0.1.2-py2.4.egg.

File metadata

File hashes

Hashes for Cellulose-0.1.2-py2.4.egg
Algorithm Hash digest
SHA256 2e9c28b746dd252e363a33d480c956ce16402d2cf324aca62c54900083b112c8
MD5 82def55f2dadef1a3fc32764e851a2ca
BLAKE2b-256 a5035c73c36f94d1d85b1b205d6bd26087a0269c9e994cc09d31d21b294413f5

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