Skip to main content

News

Cellulose 0.2 has a few backwards-incompatible changes. Check the README for more information.

Changelog from 0.1.2 to 0.2:

* All tests pass with Python 2.5.
* ComputedCell is now thread safe.
* ComputedDict is now a little more friendly for subclassing.
* The 'restrictions' functionality has been moved into it's own set of classes.
* InputCellDescriptor will now take a default value.
* Cell descriptors in general are easier to subclass.
* DependantCell.dependency_changed now takes the dependency as an argument.

Sales Pitch (only I’m no salesman)

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 desperately 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.)

Release files for Cellulose 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Cellulose 0.2
File Size Uploaded
Cellulose-0.2.tar.gz 28.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Cellulose 0.2
File Interpreter ABI Platform
Cellulose-0.2-py2.5.egg Legacy Egg format - - Details

Total release size: 72.5 kB

Release files / Cellulose-0.2.tar.gz

Download URL Cellulose-0.2.tar.gz
Size 28.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aa3b28e0204e7b8873b5762a45952166abdb36d1b90847f57d6e5b96e3b7a6ff
BLAKE2b-256 checksum
How to use checksums
69a8c82b410058c64627cd5ec4c18ab64dd3bf7c8ac304b9b83815ac35bdda9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / Cellulose-0.2-py2.5.egg

Download URL Cellulose-0.2-py2.5.egg
Size 43.8 kB
Tags Egg
SHA-256 checksum
How to use checksums
3df73c8d8927df0ee7e0c7e692d3cfd174b4578368723f3e27d8693eee462789
BLAKE2b-256 checksum
How to use checksums
ebbc9e2befdce91231d214d7431737b5c56868092df4c9c277a60926a0c6a28e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page