Skip to main content

A simple cache context manager for Data Scientists.

Project description

Cacha


CI/CD PyPi License

The simplest Python cache for Data Scientist:

  • cache on disk, use between runs,
  • use at function call, not definition.

Example

If you don't want to wait for a given compute() function to complete each time you run the script, you can cache it:

import cacha

result = compute(data) # regular usage, slow

result = cacha.cache(compute, (data, ))  # usage with cache

The cached data is stored in $HOME/.cacha/. Each time you run the function with identical input arguments, the output data will be loaded, instead of being computed.

It can be easily used with popular data structures like pandas.DataFrame or numpy.array. In case of complicated python objects that can't be easily hashed, you can use an additional key parameter that forces saving the cache based on the key value.

import cacha

result = cacha.cache(compute, (data, ), key="compute-v3")

FAQ

How is it different other caching packages?

In contrary to many other tools, cacha:

  • is used at the function call, not definition. Many packages implement the @cache decorator that has to be used before definition of a function that is not easy enough to use.
  • it stores the cache on disk which means you can use cache between runs. This is convenient in data science work.

How can I clear the cache?

Just delete the $HOME/.cacha/ directory. You can also call cacha.clean() which has the same effect.

Why does it require the pandas, numpy and other libraries?

To properly cache the objects from specific packages, it is necessary to have access to the functions they provide in that regard.

The main goal of cache is not to be lightweight but to provide the best developer experience.

However most of the required packages are usually used in Machine Learning projects anyway.

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

cacha-1.0.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

cacha-1.0.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file cacha-1.0.0.tar.gz.

File metadata

  • Download URL: cacha-1.0.0.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.13 Darwin/21.5.0

File hashes

Hashes for cacha-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4d4cdc804c2566023d1d11e6c747635362372b3e72a57db540df5ca75a138da4
MD5 c91ac7be7b37b1871d57b37ec99f3faf
BLAKE2b-256 03d6f8cd4041cf394d932bcdacca0c1eb7a35008f97fe8eba8cd29dc04b46699

See more details on using hashes here.

File details

Details for the file cacha-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cacha-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.9.13 Darwin/21.5.0

File hashes

Hashes for cacha-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 858da1f27c006f5c374d96b7df2128c847333d38eaf4994f9a29decdd2bdd180
MD5 4f665b1c225533c628570a4356c1d437
BLAKE2b-256 bad9803239d87e4359f44dba5a9c3fac4704bc46a723089d3cc1127824271c44

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