Skip to main content

Efficiently cache calls to functions

Project description

cacholote

Efficiently cache calls to functions

Quick Start

>>> import cacholote
>>> cacholote.config.set(cache_db_urlpath="sqlite://")
<cacholote.config.set ...

>>> @cacholote.cacheable
... def now():
...     import datetime
...     return datetime.datetime.now()

>>> now() == now()
True

>>> with cacholote.config.set(use_cache=False):
...     now() == now()
False

Configuration

Configuration settings can be accessed using cacholote.config.get() and modified using cacholote.config.set(**kwargs). It is possible to use cacholote.config.set either as a context manager, or to configure global settings. See help(cacholote.config.set).

Defaults are controlled by environment variables and dotenv files. See help(cacholote.config.reset).

Workflow for developers/contributors

For best experience create a new conda environment (e.g. DEVELOP) with Python 3.10:

conda create -n DEVELOP -c conda-forge python=3.10
conda activate DEVELOP

Before pushing to GitHub, run the following commands:

  1. Update conda environment: make conda-env-update
  2. Install this package: pip install -e .
  3. Sync with the latest template (optional): make template-update
  4. Run quality assurance checks: make qa
  5. Run tests: make unit-tests
  6. Run the static type checker: make type-check
  7. Build the documentation (see Sphinx tutorial): make docs-build

License

Copyright 2019, B-Open Solutions srl.
Copyright 2022, European Union.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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

cacholote-0.3.1.tar.gz (40.5 kB view details)

Uploaded Source

Built Distribution

cacholote-0.3.1-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file cacholote-0.3.1.tar.gz.

File metadata

  • Download URL: cacholote-0.3.1.tar.gz
  • Upload date:
  • Size: 40.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for cacholote-0.3.1.tar.gz
Algorithm Hash digest
SHA256 80d5131f523c8a7938582c02d23b7da4725b0c3643c7f83b95f8871e5f791acf
MD5 f3fc7f251c6f0c7d0ff0ef629551629e
BLAKE2b-256 2bb3a5c351eee57c52328711305214bb8f692493edf149ad794610811231dbb0

See more details on using hashes here.

File details

Details for the file cacholote-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: cacholote-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 28.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for cacholote-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9c834b3d3df5e55d0a137b4600920a4c195a2a79e8837435539ed38368ae7e06
MD5 2f8272055e4aac784ae18ee5e20587af
BLAKE2b-256 10ef6867dce0ca4e1d0527b90f15012dfd4880aa63e0920d029af5019f7ad8a8

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