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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dagshell-0.2.1.tar.gz (138.5 kB view details)

Uploaded Source

Built Distribution

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

dagshell-0.2.1-py3-none-any.whl (58.9 kB view details)

Uploaded Python 3

File details

Details for the file dagshell-0.2.1.tar.gz.

File metadata

  • Download URL: dagshell-0.2.1.tar.gz
  • Upload date:
  • Size: 138.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dagshell-0.2.1.tar.gz
Algorithm Hash digest
SHA256 819a2c1db10109bf84028f1245dd72a781695ea24a2ec5a2c901817b96bc612d
MD5 46361b2e55884241b89481619ff86029
BLAKE2b-256 b3f16b4e9460ed83a73f3c212d94b39f066367fce34c7f2338c8660d9b25ad25

See more details on using hashes here.

File details

Details for the file dagshell-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dagshell-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 58.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dagshell-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 86f6b1dcd6b7fd78674b64bed6861b682e5369ee0fa8a2d0c14eb5af42420f61
MD5 1072b97493bfcb0a204ae9cd4f902b3a
BLAKE2b-256 ef9b949c595698788769b02acb3b02896589c4559f3010ef0ce1f19b9c23c585

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.2.0

2 files

Supported by

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