or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

cli-commands.mdindex.mdplugin-development.mdtesting-utilities.md
tile.json

tessl/pypi-indico

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

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/indico@3.3.x

To install, run

npx @tessl/cli install tessl/pypi-indico@3.3.0

index.mddocs/

Indico

Indico is a comprehensive web-based conference lifecycle management and meeting/lecture scheduling tool. It provides a complete event management platform with features for organizing conferences, managing meetings, handling registrations, paper reviewing, and room booking. As a web application framework, Indico's public API focuses on administrative operations via CLI commands, extension development via plugins, and testing infrastructure for developers.

Package Information

  • Package Name: indico
  • Package Type: pypi
  • Language: Python
  • Installation: pip install indico

Core Imports

# Plugin development
from indico.core.plugins import IndicoPlugin, PluginCategory
from indico.core.plugins import url_for_plugin, get_plugin_template_module

# CLI development
from indico.cli.core import cli_command, cli_group

# Testing utilities
from indico.testing.util import bool_matrix
# Fixtures are automatically available when using the pytest plugin

Basic Usage

Creating a Plugin

from indico.core.plugins import IndicoPlugin, PluginCategory

class MyPlugin(IndicoPlugin):
    """A simple Indico plugin example."""
    
    configurable = True
    category = PluginCategory.other
    default_settings = {
        'enabled': False,
        'max_items': 10
    }
    
    def init(self):
        """Initialize the plugin when loaded."""
        super().init()
        # Plugin initialization code here
    
    def get_blueprints(self):
        """Return Flask blueprints for this plugin."""
        return []

Using CLI Commands

# Initialize database
indico db prepare

# Compile translations
indico i18n compile

# Create new user
indico user create admin@example.com

Architecture

Indico follows a modular architecture designed for extensibility:

  • Core Framework: Flask-based web application with SQLAlchemy ORM
  • Plugin System: Extensible architecture allowing custom functionality via plugins
  • CLI Interface: Administrative commands for system management and maintenance
  • Settings Management: Hierarchical settings system (global, event-specific, user-specific)
  • Testing Infrastructure: Comprehensive test fixtures and utilities for development

The plugin system is the primary extension mechanism, enabling custom event types, payment processors, authentication providers, and integration with external systems.

Capabilities

Command Line Interface

Administrative and management commands for database operations, user management, event lifecycle management, internationalization, and system maintenance.

def cli(): ...
def cli_command(name=None, **attrs): ...
def cli_group(name=None, **attrs): ...

CLI Commands

Plugin Development API

Base classes and utilities for creating Indico plugins, including settings management, blueprint registration, template hooks, and event handling.

class IndicoPlugin:
    configurable: bool = False
    category: PluginCategory = PluginCategory.other
    default_settings: dict = {}
    default_event_settings: dict = {}
    default_user_settings: dict = {}
    acl_settings: set = set()
    strict_settings: bool = True
    
    def init(self): ...
    def get_blueprints(self): ...
    def get_vars_js(self): ...

Plugin Development

Testing Infrastructure

Comprehensive testing utilities including pytest integration, test fixtures for events, users, rooms, and other domain objects, plus utilities for parameterized testing.

def bool_matrix(template, mask, expect): ...

Testing Utilities