import sys from argparse import ArgumentParser from typing import Any from django.core.management.base import BaseCommand from analytics.lib.counts import COUNT_STATS, do_drop_single_stat class Command(BaseCommand): help = """Clear analytics tables.""" def add_arguments(self, parser): # type: (ArgumentParser) -> None parser.add_argument('--force', action='store_true', help="Actually do it.") parser.add_argument('--property', type=str, help="The property of the stat to be cleared.") def handle(self, *args, **options): # type: (*Any, **Any) -> None property = options['property'] if property not in COUNT_STATS: print("Invalid property: %s" % (property,)) sys.exit(1) if not options['force']: print("No action taken. Use --force.") sys.exit(1) do_drop_single_stat(property)