Manifest + operations library -- the DazzleLib stack's L3 orchestration layer (PreserveManifest, transactional copy/move/restore/verify, link policy).
Project description
dazzle-preservelib
Manifest + operations library -- the L3 orchestration layer of the DazzleLib stack.
It owns the preserve domain: the PreserveManifest (a content-hash record of
what was copied, with DAG lineage), transactional copy / move / restore /
verify operations, destination-conflict resolution, and link-handling
policy. It delegates the actual filesystem mechanics down the stack.
What this owns (and what it delegates)
| Concern | Layer |
|---|---|
| Manifest, operations, conflict resolution, link policy, verification | dazzle-preservelib (L3, this lib) |
| File/link mechanics (create/detect/read/remove, copy, hash, metadata, disk-space) | dazzle-filekit (L1) |
| UNC <-> drive identity | unctools (L0) |
| Shared Protocols / TypedDicts / exception root | dazzle-lib (B) |
.dazzlelink record bridge (optional [dazzlelink] extra) |
dazzle-linklib (L2) |
The orchestration and policy live here; the primitives they stand on belong to
the layers below. This library is the destination of the P3 extraction that
collapses three drifting preservelib copies (preserve, ghtraf, safedel) into
one canonical home.
The stack
| Layer | Library | Role |
|---|---|---|
| B | dazzle-lib | bedrock contracts |
| L0 | unctools | path identity |
| L1 | dazzle-filekit | filesystem primitives |
| L2 | dazzle-linklib | link record + resolver |
| L3 | dazzle-preservelib (this) | manifest + operations |
| ⊥ | dazzle-treelib | traversal engine |
Status
Pre-release (P3 extraction in progress). This repository is being populated
by the P3 extraction of preservelib from the preserve project: the manifest
- operations move here as a standalone library, the filesystem primitives
delegate down to
dazzle-filekit, and thepreserveCLI thins to a consumer. The first functional release will be 0.8.0 (continuing the preserve lineage). See the Roadmap.
Installation
pip install dazzle-preservelib
From source
git clone https://github.com/DazzleLib/dazzle-preservelib.git
cd dazzle-preservelib
pip install -e ".[dev]"
Development
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e ".[dev]"
# Run tests
python -m pytest tests/ -v
# Install git hooks
bash scripts/install-hooks.sh
License
MIT. See LICENSE for details. The whole DazzleLib stack is MIT (STACK-MAP D11).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dazzle_preservelib-0.8.1.tar.gz.
File metadata
- Download URL: dazzle_preservelib-0.8.1.tar.gz
- Upload date:
- Size: 92.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b83fd171c9e4cde5c19b7cba7f8618a3a2ab598742ead5f5f6d08ec952074a8e
|
|
| MD5 |
784ade2c83e3f608cf7cf3126ee1f633
|
|
| BLAKE2b-256 |
5502918a53ddee47a65b36f0202d78571e090be94e168160a0817fc9126844a6
|
Provenance
The following attestation bundles were made for dazzle_preservelib-0.8.1.tar.gz:
Publisher:
release.yml on DazzleLib/dazzle-preservelib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dazzle_preservelib-0.8.1.tar.gz -
Subject digest:
b83fd171c9e4cde5c19b7cba7f8618a3a2ab598742ead5f5f6d08ec952074a8e - Sigstore transparency entry: 1929835622
- Sigstore integration time:
-
Permalink:
DazzleLib/dazzle-preservelib@b4272bda149ae766065f92a13921b1294d126205 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/DazzleLib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b4272bda149ae766065f92a13921b1294d126205 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dazzle_preservelib-0.8.1-py3-none-any.whl.
File metadata
- Download URL: dazzle_preservelib-0.8.1-py3-none-any.whl
- Upload date:
- Size: 77.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd75b17b7af3dc3d5c02a9c56c9c9249f6d72743b646deeb5677baac20730bb4
|
|
| MD5 |
7d202e9f1f69c49e02d4ba22d90d4938
|
|
| BLAKE2b-256 |
2d576d1c46be7275c8244e05692e3cd81a411bc18023dbd6b0eae6ec6db88538
|
Provenance
The following attestation bundles were made for dazzle_preservelib-0.8.1-py3-none-any.whl:
Publisher:
release.yml on DazzleLib/dazzle-preservelib
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dazzle_preservelib-0.8.1-py3-none-any.whl -
Subject digest:
bd75b17b7af3dc3d5c02a9c56c9c9249f6d72743b646deeb5677baac20730bb4 - Sigstore transparency entry: 1929835689
- Sigstore integration time:
-
Permalink:
DazzleLib/dazzle-preservelib@b4272bda149ae766065f92a13921b1294d126205 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/DazzleLib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b4272bda149ae766065f92a13921b1294d126205 -
Trigger Event:
release
-
Statement type: