Documentation

Django Revolution

v1.0.13

CLI Reference - Django Revolution

Django Management Commands

Generate Clients

# Interactive generation (default)
python manage.py revolution
# Generate specific zones
python manage.py revolution --zones public admin
# TypeScript only
python manage.py revolution --typescript
# Python only
python manage.py revolution --python
# Without archiving
python manage.py revolution --no-archive
### Monorepo options
python manage.py revolution --no-monorepo
# Utility commands
python manage.py revolution --status
python manage.py revolution --list-zones
python manage.py revolution --validate
python manage.py revolution --clean
# New validation commands
python manage.py revolution --validate-zones
python manage.py revolution --show-urls
python manage.py revolution --test-schemas
# Multi-monorepo commands
python manage.py revolution --list-monorepos
python manage.py revolution --validate-monorepos

Multithreading Options

# Use custom number of worker threads
python manage.py revolution --generate --max-workers 10
# Disable multithreading (sequential processing)
python manage.py revolution --generate --no-multithreading
# Interactive mode with multithreading options
python manage.py revolution --interactive

Validation & Testing Commands

# Validate all zones with detailed logging
python manage.py revolution --validate-zones
# Show URL patterns for each zone
python manage.py revolution --show-urls
# Test schema generation for each zone
python manage.py revolution --test-schemas
# Validate environment and configuration
python manage.py revolution --validate
# List all available zones
python manage.py revolution --list-zones

Status & Information

# Show current status and configuration
python manage.py revolution --status
# Show program version
python manage.py revolution --version
# Enable debug logging
python manage.py revolution --debug
# Set verbosity level (0-3)
python manage.py revolution --verbosity 2

Utility Commands

# Clean output directories
python manage.py revolution --clean
# Install required dependencies
python manage.py revolution --install-deps
# Override output directory
python manage.py revolution --output-dir /custom/path
# Skip system checks
python manage.py revolution --skip-checks

Standalone CLI

Interactive Mode

# Launch interactive CLI
django-revolution
# Or run directly
python -m django_revolution.cli

The interactive CLI provides:

  • ๐ŸŽฏ Zone selection - Checkbox-based zone selection
  • ๐Ÿ”ง Client type selection - TypeScript/Python options
  • ๐Ÿ“ฆ Archive options - Archive creation settings
  • ๐Ÿ“Š Progress tracking - Real-time generation progress
  • โœ… Results summary - Beautiful results table

Command Line Mode

# Generate all clients
django-revolution --generate
# Generate specific zones
django-revolution --zones public admin
# TypeScript only
django-revolution --typescript
# With custom output directory
django-revolution --output-dir /custom/path

Development Scripts

Interactive Development CLI

# Main development interface
python scripts/dev_cli.py
# Or install and use as package command
pip install -e .
dev-cli

Individual Scripts

# Version management
python scripts/version_manager.py get
python scripts/version_manager.py bump --bump-type patch
# Generate requirements files
python scripts/generate_requirements.py
# Interactive publishing
python scripts/publisher.py
# Test generation
./scripts/test_generation.sh

Package Commands (after installation)

# Version management
version-manager get
version-manager bump --bump-type minor
# Publishing
publisher
# Requirements generation
generate-requirements

Command Reference

Django Management Command Options

OptionDescriptionDefault
--generate, -gGenerate API clientsFalse
--zones [ZONES ...], -z [ZONES ...]Specific zones to generateAll zones
--typescript, -tGenerate TypeScript clients onlyFalse
--python, -pGenerate Python clients onlyFalse
--no-typescriptSkip TypeScript client generationFalse
--no-pythonSkip Python client generationFalse
--no-archiveSkip archiving generated clientsFalse
--no-monorepoSkip monorepo syncFalse
--cleanClean output directories before generationFalse
--no-multithreadingDisable multithreaded generationFalse
--max-workers MAX_WORKERSMaximum number of worker threads20
--statusShow current status and configurationFalse
--list-zonesList all available zonesFalse
--validateValidate environment and configurationFalse
--show-urlsShow URL patterns for each zoneFalse
--validate-zonesValidate each zone with detailed loggingFalse
--test-schemasTest schema generation for each zoneFalse
--install-depsInstall required dependenciesFalse
--output-dir OUTPUT_DIROverride output directoryAuto-detected
--debugEnable debug loggingFalse
--interactive, -iRun in interactive modeFalse
--versionShow program's version number and exitFalse
-v {0,1,2,3}, --verbosity {0,1,2,3}Verbosity level1
--settings SETTINGSDjango settings moduleAuto-detected
--pythonpath PYTHONPATHPython pathAuto-detected
--tracebackDisplay full stack trace on errorsFalse
--no-colorDon't colorize outputFalse
--force-colorForce colorization of outputFalse
--skip-checksSkip system checksFalse

Standalone CLI Options

OptionDescriptionDefault
--generateGenerate API clientsFalse
--zones [ZONES ...]Specific zones to generateAll zones
--typescriptGenerate TypeScript clients onlyFalse
--pythonGenerate Python clients onlyFalse
--output-dir OUTPUT_DIROverride output directoryAuto-detected
--interactiveRun in interactive modeTrue
--debugEnable debug loggingFalse
--versionShow version and exitFalse

Examples

Basic Generation

# Generate all clients interactively
python manage.py revolution
# Generate specific zones
python manage.py revolution --zones public admin
# TypeScript only with custom workers
python manage.py revolution --typescript --max-workers 8

Validation & Testing

# Validate all zones
python manage.py revolution --validate-zones
# Test schema generation
python manage.py revolution --test-schemas
# Show URL patterns
python manage.py revolution --show-urls

Performance Optimization

# Use 16 worker threads for faster generation
python manage.py revolution --generate --max-workers 16
# Disable multithreading for debugging
python manage.py revolution --generate --no-multithreading
# Clean and regenerate
python manage.py revolution --clean --generate

Development Workflow

# Interactive development
python scripts/dev_cli.py
# Version bump
python scripts/version_manager.py bump --bump-type minor
# Generate requirements
python scripts/generate_requirements.py
# Publish to PyPI
python scripts/publisher.py

Troubleshooting

Common Issues

Command not found:

# Install in development mode
pip install -e .
# Or use Python module directly
python -m django_revolution.cli

Django settings not found:

# Set Django settings module
export DJANGO_SETTINGS_MODULE=myproject.settings
# Or use --settings option
python manage.py revolution --settings myproject.settings

Permission errors:

# Check file permissions
ls -la openapi/
# Fix permissions if needed
chmod -R 755 openapi/

Debug Mode

# Enable debug logging
python manage.py revolution --debug
# Set verbosity to maximum
python manage.py revolution --verbosity 3
# Show full stack traces
python manage.py revolution --traceback

Performance Tips

Multithreading Optimization

  • Default workers: 20 (good for most systems)
  • High-end systems: 32-64 workers
  • Low-end systems: 4-8 workers
  • Single zone: Automatically uses sequential processing

Memory Usage

  • Large projects: Monitor memory usage with high worker counts
  • Batch processing: Use --clean between generations
  • Archive management: Regular cleanup of old archives

Network Optimization

  • Monorepo sync: Use --no-monorepo for local-only generation
  • Archive downloads: Compressed archives for faster transfers
  • Caching: Zone caching reduces repeated work

Next: API Reference ยท Architecture