CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-indico

Comprehensive web-based event management and conference lifecycle management platform.

Pending
Overview
Eval results
Files

cli-commands.mddocs/

CLI Commands

Indico provides a comprehensive command-line interface for administrative operations, database management, user administration, and system maintenance. The CLI is the primary interface for server administration and deployment operations.

Capabilities

Core CLI Framework

The foundation for all Indico CLI commands, providing decorators and utilities for creating command groups and individual commands.

def cli():
    """Main CLI group function and entry point."""

def cli_command(name=None, **attrs):
    """
    Decorator for creating CLI commands.
    
    Parameters:
    - name: str, optional command name (defaults to function name)
    - **attrs: additional click command attributes
    
    Returns:
    Decorated command function
    """

def cli_group(name=None, **attrs):
    """
    Decorator for creating CLI command groups.
    
    Parameters:
    - name: str, optional group name (defaults to function name)
    - **attrs: additional click group attributes
    
    Returns:
    Decorated group function
    """

Database Management

Commands for database initialization, migration, and maintenance operations.

def prepare():
    """
    Initialize new database.
    Creates tables and sets alembic revision to HEAD.
    """

def reset_alembic():
    """
    Reset alembic state from 1.9.x upgrades.
    Used for database migration recovery.
    """

Usage examples:

# Initialize a fresh database
indico db prepare

# Reset alembic state after upgrade issues
indico db reset-alembic

# Run database migrations
indico db upgrade

# Downgrade database
indico db downgrade

User Management

Administrative commands for user account management and administration.

# Create a new user account
indico user create user@example.com

# List all users
indico user list

# Grant admin privileges
indico user grant-admin user@example.com

# Reset user password
indico user reset-password user@example.com

Event Management

Commands for event lifecycle management and administration.

# List events
indico event list

# Export event data
indico event export 123

# Clean up old events
indico event cleanup --days 365

Internationalization

Translation and localization management commands for both core Indico and plugins.

def compile():
    """
    Catalog compilation for Indico and plugins.
    Compiles .po files to .mo files for runtime use.
    """

def extract():
    """
    Message extraction for Indico and plugins.
    Extracts translatable strings from source code.
    """

def init():
    """
    New catalog initialization for Indico and plugins.
    Creates new translation files for specified languages.
    """

def update():
    """
    Catalog merging for Indico and plugins.
    Updates existing translation files with new strings.
    """

def push():
    """
    Push .pot files to Transifex.
    Uploads source translation files to the translation service.
    """

def pull():
    """
    Pull translated .po files from Transifex.
    Downloads completed translations from the service.
    """

Usage examples:

# Extract translatable strings
indico i18n extract

# Compile translation catalogs
indico i18n compile

# Initialize new language
indico i18n init --locale de_DE

# Update existing translations
indico i18n update

# Push to Transifex
indico i18n push

# Pull from Transifex
indico i18n pull

System Maintenance

Commands for system cleanup, maintenance, and administrative tasks.

# Clean up temporary files
indico maintenance cleanup

# Rebuild search index
indico maintenance rebuild-index

# Generate statistical reports
indico maintenance stats

# Clean up orphaned files
indico maintenance clean-files

Command Development

To create custom CLI commands for plugins or extensions:

from indico.cli.core import cli_command, cli_group

@cli_group()
def my_plugin():
    """My plugin commands."""

@my_plugin.command()
@cli_command
def my_command():
    """Custom command for my plugin."""
    click.echo("Hello from my plugin!")

Entry Point

All CLI commands are accessible through the main indico entry point defined in the package configuration:

[project.scripts]
indico = "indico.cli.core:cli"

Install with Tessl CLI

npx tessl i tessl/pypi-indico

docs

cli-commands.md

index.md

plugin-development.md

testing-utilities.md

tile.json