Metadata-Version: 2.1
Name: persist
Version: 3.2
Summary: Persistent archival of python objects in an importable format.
Author-email: Michael McNeil Forbes <michael.forbes+python@gmail.com>
Requires-Python: >=3.6.2
Description-Content-Type: text/markdown
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: BSD License
Requires-Dist: six>=1.16.0
Requires-Dist: zope-interface>=5.5.2
Requires-Dist: importlib-metadata>=4.8.3; python_version < "3.8"
Requires-Dist: persist[full,test,docs] ; extra == "all"
Requires-Dist: sphinx>=5.3.0 ; extra == "docs"
Requires-Dist: nbsphinx>=0.8.8 ; extra == "docs"
Requires-Dist: pycallgraph>=1.0.1 ; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.2.0 ; extra == "docs"
Requires-Dist: sphinxcontrib-zopeext>=0.3.3 ; extra == "docs"
Requires-Dist: ipython >= 7.16.3 ; extra == "docs" and ( python_version < "3.7")
Requires-Dist: ipython >= 7.23.1 ; extra == "docs" and ( python_version >= "3.7")
Requires-Dist: mmf-setup>=0.4.11 ; extra == "docs"
Requires-Dist: scipy >= 1.5.4 ; extra == "full" and ( python_version < "3.7")
Requires-Dist: scipy >= 1.7.3 ; extra == "full" and ( python_version < "3.10" and python_version >= "3.7")
Requires-Dist: scipy >= 1.10.1 ; extra == "full" and ( python_version >= "3.10")
Requires-Dist: numpy>=1.21.0 ; extra == "full" and ( python_version >= "3.8")
Requires-Dist: h5py>=3.1.0 ; extra == "full" and ( python_version < "3.7")
Requires-Dist: h5py >= 3.2.1 ; extra == "full" and ( python_version >= "3.7")
Requires-Dist: pytest>=7.0.1 ; extra == "test"
Requires-Dist: coverage[toml] ; extra == "test" and ( python_version < "3.7")
Requires-Dist: coverage[toml]>=7.2.2 ; extra == "test" and ( python_version >= "3.7")
Requires-Dist: persist[full] ; extra == "test"
Project-URL: Git Mirror, https://github.com/forbes-group/persist
Project-URL: Issues, https://alum.mit.edu/www/mforbes/hg/forbes-group/persist/issues
Project-URL: documentation, http://persist.readthedocs.org
Project-URL: repository, https://alum.mit.edu/www/mforbes/hg/forbes-group/persist
Provides-Extra: all
Provides-Extra: docs
Provides-Extra: full
Provides-Extra: test

# Persistent Archival of Python Objects

[![Documentation Status](https://readthedocs.org/projects/persist/badge/?version=latest)](https://persist.readthedocs.io/en/latest/?badge=latest)
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/forbes-group/persist.svg)](https://lgtm.com/projects/g/forbes-group/persist/context:python)
[![Tests](https://github.com/forbes-group/persist/actions/workflows/tests.yml/badge.svg)](https://github.com/forbes-group/persist/actions/workflows/tests.yml)
[![Pypi](https://img.shields.io/pypi/v/persist.svg)](https://pypi.python.org/pypi/persist)
[![pyversions](https://img.shields.io/pypi/pyversions/persist.svg)](https://pypi.python.org/pypi/persist)[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

Persistent archival of python objects in an importable format.

This package provides a method for archiving python objects to disk for long-term persistent storage.  The archives are importable python packages with large data stored in the [npy](https://docs.scipy.org/doc/numpy/neps/npy-format.html) numpy data format, or [HDF5](http://www.hdfgroup.org/HDF5/) files using the [h5py](http://www.h5py.org) package (if it is installed). The original goal was to overcomes several disadvatages of pickles:

1. Archives are relatively stable to code changes.  Unlike pickles, changing the underlying code for a class will not change the ability to read an archive if the API does not change.
2. In the presence of API changes, the archives can be edited by hand to fix them since they are simply python code.  (Note: for reliability, the generated code is highly structured and not so "pretty", but can still be edited or debugged in the case of errors due to API changes.)
3. Efficient storage of large arrays.
4. Safe for concurrent access by multiple processes.

**Documentation:**
   http://persist.readthedocs.org

**Source:**
   https://alum.mit.edu/www/mforbes/hg/forbes-group/persist
   
**Issues:**
   https://alum.mit.edu/www/mforbes/hg/forbes-group/issues

## Installing

This package can be installed from [PyPI](https://pypi.org/project/persist/):

```bash
python3 -m pip install persist
```

or from source:

```bash
python3 -m pip install hg+https://alum.mit.edu/www/mforbes/hg/forbes-group/persist
```

