Skip to main content

nicecache

A cache that persists data between runs. Trust me, you need this.

@functools.cache is nice, but there's a slight problem -- each program starts its own cache fresh. In comes @nicecache.nicecache. Use it just like you'd use @functools.cache, but rest assured that you really only have to compute this once and they'll persist across runs (by saving to disk!).


Uses diskcache to manage things behind the scenes.

@nicecache decorator

Got some slow data-loading or preprocessing that you'd rather just compute once? Frustrated that functools.cache spawns a new cache each time you re-run your program? You're in the right place.

Here's a really simple example:

from time import time
from nicecache import nicecache
@nicecache(tmp_cache_dir)
def slowtimes(a, b):
    print('saving to cache:', (a, b))
    time.sleep(5)
    return a * b

def test():
    t1 = time()
    print(slowtimes(5, 3))
    t2 = time()
    print(f'Func 1 time: {t2-t1}s')
    print(slowtimes(5, 3))
    t3 = time()
    print(f'Func 2 time: {t3-t2}s')
    print(slowtimes(4, 2))
    t4 = time()
    print(f'Func 3 time: {t4-t3}s')
    print(slowtimes(4, 2))
    t5 = time()
    print(f'Func 4 time: {t5-t4}s')
saving to cache: (5, 3)
15
Func 1 time: 5.0264012813568115
15
Func 2 time: 0.0017404556274414062
saving to cache: (4, 2)
8
Func 3 time: 5.011389970779419
8
Func 4 time: 0.0015897750854492188

Specifying a cache path

By default values are cached to ~/.nicecache. Specify a different folder path by passing an argument to the decorator. For example, @nicecache('/tmp/cache/path').

NiceCache

Download files

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

Source Distribution

nicecache-0.0.1.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nicecache-0.0.1-py3-none-any.whl (3.0 kB view details)

Uploaded Python 3

File details

Details for the file nicecache-0.0.1.tar.gz.

File metadata

  • Download URL: nicecache-0.0.1.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for nicecache-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f8a281ba7da24436c51e57514b11383ab5078bbd25351f4ea920a7bce5bd4c42
MD5 d08236f45c7cca6364f9d057971a340a
BLAKE2b-256 e8adaf34fd575539f7ec3fab76f57a57f9cd0d930c5939027eafca15f1374ff7

See more details on using hashes here.

File details

Details for the file nicecache-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: nicecache-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 3.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for nicecache-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ebc40dfd203bbdf180cf934a73d7b7edd94b33222a9ace43ef692406c8470af
MD5 b8ce1edd3cc36cfd06cd6e0124a166a2
BLAKE2b-256 b6bb74ccdd4dd36e6543311a4018447225bb399bd7c69aac8ccbd4a303d7debd

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page