Paper-style workflow preparation for Arabic morphology probing experiments.
Project description
Sarf Atlas
Sarf Atlas is a backend-agnostic workflow framework for Arabic morphology probing experiments. It organizes datasets, prompts, splits, diagnostics, backend artifact manifests, baseline comparisons, and report scaffolds.
Sarf organizes.
Backends extract.
Auditors compare.
Current package version: 1.0.0.
Latest previously verified PyPI release: sarf-atlas==0.4.0.
What Sarf Is
- A CLI for preparing Arabic morphology probing workflows.
- A small schema layer for morphology rows, split metadata, diagnostics, and imported backend artifact manifests.
- A backend-neutral adapter surface for Ember, llama.cpp-derived files, HF/Transformers outputs, or other precomputed artifacts.
- A place to run lightweight standard-library baselines such as majority and character n-gram comparisons.
What Sarf Is Not
- It is not a model inference engine.
- It does not train probes in the base package.
- It does not extract hidden states by itself.
- It does not vendor Ember, llama.cpp, Transformers, or model weights.
- It does not claim Paper 1 reproduction from toy or mock artifacts.
Quickstart
Install from PyPI once the target release is published:
pip install sarf-atlas
For local development:
python -m pip install -e .
Create a project layout:
sarf init --out-dir /tmp/sarf-demo --name demo
Generate a self-contained toy workflow:
sarf example-workflow --out-dir /tmp/sarf-example
sarf summarize-run --manifest /tmp/sarf-example/artifacts/imported/sarf_artifact_manifest.placeholder.json
When working from a source checkout, run a tiny paper-style workflow:
sarf validate-dataset examples/paper_style/tiny_morphology.jsonl
sarf make-experiment examples/paper_style/experiment.toml --out /tmp/sarf-demo/run
sarf validate-labels examples/paper_style/experiment.toml --out /tmp/sarf-demo/labels.json
sarf summarize-splits examples/paper_style/tiny_morphology.jsonl /tmp/sarf-demo/run/split_metadata.json --out /tmp/sarf-demo/splits.json
sarf make-baselines examples/paper_style/experiment.toml --out /tmp/sarf-demo/baselines
sarf make-probe-config examples/paper_style/experiment.toml --out /tmp/sarf-demo/probe_config.toml
sarf report /tmp/sarf-demo/run --out /tmp/sarf-demo/report.md
Run the fuller mock-backed Paper 1-style example:
cat examples/paper1_reproduction/README.md
That example exercises validation, prompt generation, split diagnostics, tokenization diagnostics, artifact import, probe config generation, baseline comparison, and report output with deterministic toy data.
Stable CLI Surface
The 1.0 command contract classifies the public commands in
docs/command_contract.md.
Stable-track commands include:
sarf initsarf example-workflowsarf validate-datasetsarf make-promptssarf make-splitssarf make-experimentsarf import-artifactssarf summarize-runsarf validate-labelssarf summarize-splitssarf make-probe-configsarf make-baselinessarf run-baselinesarf summarize-baselinesarf tokenization-diagnosticssarf report
Backend doctor commands are intentionally marked experimental because they depend on optional local tools.
Schemas
The schema v1 contract is documented in docs/artifact_schema_guide.md.
Stable contracts:
- Artifact manifest schema v1.
- Dataset row schema v1.
- Split metadata schema v1.
- Tokenization diagnostics schema v1.
- Baseline artifact schema v1.
Important JSON outputs include numeric schema_version fields. Existing
string schema identifiers remain for compatibility where they already
existed.
Guides
- CLI contract:
docs/command_contract.md - Schema guide:
docs/artifact_schema_guide.md - Paper-style workflow:
docs/paper_style_workflow.md - Backend guide:
docs/backend_guide.md - Diagnostics guide:
docs/evaluation_diagnostics.md - Examples index:
docs/examples.md - Release checklist:
docs/release_checklist.md - Changelog:
CHANGELOG.md
Optional Backends
Sarf can inspect optional backend availability:
sarf backends list
sarf backend llama-cpp doctor
sarf backend ember doctor
These checks are diagnostic only. Base Sarf stays lightweight and can still organize workflows and import file-based artifacts when no local backend is installed.
Citation
Use CITATION.cff for citation metadata. Sarf Atlas is released under the MIT
License; see 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
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 sarf_atlas-1.0.0.tar.gz.
File metadata
- Download URL: sarf_atlas-1.0.0.tar.gz
- Upload date:
- Size: 51.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
397732d99fb22fdac09b0840e432f5795ae5d9784ec8e20c0f5115400cf38180
|
|
| MD5 |
2d8e43b2d050803c80bb49fb0179b439
|
|
| BLAKE2b-256 |
50173508a2a360ac2235c1d8347698c3764af103e50e3f0d9c2fec353690df5b
|
Provenance
The following attestation bundles were made for sarf_atlas-1.0.0.tar.gz:
Publisher:
ci.yml on voidwest/sarf-atlas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sarf_atlas-1.0.0.tar.gz -
Subject digest:
397732d99fb22fdac09b0840e432f5795ae5d9784ec8e20c0f5115400cf38180 - Sigstore transparency entry: 1964327403
- Sigstore integration time:
-
Permalink:
voidwest/sarf-atlas@f4e6634fc2c4dfdd2de3feeb0a1fb0b665a13fa3 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/voidwest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@f4e6634fc2c4dfdd2de3feeb0a1fb0b665a13fa3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sarf_atlas-1.0.0-py3-none-any.whl.
File metadata
- Download URL: sarf_atlas-1.0.0-py3-none-any.whl
- Upload date:
- Size: 34.4 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 |
2202f3dc9155bd8650a606338be04665e3b07da964e4a1a3f01f1bf3d70a9eb4
|
|
| MD5 |
93acd107e40e791c64a38895f4bbebac
|
|
| BLAKE2b-256 |
c158abd114ca75bd1bbd6a66a1c010378caa88925e9f9c4ac26c8ce0f73513d7
|
Provenance
The following attestation bundles were made for sarf_atlas-1.0.0-py3-none-any.whl:
Publisher:
ci.yml on voidwest/sarf-atlas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sarf_atlas-1.0.0-py3-none-any.whl -
Subject digest:
2202f3dc9155bd8650a606338be04665e3b07da964e4a1a3f01f1bf3d70a9eb4 - Sigstore transparency entry: 1964327451
- Sigstore integration time:
-
Permalink:
voidwest/sarf-atlas@f4e6634fc2c4dfdd2de3feeb0a1fb0b665a13fa3 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/voidwest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@f4e6634fc2c4dfdd2de3feeb0a1fb0b665a13fa3 -
Trigger Event:
push
-
Statement type: