Skip to main content

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 current oaknut-dfs)
  • oaknut-basic — BBC BASIC tokeniser / detokeniser
  • oaknut-disc — the disc CLI 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

Licence

MIT. See each package's LICENSE file.

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

oaknut-0.1.0.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oaknut-0.1.0-py3-none-any.whl (2.4 kB view details)

Uploaded Python 3

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

Hashes for oaknut-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ee2ea83896384698e475e715d8082d3ee8c0b5ebf86f6429f606b200f6d18c84
MD5 140f233f8ff3219907b7873811cd8174
BLAKE2b-256 c1f8df57457e832ffe74fde0903e59242eca578f746183750269e659231e8bb8

See more details on using hashes here.

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

Hashes for oaknut-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a92d97680c89551ee9cd09d4d73823e8a77d5e7caba17a29f31907b7e89d9c40
MD5 96b3501eb515cd048c0fa92bcd73f10e
BLAKE2b-256 b18840ed3353eb7389d3f2b7d4576ef8abd9916b7186d0dfee46223c57217a74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page