import logging import json from pathlib import Path import click import sqlalchemy as sa from ai.backend.common.logging import BraceStyleAdapter from ..models.base import populate_fixture log = BraceStyleAdapter(logging.getLogger(__name__)) @click.group() def cli(): pass @cli.command() @click.argument('fixture_path', type=Path) @click.pass_obj def populate(cli_ctx, fixture_path): '''Populate fixtures.''' with cli_ctx.logger: log.info("populating fixture '{0}'", fixture_path) try: fixture = json.loads(fixture_path.read_text(encoding='utf8')) except AttributeError: log.error('No such fixture.') return engine = sa.create_engine( f"postgres://{cli_ctx.config['db']['user']}:{cli_ctx.config['db']['password']}" f"@{cli_ctx.config['db']['addr']}/{cli_ctx.config['db']['name']}") conn = engine.connect() populate_fixture(conn, fixture) conn.close() @cli.command() @click.pass_obj def list(cli_ctx): '''List all available fixtures.''' with cli_ctx.logger: log.warning('This command is deprecated.')