Skip to main content

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)

Source distribution for dagshell 0.2.1
File Size Uploaded
dagshell-0.2.1.tar.gz 138.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dagshell 0.2.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page