Metadata-Version: 2.4
Name: dagshell
Version: 0.2.1
Summary: A virtual POSIX filesystem with content-addressable DAG structure
Author-email: Alex Towell <lex@metafunctor.com>
Maintainer-email: Alex Towell <lex@metafunctor.com>
License: MIT
Project-URL: Homepage, https://github.com/queelius/dagshell
Project-URL: Repository, https://github.com/queelius/dagshell
Project-URL: Documentation, https://queelius.github.io/dagshell/
Project-URL: Bug Tracker, https://github.com/queelius/dagshell/issues
Keywords: filesystem,dag,content-addressable,virtual-filesystem,posix,scheme,interpreter,shell
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Filesystems
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyreadline3; sys_platform == "win32"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: black>=22.0; extra == "dev"
Requires-Dist: flake8>=5.0; extra == "dev"
Requires-Dist: mypy>=0.990; extra == "dev"
Requires-Dist: isort>=5.10; extra == "dev"
Dynamic: license-file

# DagShell

A virtual POSIX-compliant filesystem implementation with content-addressable DAG structure.

## Quick Start

```bash
# 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

```bash
# Run tests
python -m pytest tests/ -v

# Run with coverage
python -m pytest tests/ --cov=dagshell --cov-report=term
```

## License

MIT
