CLI for services template for Python (FastAPI, SQLAlchemy, Alembic)
Project description
Skeletone
A minimal, well-structured Python project skeleton for rapid development.
Built on top of FastAPI, SQLAlchemy, and Alembic with automated template management.
Features
- ๐ FastAPI foundation with modern Python practices
- ๐๏ธ SQLAlchemy ORM with Alembic migrations
- ๐ฆ Template Management with automated upgrades/downgrades
- ๐ Incremental Updates using patch-based system
- โก Quick Setup - get started in seconds
Installation
pip install skeletone
Quick Start
1. Initialize New Project
mkdir my-awesome-api && cd my-awesome-api
skeletone init
2. Check Available Versions
skeletone versions
3. Keep Your Project Updated
skeletone upgrade
4. Rollback if Needed
# Interactive version selection
skeletone downgrade
# Or specify version directly
skeletone downgrade -v v1.2.0
Commands
| Command | Description |
|---|---|
skeletone init |
Initialize new project from latest template |
skeletone upgrade |
Upgrade to latest template version |
skeletone downgrade |
Downgrade to previous template version |
skeletone versions |
List all available template versions |
skeletone help |
Show detailed help and examples |
How It Works
Skeletone uses a patch-based system for template management:
- Initialization: Downloads the latest template
- Upgrades: Applies incremental patches to update your project
- Downgrades: Uses reverse patches to safely rollback changes
- Version Tracking: Maintains version history in
skeletone.lock
Template Structure
The generated project includes:
your-project/
โโโ app/
โ โโโ models/ # SQLAlchemy models
โ โโโ routes/ # FastAPI routes
โ โโโ dependencies/ # Dependency injection
โโโ alembic/ # Database migrations
โโโ config.py # Configuration management
โโโ main.py # FastAPI application
โโโ requirements.txt # Dependencies
โโโ skeletone.lock # Version tracking
Examples
Complete Workflow
# Create and setup new project
mkdir blog-api && cd blog-api
skeletone init
# Start development...
# (build your amazing API)
# Update to latest template
skeletone upgrade
# Check what versions are available
skeletone versions
# Rollback if something breaks
skeletone downgrade -v v1.1.0
Version Management
# See all available versions
skeletone versions
# Current output example:
# Available Skeletone Versions
# โโโโโโโโโโโฌโโโโโโโโโโโโโโ
# โ Version โ Status โ
# โโโโโโโโโโโผโโโโโโโโโโโโโโค
# โ v1.3.0 โ โ
Current โ
# โ v1.2.0 โ โ
# โ v1.1.0 โ โ
# โโโโโโโโโโโดโโโโโโโโโโโโโโ
Best Practices
- Always commit your code before running upgrades/downgrades
- Review changes after template updates
- Test thoroughly after version changes
- Use version control to track your customizations
Template Source
The project template itself is hosted at:
https://github.com/yoursteacup/skeletone
Contributing
Contributions are welcome! Please see the main repository for guidelines.
Author
Developer: Zhaxybayev Daulet
Repository: https://github.com/yoursteacup/skeletone
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 skeletone-0.1.7.tar.gz.
File metadata
- Download URL: skeletone-0.1.7.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c6d73f9d0a2114fd011239e1e7888eca3fd1f97f6f74c5fd35d27df63c69095
|
|
| MD5 |
a7457aec358e1993d85af95ed8e041f5
|
|
| BLAKE2b-256 |
9eb3de9b983365ffc62326dff0e4bb767e3d2fe5cdccb93f4529d6a92f053a22
|
File details
Details for the file skeletone-0.1.7-py3-none-any.whl.
File metadata
- Download URL: skeletone-0.1.7-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53237c80d3d6395b3e9228d952f3605eeb7157a0e966d03cc9d77081f52ff2f0
|
|
| MD5 |
421e3a601828312f7a7c6c383789bcea
|
|
| BLAKE2b-256 |
47ee79c229507ca7efad8e5391ff586e0760a045b0c416fdf78cd44311d356b4
|