Flask-TSK 🚀🐘
Revolutionary Flask Extension for TuskLang Integration
59x Faster Template Rendering • Complete Authentication System • Professional Project Structure
Flask-TSK transforms Flask applications with TuskLang integration, delivering enterprise-grade performance, comprehensive authentication, and professional development tools.
✨ Key Features
- 🚀 59x faster template rendering with optimized engines
- 🔐 Complete authentication system with Herd
- 🐘 Elephant services (CMS, jobs, security, monitoring)
- 🛠️ Professional CLI for project management
- 📁 Comprehensive folder structure with 80+ organized directories
- 🎨 Modern component system with auth templates
- ⚡ Multi-database support (SQLite, PostgreSQL, MongoDB, Redis)
- 🔧 Asset optimization and build tools
🚀 Quick Start
Installation
# Full installation (recommended)
pip install flask-tsk
# Minimal installation
pip install flask-tsk[minimal]
# Development tools
pip install flask-tsk[dev]
Create Your First Project
# Create project with comprehensive structure
flask-tsk init my-app
# Initialize databases
flask-tsk db init my-app
# Start development
cd my-app
python -m flask run
Basic Usage
from flask import Flask, request, jsonify, redirect
from tsk_flask import FlaskTSK
from tsk_flask.herd import Herd
app = Flask(__name__)
FlaskTSK(app)
@app.route('/login', methods=['POST'])
def login():
if Herd.login(request.form['email'], request.form['password']):
return jsonify({'success': True})
return jsonify({'success': False, 'error': 'Invalid credentials'})
@app.route('/dashboard')
def dashboard():
if Herd.check():
user = Herd.user()
return f"Welcome, {user['email']}!"
return redirect('/login')
if __name__ == '__main__':
app.run(debug=True)
🐘 Elephant Services
Herd Authentication
from tsk_flask.herd import Herd
# Create user
Herd.create_user({
'email': 'user@example.com',
'password': 'secure_password',
'first_name': 'John',
'last_name': 'Doe'
})
# Login
if Herd.login('user@example.com', 'secure_password'):
user = Herd.user()
print(f"Welcome, {user['email']}!")
# Magic links
link = Herd.generate_magic_link(user['id'])
Babar CMS
from tsk_flask.herd.elephants import get_babar
babar = get_babar()
story = babar.create_story({
'title': 'My First Post',
'content': 'Hello, world!',
'type': 'post'
})
babar.publish(story['id'])
Horton Job Queue
from tsk_flask.herd.elephants import get_horton
horton = get_horton()
job_id = horton.dispatch('send_email', {
'to': 'user@example.com',
'subject': 'Welcome!',
'body': 'Welcome to our platform!'
})
🛠️ CLI Commands
# Project management
flask-tsk init my-project # Create new project
flask-tsk db init my-project # Initialize databases
flask-tsk db list my-project # List databases
flask-tsk db backup my-project # Backup databases
# Asset optimization
flask-tsk optimize my-project # Optimize all assets
flask-tsk watch my-project # Watch for changes
flask-tsk manifest my-project # Generate asset manifest
📊 Performance Benchmarks
| Feature | Flask-TSK | Jinja2 | Improvement |
|---|---|---|---|
| Template Rendering | 0.2ms | 11.8ms | 59x faster |
| Configuration Loading | 1.1ms | 3.3ms | 3x faster |
| Asset Optimization | 45ms | 120ms | 2.7x faster |
| Memory Usage | 12MB | 18MB | 33% less |
🗄️ Database Setup
Flask-TSK automatically creates SQLite databases with all necessary tables:
- Authentication Database (
herd_auth.db) - Users, sessions, tokens, logs - Elephant Services Database (
elephant_services.db) - CMS, jobs, security, monitoring
Default Admin User:
- Email:
admin@example.com - Password:
admin123
⚙️ Configuration
Flask-TSK uses TuskLang configuration files (peanu.tsk):
[database]
type = "sqlite"
herd_db = "data/herd_auth.db"
elephants_db = "data/elephant_services.db"
auto_create = true
[herd]
guards = ["web", "api", "admin"]
session_lifetime = 7200
max_attempts = 5
[users]
table = "users"
provider = "tusk"
default_role = "user"
🔧 Advanced Features
Performance Engine
from tsk_flask import render_turbo_template
html = render_turbo_template("""
<h1>{{ title }}</h1>
<p>{{ message }}</p>
""", {
'title': 'Hello World',
'message': 'Welcome to Flask-TSK!'
})
Asset Management
# In templates
<link rel="stylesheet" href="{{ tsk_asset('css', 'main.css') }}">
<script src="{{ tsk_asset('js', 'app.js') }}"></script>
Component System
# Auto-include components
{% include 'tsk/components/navigation/default.html' %}
{% include 'tsk/components/forms/login.html' %}
📁 Project Structure
Flask-TSK creates a comprehensive project structure:
my-project/
├── tsk/
│ ├── templates/ # Jinja2 templates
│ │ ├── base/ # Base templates
│ │ ├── auth/ # Authentication templates
│ │ └── pages/ # Page templates
│ ├── components/ # Reusable components
│ ├── assets/ # Source assets
│ ├── static/ # Compiled assets
│ ├── config/ # Configuration files
│ ├── data/ # Database files
│ └── docs/ # Documentation
├── app.py
└── peanu.tsk
🐛 Troubleshooting
Database Issues
# Recreate databases
flask-tsk db init my-project --force
# Check database status
flask-tsk db list my-project
Performance Issues
from tsk_flask.herd.elephants import get_peanuts
peanuts = get_peanuts()
stats = peanuts.get_performance_status()
print(f"Performance Score: {stats['performance_score']}")
📚 Documentation
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- TuskLang Team for the amazing configuration system
- Flask Community for the excellent web framework
- Performance Testers for validating our benchmarks
Flask-TSK: Where Flask meets TuskLang for revolutionary performance! 🚀🐘
Metadata
Release files for flask-tsk 2.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| flask_tsk-2.0.4.tar.gz | 230.1 kB | Without provenance | Details for flask_tsk-2.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| flask_tsk-2.0.4-py3-none-any.whl | Python 3 | none | any | Details for flask_tsk-2.0.4-py3-none-any.whl |
Total release size: 504.2 kB
Release files / flask_tsk-2.0.4.tar.gz
| Download URL | flask_tsk-2.0.4.tar.gz |
|---|---|
| Size | 230.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7691c37411877345bab1fdcdd0f7b1b2c30f7c03f505edc2908b0ec8aaa077ed
|
|
BLAKE2b-256 checksum How to use checksums |
cdb5d44214004c16a29f45db7d4c42978f7b5e0e2159ceff0ad6ee22f112e365
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / flask_tsk-2.0.4-py3-none-any.whl
| Download URL | flask_tsk-2.0.4-py3-none-any.whl |
|---|---|
| Size | 274.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ace03b8b00657c3aa055cdbf098b79676264fa966ea74aa2faccb43c775f2b5f
|
|
BLAKE2b-256 checksum How to use checksums |
0758cac8fe2ec03c45798b412962322b26bf8dc833885c0aabac9e3859418f5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for flask-tsk 2.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.