In this post we create a *DiskCacher* class that can be used as a
*with* context manager, a function wrapper and as the pie-syntax
decorator. It modifies a given computation function, and tries to use
the cached data if possible, and only do the re-computation if the
cache is not found or the user forces an overwrite.
In this post I'll talk about some basic 2D geographical plotting workflows, using the `matplotlib` and `basemap` packages. Then we cover some common issues that are worth your attention when creating such plots.
We use memoization to cache the computed
results to help speed up the computation of Fibonacci numbers, and
lazy evaluation to create a generator that outputs new Fibonacci
numbers indefinitely.