Oaknut family meta-distribution — tools for Acorn computer filesystems, files, and formats.
Project description
oaknut
Python tools for Acorn computer filesystems, files, and formats — the BBC Micro, Electron, Archimedes, and their descendants.
This repository is a uv workspace monorepo containing the oaknut-* family of packages. Each package is independently published to PyPI, but they all contribute to a shared oaknut. Python namespace so that imports read naturally:
from oaknut.file import AcornMeta, MetaFormat
from oaknut.dfs import DFS, DFSPath
from oaknut.zip import extract_archive
Packages
| PyPI distribution | Import path | Scope |
|---|---|---|
oaknut-file |
oaknut.file |
Acorn file metadata — INF sidecars (traditional + PiEconetBridge), filename encoding, xattr namespaces, access flags, host bridge |
oaknut-dfs |
oaknut.dfs |
Acorn DFS / Watford DDFS disc images (SSD, DSD), and ADFS disc images (pending extraction into a dedicated oaknut-adfs package) |
oaknut-zip |
oaknut.zip |
ZIP archives containing Acorn files — SparkFS extras, INF resolution, RISC OS filetype decoding |
Planned additional packages (see docs/monorepo.md):
oaknut-fs— universal filesystem abstractions (catalogue ABC, Acorn codec, boot options)oaknut-image— disc-image abstractions (sector access, geometry, free-space maps)oaknut-adfs— ADFS (extracted from the currentoaknut-dfs)oaknut-basic— BBC BASIC tokeniser / detokeniseroaknut-disc— thediscCLI binary
Quick start
git clone https://github.com/rob-smallshire/oaknut.git
cd oaknut
uv sync
uv run pytest
The workspace uses uv for dependency management. Sibling packages are wired together as path dependencies during development via [tool.uv.sources] in the workspace-root pyproject.toml, so any change in one package is immediately visible to the others without a publish round-trip.
Installing from PyPI
Each library package is independently installable:
pip install oaknut-file
pip install oaknut-dfs
pip install oaknut-zip
Or install the whole family via the meta-distribution:
pip install oaknut
Documentation
docs/monorepo.md— monorepo design, architectural target, package layeringdocs/cli-design.md— design of the forthcomingdiscCLI
Licence
MIT. See each package's LICENSE file.
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 oaknut-0.1.0.tar.gz.
File metadata
- Download URL: oaknut-0.1.0.tar.gz
- Upload date:
- Size: 3.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee2ea83896384698e475e715d8082d3ee8c0b5ebf86f6429f606b200f6d18c84
|
|
| MD5 |
140f233f8ff3219907b7873811cd8174
|
|
| BLAKE2b-256 |
c1f8df57457e832ffe74fde0903e59242eca578f746183750269e659231e8bb8
|
File details
Details for the file oaknut-0.1.0-py3-none-any.whl.
File metadata
- Download URL: oaknut-0.1.0-py3-none-any.whl
- Upload date:
- Size: 2.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a92d97680c89551ee9cd09d4d73823e8a77d5e7caba17a29f31907b7e89d9c40
|
|
| MD5 |
96b3501eb515cd048c0fa92bcd73f10e
|
|
| BLAKE2b-256 |
b18840ed3353eb7389d3f2b7d4576ef8abd9916b7186d0dfee46223c57217a74
|