Changeset View
Changeset View
Standalone View
Standalone View
looper/management/commands/clock_tick.py
| import logging | import logging | ||||
| from django.core.management.base import BaseCommand | from django.core.management.base import BaseCommand | ||||
| import looper.clock | import looper.clock | ||||
| log = logging.getLogger(__name__) | log = logging.getLogger(__name__) | ||||
| class Command(BaseCommand): | class Command(BaseCommand): | ||||
| help = 'Run the Looper subscription clock.' | help = 'Run the Looper subscription clock.' | ||||
| def add_arguments(self, parser): | def add_arguments(self, parser): | ||||
| parser.add_argument('--dry-run', '-n', | parser.add_argument( | ||||
| '--dry-run', | |||||
| '-n', | |||||
| action='store_true', | action='store_true', | ||||
| default=False, | default=False, | ||||
| help='Only log what will happen, do not execute for real.') | help='Only log what will happen, do not execute for real.', | ||||
| ) | |||||
| def handle(self, *args, dry_run: bool, verbosity: int, **options): | def handle(self, *args, dry_run: bool, verbosity: int, **options): | ||||
| if dry_run: | if dry_run: | ||||
| verbosity = max(3, verbosity) | verbosity = max(3, verbosity) | ||||
| cls = looper.clock.SimulatingClock | cls = looper.clock.SimulatingClock | ||||
| else: | else: | ||||
| cls = looper.clock.Clock | cls = looper.clock.Clock # type: ignore | ||||
| levels = { | levels = { | ||||
| 0: logging.ERROR, | 0: logging.ERROR, | ||||
| 1: logging.WARNING, | 1: logging.WARNING, | ||||
| 2: logging.INFO, | 2: logging.INFO, | ||||
| 3: logging.DEBUG, | 3: logging.DEBUG, | ||||
| } | } | ||||
| level = levels.get(verbosity, logging.DEBUG) | level = levels.get(verbosity, logging.DEBUG) | ||||
| logging.getLogger('looper').setLevel(level) | logging.getLogger('looper').setLevel(level) | ||||
| logging.disable(level - 1) | logging.disable(level - 1) | ||||
| clock = cls() | clock = cls() | ||||
| clock.tick() | clock.tick() | ||||