pypersist
pypersist is a persistent memoisation framework for Python 3. Persistent memoisation is the practice of storing the output of a function permanently to a disk or a server so that the result can be looked up automatically in the future, avoiding any known results being recomputed unnecessarily.
Installation
pypersist is available from PyPI, and the latest release can be installed using, for example:
pip3 install --user pypersist
Alternatively, the latest development version can be installed using Github:
git clone https://github.com/mtorpey/pypersist.git
pip3 install --user ./pypersist
Examples
To use, import the persist class from the pypersist package:
from pypersist import persist
and use it as a decorator when writing a function:
@persist
def double(x):
return x * 2
print(double(3))
print(double(6.5))
This will store the outputs of the double function in a directory called
persist/double/, in a machine-readable format.
One can specify various arguments to persist. For example:
@persist(key=lambda x,y: (x,y),
hash=lambda k: '%s_to_the_power_of_%s' % k,
pickle=str,
unpickle=int)
def power(x, y):
return x ** y
print(power(2,4))
print(power(10,5))
will store the outputs of power in human-readable files with descriptive
filenames.
Many more options are available. See the persist class documentation for a
full description, or launch the included notebook on
Binder
for more examples.
See this HackMD and the Issue tracker for current plans.
Citing
Please cite this package as:
[Tor20] M. Torpey, pypersist, Python memoisation framework, Version X.Y (20XX), https://github.com/mtorpey/pypersist.
Acknowledgements
pypersist was created as part of the OpenDreamKit project: https://opendreamkit.org/
This part of the project is summarised in this report.
|
|
This infrastructure is part of a project that has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 676541. |
Metadata
Release files for pypersist 1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pypersist-1.1.tar.gz | 19.0 kB | Without provenance | Details for pypersist-1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pypersist-1.1-py3-none-any.whl | Python 3 | none | any | Details for pypersist-1.1-py3-none-any.whl |
Total release size: 41.6 kB
Release files / pypersist-1.1.tar.gz
| Download URL | pypersist-1.1.tar.gz |
|---|---|
| Size | 19.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b52bcd67de4b9e291cb36d3eac6e89bd0db00f0c7be2ab9d1ed90dbe7d22591
|
|
BLAKE2b-256 checksum How to use checksums |
2095fedfaedae15eecfd707fce8cba8a8bdcc013d74f7948fc9f8a34b2226360
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.2
|
Release files / pypersist-1.1-py3-none-any.whl
| Download URL | pypersist-1.1-py3-none-any.whl |
|---|---|
| Size | 22.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00296ac75c759033624cf301da8ecacf83254ee2c7e003c213297831c1b8c858
|
|
BLAKE2b-256 checksum How to use checksums |
6c94532c696263c5a32740a320ac6ba3c131331a7ddf7db6813ddc0b475a1c79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.2
|
Security for pypersist 1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.