diff --git a/mfbatch/__main__.py b/mfbatch/__main__.py index 8f7b7ec..20baf1d 100644 --- a/mfbatch/__main__.py +++ b/mfbatch/__main__.py @@ -29,7 +29,7 @@ def execute_batch_list(batch_list_path: str, dry_run: bool, interactive: bool): parser.eval(line, line_no, interactive) -def create_batch_list(command_file: str, recursive= True): +def create_batch_list(command_file: str, recursive=True): """ Read all FLAC files in the cwd and create a batchfile that re-creates all of their metadata. @@ -69,31 +69,31 @@ def main(): op = ArgumentParser(usage="%prog (-c | -e | -W) [options]") op.add_argument('-c', '--create', default=False, - action='store_true', - help='create a new list') + action='store_true', + help='create a new list') op.add_argument('-e', '--edit', action='store_true', - help="open batch file in the default editor", - default=False) + help="open batch file in the default editor", + default=False) op.add_argument('-W', '--write', default=False, - action='store_true', - help="execute batch list, write to files") + action='store_true', + help="execute batch list, write to files") op.add_argument('-p', '--path', metavar='DIR', - help='chdir to DIR before running', - default=None) + help='chdir to DIR before running', + default=None) op.add_argument('-n', '--dry-run', action='store_true', - help="dry-run -W.") + help="dry-run -W.") op.add_argument('-f', '--batchfile', metavar='FILE', - help="use batch list FILE for reading and writing instead " - "of the default \"MFBATCH_LIST\"", - default='MFBATCH_LIST') + help="use batch list FILE for reading and writing instead " + "of the default \"MFBATCH_LIST\"", + default='MFBATCH_LIST') op.add_argument('-y', '--yes', default=False, action='store_true', - dest='yes', help="automatically confirm all prompts, " - "inhibits interactive editing in -W mode") + dest='yes', help="automatically confirm all prompts, " + "inhibits interactive editing in -W mode") op.add_argument('--help-commands', action='store_true', default=False, - dest='help_commands', - help='print a list of available commands for batch lists ' - 'and interactive writing.') + dest='help_commands', + help='print a list of available commands for batch lists ' + 'and interactive writing.') options = op.parse_args() diff --git a/mfbatch/commands.py b/mfbatch/commands.py index 67ae64f..c2c809b 100644 --- a/mfbatch/commands.py +++ b/mfbatch/commands.py @@ -50,7 +50,7 @@ class CommandEnv: artwork_desc: Optional[str] def __init__(self) -> None: - self.metadatums = {} + self.metadatums = {} self.incr = {} self.patterns = {} self.onces = {} @@ -163,13 +163,13 @@ they appear in the batchfile. def _handle_command(self, line, lineno): args = shlex.split(line) actions = [m_name for m_name in dir(self) - if not (m_name.startswith('_') or m_name == 'eval') ] + if not (m_name.startswith('_') or m_name == 'eval')] if args[0] in actions: try: self.__getattribute__(args[0])(args[1:]) except KeyError as exc: - raise CommandArgumentError(command=args[0], + raise CommandArgumentError(command=args[0], line=lineno) from exc else: raise UnrecognizedCommandError(command=args[0], line=lineno) @@ -191,7 +191,6 @@ they appear in the batchfile. self.env.revert_onces() self.env.clear_file_keys() - while True: self.env.set_file_keys(line) @@ -221,7 +220,7 @@ they appear in the batchfile. if interactive: val = input('Write? [Y/n/a/:] > ') if val == '' or val.startswith('Y') or val.startswith('y'): - write_metadata_impl() + write_metadata_impl() break elif val.startswith(self.COMMAND_LEADER): self._handle_command(val.lstrip(self.COMMAND_LEADER), @@ -230,7 +229,7 @@ they appear in the batchfile. elif val == 'a': print("Aborting write session...", file=sys.stdout) break - + write_metadata_impl() def set(self, args): diff --git a/mfbatch/metaflac.py b/mfbatch/metaflac.py index d308ca2..99e3ff3 100644 --- a/mfbatch/metaflac.py +++ b/mfbatch/metaflac.py @@ -70,5 +70,5 @@ def write_metadata(path: str, data: FlacMetadata, metadatum_f = metadatum_f + f"{key}={val}\n" - run([metaflac_path, "--import-tags-from=-", path], + run([metaflac_path, "--import-tags-from=-", path], input=metadatum_f.encode('utf-8'), check=True) diff --git a/mfbatch/util.py b/mfbatch/util.py index 9996045..bf3235a 100644 --- a/mfbatch/util.py +++ b/mfbatch/util.py @@ -2,6 +2,7 @@ mfbatch util - utility functions """ + def readline_with_escaped_newlines(f): """ A readline line generator, except lines ending with a backslash will be @@ -22,6 +23,5 @@ def readline_with_escaped_newlines(f): line = line[:-1] continue - else: - yield line, line_no - line = '' + yield line, line_no + line = ''