diff --git a/flacinfo.py b/flacinfo.py index fec2398..c0d6194 100755 --- a/flacinfo.py +++ b/flacinfo.py @@ -14,14 +14,14 @@ import sys VORBIS_ARG_NAME = { - 'title': 'TITLE', - 'track': 'TRACKNUMBER', - 'artist': 'ARTIST', - 'album': 'ALBUM', - 'albumnumber': 'DISCNUMBER', - 'genre': 'GENRE', - 'year': 'DATE', - 'comment': 'COMMENT', + "title": "TITLE", + "track": "TRACKNUMBER", + "artist": "ARTIST", + "album": "ALBUM", + "albumnumber": "DISCNUMBER", + "genre": "GENRE", + "year": "DATE", + "comment": "COMMENT", } @@ -38,26 +38,22 @@ def argparser(): """ Parses the arguments from sys.argv """ parser = argparse.ArgumentParser( description="Edit flac files' metadata", - epilog=('When no option modifying the tags is passed, the currently ' - 'set tags are shown.')) - parser.add_argument('-a', '--artist', - help="Specify artist name") - parser.add_argument('-c', '--comment', - help="Specify an arbitrary comment") - parser.add_argument('-g', '--genre', - help="Specify genre (in plain text)") - parser.add_argument('-l', '--album', - help="Specify album name") - parser.add_argument('-m', '--albumnumber', - help="Specify album number") - parser.add_argument('-n', '--track', - help="Specify track number") - parser.add_argument('-t', '--title', - help="Specify track title") - parser.add_argument('-y', '--year', - help="Specify album year") - parser.add_argument('file', nargs='+', metavar='FILE', - help="The file(s) to work on") + epilog=( + "When no option modifying the tags is passed, the currently " + "set tags are shown." + ), + ) + parser.add_argument("-a", "--artist", help="Specify artist name") + parser.add_argument("-c", "--comment", help="Specify an arbitrary comment") + parser.add_argument("-g", "--genre", help="Specify genre (in plain text)") + parser.add_argument("-l", "--album", help="Specify album name") + parser.add_argument("-m", "--albumnumber", help="Specify album number") + parser.add_argument("-n", "--track", help="Specify track number") + parser.add_argument("-t", "--title", help="Specify track title") + parser.add_argument("-y", "--year", help="Specify album year") + parser.add_argument( + "file", nargs="+", metavar="FILE", help="The file(s) to work on" + ) return parser.parse_args() @@ -65,9 +61,11 @@ def is_flac_file(path): """ Checks whether `path` refers to an existing, writeable flac file """ if not os.path.isfile(path) or not os.access(path, os.W_OK): return False - flac_run = subprocess.run(['metaflac', '--list', path], - stdout=subprocess.DEVNULL, - stderr=subprocess.DEVNULL) + flac_run = subprocess.run( + ["metaflac", "--list", path], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) if flac_run.returncode != 0: return False # Metaflac failed to list the files' metadata @@ -83,7 +81,7 @@ def make_metaflac_args(in_args): continue arg_name = VORBIS_ARG_NAME[arg] - out_args.append('--remove-tag={}'.format(arg_name)) + out_args.append("--remove-tag={}".format(arg_name)) out_args.append("--set-tag={}={}".format(arg_name, arg_val)) return out_args @@ -92,15 +90,19 @@ def make_metaflac_args(in_args): def edit_flac(args): """ Perfoms the requested edition operations """ metaflac_args = make_metaflac_args(args) - metaflac_args += args['file'] - metaflac_args.insert(0, 'metaflac') + metaflac_args += args["file"] + metaflac_args.insert(0, "metaflac") metaflac_run = subprocess.run(metaflac_args) if metaflac_run.returncode != 0: - print(('\n\nMetaflac exited with return code {}. There was an error ' - 'during the execution, you should look at the output to ' - 'investigate it.').format(metaflac_run.returncode), - file=sys.stderr) + print( + ( + "\n\nMetaflac exited with return code {}. There was an error " + "during the execution, you should look at the output to " + "investigate it." + ).format(metaflac_run.returncode), + file=sys.stderr, + ) sys.exit(metaflac_run.returncode) @@ -114,18 +116,18 @@ def reverse_tag(vorbis_tag): def get_tags(path): """ Retrieves the relevant tags for a single file """ - metaflac_args = ['metaflac'] + metaflac_args = ["metaflac"] for tag in VORBIS_ARG_NAME: - metaflac_args += ['--show-tag', VORBIS_ARG_NAME[tag]] + metaflac_args += ["--show-tag", VORBIS_ARG_NAME[tag]] metaflac_args.append(path) metaflac_run = subprocess.run(metaflac_args, stdout=subprocess.PIPE) - meta_out = metaflac_run.stdout.decode('utf-8') + meta_out = metaflac_run.stdout.decode("utf-8") output = {} - for line in meta_out.split('\n'): - split = line.split('=') - tag, value = split[0], '='.join(split[1:]) + for line in meta_out.split("\n"): + split = line.split("=") + tag, value = split[0], "=".join(split[1:]) if not tag: continue tag = reverse_tag(tag) @@ -140,7 +142,7 @@ def show_tags(path): max_len = max([len(tag) for tag in tags]) for tag in tags: - print(' {}: {}{}'.format(tag, ' '*(max_len - len(tag)), tags[tag])) + print(" {}: {}{}".format(tag, " " * (max_len - len(tag)), tags[tag])) print("") @@ -148,15 +150,17 @@ def main(): args = vars(argparser()) has_errors = False - for cur_file in args['file']: + for cur_file in args["file"]: if not is_flac_file(cur_file): - print(("Error: file {} does not exist, or is not writeable by " - "metaflac").format(cur_file), - file=sys.stderr) + print( + ( + "Error: file {} does not exist, or is not writeable by " "metaflac" + ).format(cur_file), + file=sys.stderr, + ) has_errors = True if has_errors: - print("One or more file cannot be manipulated. Aborting.", - file=sys.stderr) + print("One or more file cannot be manipulated. Aborting.", file=sys.stderr) sys.exit(1) edit_mode = False @@ -168,9 +172,9 @@ def main(): if edit_mode: edit_flac(args) else: - for path in args['file']: + for path in args["file"]: show_tags(path) -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/setup.py b/setup.py index ba372a4..80b9d25 100644 --- a/setup.py +++ b/setup.py @@ -4,23 +4,23 @@ from setuptools import setup setup( - name='flacinfo', - version='1.0.0b1', - description='A script analoguous to `mp3info`, but for flac files', - url='https://github.com/tobast/flacinfo', - author='Théophile `tobast` Bastian', + name="flacinfo", + version="1.0.0b1", + description="A script analoguous to `mp3info`, but for flac files", + url="https://git.tobast.fr/tobast/flacinfo", + author="Théophile `tobast` Bastian", classifiers=[ - 'Development Status :: 4 - Beta', - 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', - 'Environment :: Console', - 'Programming Language :: Python :: 3', + "Development Status :: 4 - Beta", + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Environment :: Console", + "Programming Language :: Python :: 3", ], - python_requires='>=3', - keywords='flac metadata', - py_modules=['flacinfo'], + python_requires=">=3", + keywords="flac metadata", + py_modules=["flacinfo"], entry_points={ - 'console_scripts': [ - 'flacinfo = flacinfo:main', + "console_scripts": [ + "flacinfo = flacinfo:main", ] - } - ) + }, +)