Skip to main content

versatile cache line magic for ipython

Project description

cache magic

This package adds %cache line-magic to ipython kernels in jupyter notebooks.


  • The pip-package is called ipython-cache
  • The python module is called cache_magic
  • The magic is called %cache

So you can run the magic by entering this into an ipython-cell:

!pip install ipython-cache
import cache_magic
%cache a = 1+1


install directly from notebook

  1. open jupyter notebook
  2. create new cell
  3. enter !pip install cache-magic
  4. execute
  5. restart kernel

install into conda-environment

conda create -n test
source activate test
pip install cache-magic
jupyter notebook


Activate the magic by loading the module like any other module. Write into a cell import cache_magic and excecute it.

When you want to apply the magic to a line, just prepend the line with %cache


%cache myVar = someSlowCalculation(some, "parameters")

Calculates someSlowCalculation(some, "parameters") once. And in subsequent calls restores myVar from storage.

general form

%cache <variable> = <expression>

Variable: This Variable’s value will be fetched from cache.

Expression: This will only be excecuted once and the result will be stored to disk.

full form

%cache [--version <version>] [--reset] [--debug] variable [= <expression>]

-v or –version: either a variable name or an integer. Whenever this changes, a new value is calculated (instead of returning an old value from the cache).

if version is ‘*’ or omitted, the hashed expression is used as version, so whenever the expression changes, a new value is cached.

-r or –reset: delete the cached value for this variable. Forces recalculation, if <expression> is present

-d or –debug: additional logging

show cache


shows all variables in cache as html-table

full reset

%cache -r
%cache --reset

deletes all cached values for all variables

where is the cache stored?

In the directory where the kernel was started (usually where the notebook is located) in a subfolder called “.cache_magic”

developer Notes

push to pypi

prepare environment:

gedit ~/.pypirc
chmod 600 ~/.pypirc
sudo apt install pandoc

upload changes to test and production:

pandoc -o README.rst
restview --pypi-strict README.rst
# update version in
rm -r dist
python sdist
twine upload dist/* -r testpypi
twine upload dist/*

test install from testpypi

pip install --index-url --extra-index-url ipython_cache --no-cache-dir --user

test installation

sudo pip install ipython_cache --no-cache-dir --user

editable import

Install into environment with -e:

!pip install -e .

reload after each change:

import cache_magic
from imp import reload

Alternatively (if you don’t want to install python, jupyter & co), you can use the docker-compose.yml for development:

cd ipython-cache
docker-compose up

create Conda Packet

todo: This does not work yet

conda install conda-build
conda activate test

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ipython-cache, version 0.2.5
Filename, size File type Python version Upload date Hashes
Filename, size ipython-cache-0.2.5.tar.gz (6.3 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page