HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/local/bin/dhwp/env/lib/python3.10/site-packages/cement/cli/main.py
from __future__ import annotations
from typing import Optional, List
from cement import App, CaughtSignal  # noqa: E402
from .controllers.base import Base    # noqa: E402
from cement.core.exc import FrameworkError


class CementApp(App):
    class Meta:
        label = 'cement'
        controller = 'base'
        template_module = 'cement.cli.templates'
        template_handler = 'jinja2'
        config_handler = 'yaml'
        config_file_suffix = '.yml'

        extensions = [
            'generate',
            'yaml',
            'jinja2',
        ]

        handlers = [
            Base,
        ]


class CementTestApp(CementApp):
    class Meta:
        argv: List[str] = []
        config_files: List[str] = []
        exit_on_close = False


def main(argv: Optional[List[str]] = None) -> None:
    # Issue #679: https://github.com/datafolklabs/cement/issues/679
    try:
        import yaml, jinja2  # type: ignore  # noqa: F401 E401
    except ModuleNotFoundError:  # pragma: nocover
        raise FrameworkError('Cement CLI Dependencies are missing! Install cement[cli] extras ' +
                             'package to resolve -> pip install cement[cli]')

    with CementApp() as app:
        try:
            app.run()
        except AssertionError as e:                     # pragma: nocover
            print(f'AssertionError > {e.args[0]}')      # pragma: nocover
            app.exit_code = 1                           # pragma: nocover
        except CaughtSignal as e:                       # pragma: nocover
            print(f'\n{e}')                             # pragma: nocover
            app.exit_code = 0                           # pragma: nocover


if __name__ == '__main__':
    main()                                              # pragma: nocover