Source code for schedula.cli
# coding=utf-8
# -*- coding: UTF-8 -*-
#
# Copyright 2015-2025, Vincenzo Arcidiacono;
# Licensed under the EUPL (the 'Licence');
# You may not use this work except in compliance with the Licence.
# You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
r"""
Define the command line interface.
.. click:: schedula.cli:cli
:prog: schedula
:show-nested:
"""
import click
import logging
import click_log
from schedula import __version__
from schedula.utils.form.cli import cli as form
log = logging.getLogger('schedula.cli')
[docs]
class _Logger(logging.Logger):
[docs]
def setLevel(self, level):
super(_Logger, self).setLevel(level)
frmt = "%(asctime)-15s:%(levelname)5.5s:%(name)s:%(message)s"
logging.basicConfig(level=level, format=frmt)
rlog = logging.getLogger()
# because `basicConfig()` does not reconfig root-logger when re-invoked.
rlog.level = level
logging.captureWarnings(True)
logger = _Logger('cli')
click_log.basic_config(logger)
@click.group(
'schedula', context_settings=dict(help_option_names=['-h', '--help'])
)
@click.version_option(__version__)
def cli():
"""
schedula command line tool.
"""
cli.add_command(form)
if __name__ == '__main__':
cli()