DagShell
A virtual POSIX-compliant filesystem implementation with content-addressable DAG structure.
Quick Start
# Install the package
pip install -e .
# Start the terminal emulator
python -m dagshell.terminal
# Or use the Python API directly
python
>>> from dagshell.dagshell_fluent import DagShell
>>> shell = DagShell()
>>> shell.mkdir("/project").cd("/project")
>>> shell.echo("Hello, DagShell!").out("README.md")
>>> shell.save("my_project.json")
Features
- Content-Addressable Filesystem: SHA256-based deduplication
- Virtual POSIX Environment: Complete filesystem in JSON
- Multiple Interfaces: Python API, Scheme DSL, Terminal emulator
- Persistence: Save/load filesystem state as JSON
- Virtual Devices: /dev/null, /dev/random, /dev/zero
- Directory Navigation: cd, pushd, popd, dirs
- Import/Export: Transfer files between real and virtual filesystems
- Command History: Track and recall previous commands
- Comprehensive Testing: 583 tests with 77% code coverage
Development
# Run tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=dagshell --cov-report=term
License
MIT
Metadata
Release files for dagshell 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dagshell-0.2.1.tar.gz | 138.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dagshell-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 197.4 kB
Release files / dagshell-0.2.1.tar.gz
| Download URL | dagshell-0.2.1.tar.gz |
|---|---|
| Size | 138.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
819a2c1db10109bf84028f1245dd72a781695ea24a2ec5a2c901817b96bc612d
|
|
BLAKE2b-256 checksum How to use checksums |
b3f16b4e9460ed83a73f3c212d94b39f066367fce34c7f2338c8660d9b25ad25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / dagshell-0.2.1-py3-none-any.whl
| Download URL | dagshell-0.2.1-py3-none-any.whl |
|---|---|
| Size | 58.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86f6b1dcd6b7fd78674b64bed6861b682e5369ee0fa8a2d0c14eb5af42420f61
|
|
BLAKE2b-256 checksum How to use checksums |
ef9b949c595698788769b02acb3b02896589c4559f3010ef0ce1f19b9c23c585
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|