Skip to main content

A system for maintaining consistency between inter-dependant values with caching and lazy evaluation.

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.1.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

Cellulose-0.1.1-py2.4.egg (40.4 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for Cellulose-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e2a96ab842b82baae7f6d3cb3128d5b34eba0e7cdfc897f1f9eb3438c431b38f
MD5 4e44f5376b20be0fc13e1e4fafeddf0a
BLAKE2b-256 0833b8330f1543584afb137f3992c9e20040ab0fc9a81b1de1b92748815cf738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for Cellulose-0.1.1-py2.4.egg
Algorithm Hash digest
SHA256 566957482c2834392264a0a47717ee9ca9196e2e951a6eaf4d05fdfae1c0bff5
MD5 e0f03d16c7662dd374721b19b3ad1f98
BLAKE2b-256 31808db8b6e0b95e8d4b9b6e6337185f343669c34483522432199d69534dcc56

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