AI-powered narrative generation system implementing Software 3.0 methodology - The Soul of Your Story's Blueprint
Project description
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
git clone https://github.com/jgwill/storytelling.git
cd storytelling
pip install -e .
For Development
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
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
# 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
# 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 environmentmake test- Run testsmake test-cov- Run tests with coveragemake lint- Run linting checksmake format- Format codemake build- Build packagemake clean- Clean build artifactsmake release-check- Run all pre-release checksmake 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:
# 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
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting:
make test lint - Submit a pull request
License
This project is licensed under the CC0-1.0 License - see the LICENSE file for details.
Requirements
- Python 3.8+
- See
pyproject.tomlfor detailed dependencies
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file storytelling-0.2.6.tar.gz.
File metadata
- Download URL: storytelling-0.2.6.tar.gz
- Upload date:
- Size: 54.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f4cceaeb00bb541d02b108f87750866dd9aa17d19391cd396297208ee8912fd
|
|
| MD5 |
5a72e4f3560d7aca84387a41925822ea
|
|
| BLAKE2b-256 |
37d19aa8ccbebc4b2aa5fffc754489e5cbbd7c4915f22a4aca4d0730f605d61d
|
File details
Details for the file storytelling-0.2.6-py3-none-any.whl.
File metadata
- Download URL: storytelling-0.2.6-py3-none-any.whl
- Upload date:
- Size: 56.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a12a1c150816543de954293d9caa8400e1c3b8c1d7ea080846e2788061a1048e
|
|
| MD5 |
942daed0faf81bb1285e39e8b73c4efe
|
|
| BLAKE2b-256 |
690db43976ddac83cb230ceec49f3bbfcc193385daf5698a6c4cb4c3b8cb73be
|