code quality
This commit is contained in:
		@ -1,17 +1,15 @@
 | 
			
		||||
"""
 | 
			
		||||
Analyse and check files using Sox, prints good and bad files.
 | 
			
		||||
"""
 | 
			
		||||
"""Analyse and check files using Sox, prints good and bad files."""
 | 
			
		||||
import logging
 | 
			
		||||
from argparse import RawTextHelpFormatter
 | 
			
		||||
 | 
			
		||||
from django.core.management.base import BaseCommand, CommandError
 | 
			
		||||
 | 
			
		||||
from aircox.management.sound_stats import SoxStats, SoundStats
 | 
			
		||||
from aircox.management.sound_stats import SoundStats, SoxStats
 | 
			
		||||
 | 
			
		||||
logger = logging.getLogger('aircox.commands')
 | 
			
		||||
logger = logging.getLogger("aircox.commands")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Command (BaseCommand):
 | 
			
		||||
class Command(BaseCommand):
 | 
			
		||||
    help = __doc__
 | 
			
		||||
    sounds = None
 | 
			
		||||
 | 
			
		||||
@ -19,46 +17,61 @@ class Command (BaseCommand):
 | 
			
		||||
        parser.formatter_class = RawTextHelpFormatter
 | 
			
		||||
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            'files', metavar='FILE', type=str, nargs='+',
 | 
			
		||||
            help='file(s) to analyse'
 | 
			
		||||
            "files",
 | 
			
		||||
            metavar="FILE",
 | 
			
		||||
            type=str,
 | 
			
		||||
            nargs="+",
 | 
			
		||||
            help="file(s) to analyse",
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '-s', '--sample_length', type=int, default=120,
 | 
			
		||||
            help='size of sample to analyse in seconds. If not set (or 0), does'
 | 
			
		||||
                 ' not analyse by sample',
 | 
			
		||||
            "-s",
 | 
			
		||||
            "--sample_length",
 | 
			
		||||
            type=int,
 | 
			
		||||
            default=120,
 | 
			
		||||
            help="size of sample to analyse in seconds. If not set (or 0), "
 | 
			
		||||
            "does not analyse by sample",
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '-a', '--attribute', type=str,
 | 
			
		||||
            help='attribute name to use to check, that can be:\n' +
 | 
			
		||||
                 ', '.join(['"{}"'.format(attr) for attr in SoxStats.attributes])
 | 
			
		||||
            "-a",
 | 
			
		||||
            "--attribute",
 | 
			
		||||
            type=str,
 | 
			
		||||
            help="attribute name to use to check, that can be:\n"
 | 
			
		||||
            + ", ".join(['"{}"'.format(attr) for attr in SoxStats.attributes]),
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '-r', '--range', type=float, nargs=2,
 | 
			
		||||
            help='range of minimal and maximal accepted value such as: '
 | 
			
		||||
                 '--range min max'
 | 
			
		||||
            "-r",
 | 
			
		||||
            "--range",
 | 
			
		||||
            type=float,
 | 
			
		||||
            nargs=2,
 | 
			
		||||
            help="range of minimal and maximal accepted value such as: "
 | 
			
		||||
            "--range min max",
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            '-i', '--resume', action='store_true',
 | 
			
		||||
            help='print a resume of good and bad files'
 | 
			
		||||
            "-i",
 | 
			
		||||
            "--resume",
 | 
			
		||||
            action="store_true",
 | 
			
		||||
            help="print a resume of good and bad files",
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def handle(self, *args, **options):
 | 
			
		||||
        # parameters
 | 
			
		||||
        minmax = options.get('range')
 | 
			
		||||
        minmax = options.get("range")
 | 
			
		||||
        if not minmax:
 | 
			
		||||
            raise CommandError('no range specified')
 | 
			
		||||
            raise CommandError("no range specified")
 | 
			
		||||
 | 
			
		||||
        attr = options.get('attribute')
 | 
			
		||||
        attr = options.get("attribute")
 | 
			
		||||
        if not attr:
 | 
			
		||||
            raise CommandError('no attribute specified')
 | 
			
		||||
            raise CommandError("no attribute specified")
 | 
			
		||||
 | 
			
		||||
        # sound analyse and checks
 | 
			
		||||
        self.sounds = [SoundStats(path, options.get('sample_length'))
 | 
			
		||||
                       for path in options.get('files')]
 | 
			
		||||
        self.sounds = [
 | 
			
		||||
            SoundStats(path, options.get("sample_length"))
 | 
			
		||||
            for path in options.get("files")
 | 
			
		||||
        ]
 | 
			
		||||
        self.bad = []
 | 
			
		||||
        self.good = []
 | 
			
		||||
        for sound in self.sounds:
 | 
			
		||||
            logger.info('analyse ' + sound.path)
 | 
			
		||||
            logger.info("analyse " + sound.path)
 | 
			
		||||
            sound.analyse()
 | 
			
		||||
            sound.check(attr, minmax[0], minmax[1])
 | 
			
		||||
            if sound.bad:
 | 
			
		||||
@ -67,8 +80,8 @@ class Command (BaseCommand):
 | 
			
		||||
                self.good.append(sound)
 | 
			
		||||
 | 
			
		||||
        # resume
 | 
			
		||||
        if options.get('resume'):
 | 
			
		||||
        if options.get("resume"):
 | 
			
		||||
            for sound in self.good:
 | 
			
		||||
                logger.info('\033[92m+ %s\033[0m', sound.path)
 | 
			
		||||
                logger.info("\033[92m+ %s\033[0m", sound.path)
 | 
			
		||||
            for sound in self.bad:
 | 
			
		||||
                logger.info('\033[91m+ %s\033[0m', sound.path)
 | 
			
		||||
                logger.info("\033[91m+ %s\033[0m", sound.path)
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user