Project Structure¶
File organization in Wiverno.
Directory Tree¶
Wiverno/
├── .github/ # GitHub Actions workflows
├── docs/ # Documentation
│ ├── api/ # API reference
│ ├── dev/ # Developer docs
│ └── guide/ # User guides
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── benchmark/ # Performance tests
├── wiverno/ # Main package
│ ├── core/ # Core functionality
│ ├── dev/ # Development tools
│ ├── static/ # Static assets
│ ├── templating/ # Template engine
│ ├── views/ # View classes
│ └── __init__.py
├── .gitignore
├── .pre-commit-config.yaml
├── Makefile
├── LICENSE
├── README.md
├── mkdocs.yml # Documentation config
└── pyproject.toml # Project config
Modules¶
wiverno/core/¶
Core framework functionality:
| File | Purpose |
|---|---|
requests.py |
Request parsing and handling |
routing/router.py |
Route matching and registration |
server.py |
WSGI server wrapper |
wiverno/templating/¶
Template rendering:
| File | Purpose |
|---|---|
templator.py |
Jinja2 template wrapper |
wiverno/views/¶
View classes and error handlers:
| File | Purpose |
|---|---|
base_views.py |
BaseView class-based views |
pages_errors.py |
Default 404/405/500 handlers |
wiverno/dev/¶
Development utilities:
| File | Purpose |
|---|---|
dev_server.py |
Dev server with hot reload |
Root Level¶
| File | Purpose |
|---|---|
main.py |
Wiverno WSGI application |
cli.py |
CLI interface (Typer-based) |
tests/¶
Test organization:
unit/- Fast isolated testsintegration/- Multi-component testsbenchmark/- Performance testsconftest.py- Shared test fixtures
Key Files¶
| File | Purpose |
|---|---|
pyproject.toml |
Dependencies, config, tools |
mkdocs.yml |
Documentation configuration |
.pre-commit-config.yaml |
Pre-commit hooks |
Makefile |
Development commands |
README.md |
Project overview |
Next Steps¶
- Architecture - Component details
- Testing - Writing tests
- Workflow - Development process
- Contributing - How to contribute