mirror of
https://github.com/datafolklabs/cement.git
synced 2026-02-06 13:56:49 +00:00
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
|
|
from __future__ import annotations
|
|
from typing import Optional, List
|
|
from cement import App, CaughtSignal # noqa: E402
|
|
from .controllers.base import Base # noqa: E402
|
|
|
|
|
|
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:
|
|
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
|