oaknut 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: oaknut
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Oaknut family meta-distribution — tools for Acorn computer filesystems, files, and formats.
|
|
5
|
+
Author-email: Robert Smallshire <robert@smallshire.org.uk>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/rob-smallshire/oaknut
|
|
8
|
+
Project-URL: Repository, https://github.com/rob-smallshire/oaknut
|
|
9
|
+
Project-URL: Issues, https://github.com/rob-smallshire/oaknut/issues
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
Requires-Dist: oaknut-file>=1.0
|
|
23
|
+
Requires-Dist: oaknut-dfs>=4.0
|
|
24
|
+
Requires-Dist: oaknut-zip>=2.0
|
|
25
|
+
|
|
26
|
+
# oaknut
|
|
27
|
+
|
|
28
|
+
Python tools for Acorn computer filesystems, files, and formats — the BBC Micro, Electron, Archimedes, and their descendants.
|
|
29
|
+
|
|
30
|
+
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:
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from oaknut.file import AcornMeta, MetaFormat
|
|
34
|
+
from oaknut.dfs import DFS, DFSPath
|
|
35
|
+
from oaknut.zip import extract_archive
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Packages
|
|
39
|
+
|
|
40
|
+
| PyPI distribution | Import path | Scope |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| [`oaknut-file`](packages/oaknut-file/) | `oaknut.file` | Acorn file metadata — INF sidecars (traditional + PiEconetBridge), filename encoding, xattr namespaces, access flags, host bridge |
|
|
43
|
+
| [`oaknut-dfs`](packages/oaknut-dfs/) | `oaknut.dfs` | Acorn DFS / Watford DDFS disc images (SSD, DSD), and ADFS disc images (pending extraction into a dedicated `oaknut-adfs` package) |
|
|
44
|
+
| [`oaknut-zip`](packages/oaknut-zip/) | `oaknut.zip` | ZIP archives containing Acorn files — SparkFS extras, INF resolution, RISC OS filetype decoding |
|
|
45
|
+
|
|
46
|
+
Planned additional packages (see `docs/monorepo.md`):
|
|
47
|
+
|
|
48
|
+
- `oaknut-fs` — universal filesystem abstractions (catalogue ABC, Acorn codec, boot options)
|
|
49
|
+
- `oaknut-image` — disc-image abstractions (sector access, geometry, free-space maps)
|
|
50
|
+
- `oaknut-adfs` — ADFS (extracted from the current `oaknut-dfs`)
|
|
51
|
+
- `oaknut-basic` — BBC BASIC tokeniser / detokeniser
|
|
52
|
+
- `oaknut-disc` — the `disc` CLI binary
|
|
53
|
+
|
|
54
|
+
## Quick start
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
git clone https://github.com/rob-smallshire/oaknut.git
|
|
58
|
+
cd oaknut
|
|
59
|
+
uv sync
|
|
60
|
+
uv run pytest
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The workspace uses [uv](https://github.com/astral-sh/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.
|
|
64
|
+
|
|
65
|
+
## Installing from PyPI
|
|
66
|
+
|
|
67
|
+
Each library package is independently installable:
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
pip install oaknut-file
|
|
71
|
+
pip install oaknut-dfs
|
|
72
|
+
pip install oaknut-zip
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Or install the whole family via the meta-distribution:
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
pip install oaknut
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Documentation
|
|
82
|
+
|
|
83
|
+
- [`docs/monorepo.md`](docs/monorepo.md) — monorepo design, architectural target, package layering
|
|
84
|
+
- [`docs/cli-design.md`](docs/cli-design.md) — design of the forthcoming `disc` CLI
|
|
85
|
+
|
|
86
|
+
## Licence
|
|
87
|
+
|
|
88
|
+
MIT. See each package's `LICENSE` file.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
oaknut-0.1.0.dist-info/METADATA,sha256=4GS-FK3aR28KXQwzZzvYsNAIJ70IWPHEj6-2eOYmcI8,3524
|
|
2
|
+
oaknut-0.1.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
3
|
+
oaknut-0.1.0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
4
|
+
oaknut-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|