# 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
Raw data
{
"_id": null,
"home_page": null,
"name": "storytelling",
"maintainer": "JGWill",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "narrative-generation, ai-writing, software-3.0, creative-writing, story-generation, langchain, langgraph, rag, llm, ollama, interactive-storytelling, worldbuilding",
"author": null,
"author_email": "JGWill <jgwill@example.com>",
"download_url": "https://files.pythonhosted.org/packages/0f/19/0fa413c3e605fca65ead989d446e6a444a440411fa15623eae8fa99ab00c/storytelling-0.2.0.tar.gz",
"platform": null,
"description": "# Storytelling\n\nA Python package for storytelling applications.\n\n## Features\n\n- Create and manage story objects\n- Add content and metadata to stories\n- Command-line interface for story management\n- Professional package structure with development tools\n\n## Installation\n\n### From Source\n\n```bash\ngit clone https://github.com/jgwill/storytelling.git\ncd storytelling\npip install -e .\n```\n\n### For Development\n\n```bash\ngit clone https://github.com/jgwill/storytelling.git\ncd storytelling\n./scripts/init.sh\n```\n\nThis will set up a virtual environment and install all development dependencies.\n\n## Usage\n\n### Python API\n\n```python\nfrom storytelling import Story\n\n# Create a new story\nstory = Story(\"My Adventure\", \"Once upon a time...\")\n\n# Add more content\nstory.add_content(\"The hero embarked on a journey.\")\n\n# Add metadata\nstory.set_metadata(\"author\", \"Your Name\")\nstory.set_metadata(\"genre\", \"Adventure\")\n\n# Access story information\nprint(story.title) # \"My Adventure\"\nprint(story.content) # Full story content\nprint(story.get_metadata(\"author\")) # \"Your Name\"\n```\n\n### Command Line Interface\n\n```bash\n# Create a new story\nstorytelling create \"My Story Title\" --content \"Story content here\" --author \"Author Name\"\n\n# Show help\nstorytelling --help\n```\n\n## Development\n\nThis project uses modern Python packaging and development practices.\n\n### Quick Start\n\n```bash\n# Initialize development environment\n./scripts/init.sh\n\n# Run tests\nmake test\n\n# Check code quality\nmake lint\n\n# Format code\nmake format\n\n# Build package\nmake build\n\n# See all available commands\nmake help\n```\n\n### Development Commands\n\nThe project includes a comprehensive Makefile with the following commands:\n\n- `make init` - Initialize development environment\n- `make test` - Run tests\n- `make test-cov` - Run tests with coverage\n- `make lint` - Run linting checks\n- `make format` - Format code\n- `make build` - Build package\n- `make clean` - Clean build artifacts\n- `make release-check` - Run all pre-release checks\n- `make docs` - Build documentation\n\n### Project Structure\n\n```\nstorytelling/\n\u251c\u2500\u2500 storytelling/ # Main package\n\u2502 \u251c\u2500\u2500 __init__.py # Package initialization\n\u2502 \u251c\u2500\u2500 core.py # Core functionality\n\u2502 \u2514\u2500\u2500 cli.py # Command line interface\n\u251c\u2500\u2500 tests/ # Test files\n\u251c\u2500\u2500 scripts/ # Development scripts\n\u2502 \u251c\u2500\u2500 init.sh # Environment initialization\n\u2502 \u2514\u2500\u2500 release.sh # Release automation\n\u251c\u2500\u2500 docs/ # Documentation\n\u251c\u2500\u2500 pyproject.toml # Package configuration\n\u251c\u2500\u2500 Makefile # Development commands\n\u2514\u2500\u2500 README.md # This file\n```\n\n### Code Quality\n\nThe project uses several tools to maintain code quality:\n\n- **Black** - Code formatting\n- **Ruff** - Linting and import sorting\n- **MyPy** - Type checking\n- **Pytest** - Testing framework\n- **Pre-commit** - Git hooks for code quality\n\n### Release Process\n\nTo create a new release:\n\n```bash\n# Run release script\n./scripts/release.sh release patch # or minor, major\n./scripts/release.sh release 1.2.3 # specific version\n\n# Or use make commands\nmake release-check # Run all checks\nmake release-test # Upload to test PyPI\nmake release # Upload to production PyPI\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run tests and linting: `make test lint`\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the CC0-1.0 License - see the [LICENSE](LICENSE) file for details.\n\n## Requirements\n\n- Python 3.8+\n- See `pyproject.toml` for detailed dependencies\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "AI-powered narrative generation system implementing Software 3.0 methodology - The Soul of Your Story's Blueprint",
"version": "0.2.0",
"project_urls": {
"Documentation": "https://github.com/jgwill/storytelling/blob/main/README.md",
"Homepage": "https://github.com/jgwill/storytelling",
"Issues": "https://github.com/jgwill/storytelling/issues",
"Repository": "https://github.com/jgwill/storytelling"
},
"split_keywords": [
"narrative-generation",
" ai-writing",
" software-3.0",
" creative-writing",
" story-generation",
" langchain",
" langgraph",
" rag",
" llm",
" ollama",
" interactive-storytelling",
" worldbuilding"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a8f09cafb371b3947a0af3d8a1b3dee6c82afae07de0376e76f4a57ec52206aa",
"md5": "f40abcfa79fe5fd57863a17f05142a1b",
"sha256": "96446880cb6cc1a6e32aab5eba4ed4a0e86f896e832dc04aab1e246177484065"
},
"downloads": -1,
"filename": "storytelling-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f40abcfa79fe5fd57863a17f05142a1b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 24173,
"upload_time": "2025-10-14T19:26:47",
"upload_time_iso_8601": "2025-10-14T19:26:47.579753Z",
"url": "https://files.pythonhosted.org/packages/a8/f0/9cafb371b3947a0af3d8a1b3dee6c82afae07de0376e76f4a57ec52206aa/storytelling-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0f190fa413c3e605fca65ead989d446e6a444a440411fa15623eae8fa99ab00c",
"md5": "2bea05d31a8e785cbe44bb6cb4d3103d",
"sha256": "572ec7245904854dd7d2b0f0fedc2f975132b425f313970f859cad8732a7275f"
},
"downloads": -1,
"filename": "storytelling-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "2bea05d31a8e785cbe44bb6cb4d3103d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 25055,
"upload_time": "2025-10-14T19:26:48",
"upload_time_iso_8601": "2025-10-14T19:26:48.708316Z",
"url": "https://files.pythonhosted.org/packages/0f/19/0fa413c3e605fca65ead989d446e6a444a440411fa15623eae8fa99ab00c/storytelling-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-14 19:26:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jgwill",
"github_project": "storytelling",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "storytelling"
}