Overview
pip install preserves
This package (preserves
on pypi.org) implements
Preserves for Python 3.x. It provides the core semantics as well
as both the human-readable text syntax (a superset of JSON) and machine-oriented
binary format (including
canonicalization) for Preserves. It also
implements Preserves Schema and Preserves Path.
- Main package API: preserves
What is Preserves?
Preserves is a data model, with associated serialization formats.
It supports records with user-defined labels, embedded references, and the usual suite of atomic and compound data types, including binary data as a distinct type from text strings. Its annotations allow separation of data from metadata such as comments, trace information, and provenance information.
Preserves departs from many other data languages in defining how to compare two values. Comparison is based on the data model, not on syntax or on data structures of any particular implementation language.
Mapping between Preserves values and Python values
Preserves Value
s are categorized in the following way:
Value = Atom
| Compound
| Embedded
Atom = Boolean
| Double
| SignedInteger
| String
| ByteString
| Symbol
Compound = Record
| Sequence
| Set
| Dictionary
Python's strings, byte strings, integers, booleans, and double-precision floats stand directly for their Preserves counterparts. Wrapper objects for Symbol complete the suite of atomic types.
Python's lists and tuples correspond to Preserves Sequence
s, and dicts and sets to
Dictionary
and Set
values, respectively. Preserves Record
s are represented by
Record objects. Finally, embedded values are represented by
Embedded objects.