kalo-cli
v0.3.0
Published
Générateur de code structuré et uniforme pour Django et Wagtail
Downloads
16
Maintainers
Readme
Kalo CLI - Django/Wagtail Generator
This is a command-line interface tool for generating Django and Wagtail components using Plop.js.
Features
- Generate Django models, views, forms, APIs, and more
- Generate Wagtail pages, snippets, blocks, and other components
- Smart file appending to avoid duplicate classes
- Configuration loading from
kalo.config.json - Project root detection
- Searchable prompts for selecting existing apps
Utilities
The project includes several utility modules:
Analysis Utilities (src/utils/analysis.ts)
- Functions to analyze Python files and extract class definitions
- Used to prevent duplicate class generation
Code Manipulation Utilities (src/utils/code-manipulation.ts)
- Functions to inject markers in code for AI-assisted generation
- Apply generated code with imports, replacements, and code injection
Configuration Utilities (src/utils/config.ts)
- Load configuration from
kalo.config.jsonorkalo.config.js - Support for AI providers, temperature settings, and verbosity levels
File System Utilities (src/utils/filesystem.ts)
- Find project root directory
- Resolve application paths
- Get list of existing Django applications
- Get files and directories within an application
Naming Conventions (src/utils/naming-conventions.ts)
- Validation functions for model names, app names, and page names
- Field validation utilities
Plop Actions (src/utils/plop-actions.ts)
createAppendActions: Creates pairs of actions to ensure files exist and append content- Prevents duplicate class generation by checking existing classes
Search Utilities (src/utils/search.ts)
- Fuzzy searching for autocomplete prompts
- Filter choices based on user input
String Formatting (src/utils/index.ts)
- Format strings to slugs, snake_case, or PascalCase
Usage
bun run plop # List all available generators
bun run plop model # Generate a new Django model
bun run plop view # Generate a new Django view
bun run plop wagtail-page # Generate a new Wagtail pageGenerators
The project includes generators for:
- Django apps
- Django models
- Django views
- Django forms
- Django APIs
- Django QuerySets
- Wagtail pages
- Wagtail snippets
- Wagtail blocks
- Wagtail streamfields
- Wagtail forms
- Wagtail tags
- Wagtail groups
- Wagtail hooks
- Wagtail locales
- Wagtail admin
- Wagtail commands
- Wagtail templates
- Wagtail API v2
Configuration
Create a kalo.config.json file in your project root:
{
"aiProvider": "openai",
"temperature": 0.7,
"verbosity": "standard",
"appDir": "src"
}Integration Notes
- The
createAppendActionsutility is now used in ALL generators (model, view, api, form, queryset, wagtail-admin, wagtail-api-v2, wagtail-block, wagtail-command, wagtail-form, wagtail-hook, wagtail-page, wagtail-snippet, wagtail-streamfield, wagtail-tag, wagtail-template) to append to existing files instead of overwriting them - The
plopfile.tsnow loads configuration and sets up project root detection - Multiple generators now use searchable prompts for app selection (api, form, queryset, wagtail-admin, wagtail-api-v2, wagtail-block, wagtail-command, wagtail-form, wagtail-hook, wagtail-snippet, wagtail-streamfield, wagtail-tag, wagtail-template)
- File system utilities are used throughout for path resolution and app detection
