Metadata-Version: 2.4
Name: storytelling
Version: 0.2.5
Summary: AI-powered narrative generation system implementing Software 3.0 methodology - The Soul of Your Story's Blueprint
Author-email: JGWill <jgwill@example.com>
Maintainer: JGWill
License: MIT
Project-URL: Homepage, https://github.com/jgwill/storytelling
Project-URL: Repository, https://github.com/jgwill/storytelling
Project-URL: Documentation, https://github.com/jgwill/storytelling/blob/main/README.md
Project-URL: Issues, https://github.com/jgwill/storytelling/issues
Keywords: narrative-generation,ai-writing,software-3.0,creative-writing,story-generation,langchain,langgraph,rag,llm,ollama,interactive-storytelling,worldbuilding
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3
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 :: Text Processing
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Games/Entertainment
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.0
Requires-Dist: langchain>=0.1.0
Requires-Dist: langgraph>=0.0.40
Requires-Dist: langchain-community>=0.0.20
Requires-Dist: langchain-openai>=0.0.8
Requires-Dist: langchain-ollama>=0.0.1
Requires-Dist: faiss-cpu>=1.7.4
Requires-Dist: termcolor>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: requests>=2.31.0
Provides-Extra: local-ml
Requires-Dist: sentence-transformers>=2.2.2; extra == "local-ml"
Requires-Dist: langchain-huggingface>=0.0.1; extra == "local-ml"
Provides-Extra: google
Requires-Dist: langchain-google-genai>=0.0.6; extra == "google"
Provides-Extra: cloud
Requires-Dist: langfuse>=2.0.0; extra == "cloud"
Requires-Dist: openai>=1.0.0; extra == "cloud"
Provides-Extra: enhanced
Requires-Dist: storytelling[cloud]; extra == "enhanced"
Requires-Dist: beautifulsoup4>=4.12.0; extra == "enhanced"
Requires-Dist: html2text>=2020.1.16; extra == "enhanced"
Requires-Dist: requests>=2.31.0; extra == "enhanced"
Provides-Extra: web
Requires-Dist: requests>=2.31.0; extra == "web"
Requires-Dist: beautifulsoup4>=4.12.0; extra == "web"
Requires-Dist: html2text>=2020.1.16; extra == "web"
Provides-Extra: mcp
Requires-Dist: requests>=2.31.0; extra == "mcp"
Provides-Extra: iaip
Requires-Dist: pyyaml>=6.0.0; extra == "iaip"
Requires-Dist: storytelling[enhanced,mcp]; extra == "iaip"
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=6.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "docs"
Requires-Dist: myst-parser>=1.0.0; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest>=7.0; extra == "test"
Requires-Dist: pytest-cov>=4.0; extra == "test"
Requires-Dist: pytest-mock>=3.0; extra == "test"
Provides-Extra: all
Requires-Dist: storytelling[cloud,enhanced,google,iaip,local-ml,mcp,web]; extra == "all"
Provides-Extra: complete
Requires-Dist: storytelling[all]; extra == "complete"
Dynamic: license-file

# Storytelling

A Python package for storytelling applications.

## Features

- Create and manage story objects
- Add content and metadata to stories
- Command-line interface for story management
- Professional package structure with development tools

## Installation

### From Source

```bash
git clone https://github.com/jgwill/storytelling.git
cd storytelling
pip install -e .
```

### For Development

```bash
git clone https://github.com/jgwill/storytelling.git
cd storytelling
./scripts/init.sh
```

This will set up a virtual environment and install all development dependencies.

## Usage

### Python API

```python
from storytelling import Story

# Create a new story
story = Story("My Adventure", "Once upon a time...")

# Add more content
story.add_content("The hero embarked on a journey.")

# Add metadata
story.set_metadata("author", "Your Name")
story.set_metadata("genre", "Adventure")

# Access story information
print(story.title)  # "My Adventure"
print(story.content)  # Full story content
print(story.get_metadata("author"))  # "Your Name"
```

### Command Line Interface

```bash
# Create a new story
storytelling create "My Story Title" --content "Story content here" --author "Author Name"

# Show help
storytelling --help
```

## Development

This project uses modern Python packaging and development practices.

### Quick Start

```bash
# Initialize development environment
./scripts/init.sh

# Run tests
make test

# Check code quality
make lint

# Format code
make format

# Build package
make build

# See all available commands
make help
```

### Development Commands

The project includes a comprehensive Makefile with the following commands:

- `make init` - Initialize development environment
- `make test` - Run tests
- `make test-cov` - Run tests with coverage
- `make lint` - Run linting checks
- `make format` - Format code
- `make build` - Build package
- `make clean` - Clean build artifacts
- `make release-check` - Run all pre-release checks
- `make docs` - Build documentation

### Project Structure

```
storytelling/
├── storytelling/           # Main package
│   ├── __init__.py        # Package initialization
│   ├── core.py            # Core functionality
│   └── cli.py             # Command line interface
├── tests/                 # Test files
├── scripts/               # Development scripts
│   ├── init.sh           # Environment initialization
│   └── release.sh        # Release automation
├── docs/                  # Documentation
├── pyproject.toml         # Package configuration
├── Makefile              # Development commands
└── README.md             # This file
```

### Code Quality

The project uses several tools to maintain code quality:

- **Black** - Code formatting
- **Ruff** - Linting and import sorting
- **MyPy** - Type checking
- **Pytest** - Testing framework
- **Pre-commit** - Git hooks for code quality

### Release Process

To create a new release:

```bash
# Run release script
./scripts/release.sh release patch  # or minor, major
./scripts/release.sh release 1.2.3  # specific version

# Or use make commands
make release-check  # Run all checks
make release-test   # Upload to test PyPI
make release        # Upload to production PyPI
```

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting: `make test lint`
5. Submit a pull request

## License

This project is licensed under the CC0-1.0 License - see the [LICENSE](LICENSE) file for details.

## Requirements

- Python 3.8+
- See `pyproject.toml` for detailed dependencies
