Instead of storing entire cookbook in memory, only store metadata, and read recipes from disk as needed (with an LRU cache inbetween)
pylru for lru cache
perceptron for basic ML stuff