From bf3682bd00fbbc435f9dab9bb0848b71cdd63d54 Mon Sep 17 00:00:00 2001 From: "Maxence G. de Montauzan" Date: Tue, 18 Apr 2017 01:49:08 +0200 Subject: [PATCH] Change deprecated OptionParser for ArgumentParser --- iTunesParser.py | 49 +++++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/iTunesParser.py b/iTunesParser.py index 00c27eb..b9da926 100644 --- a/iTunesParser.py +++ b/iTunesParser.py @@ -38,15 +38,13 @@ for use in the D3.js JavaScript library. """ -from __future__ import division -from optparse import OptionParser - -import os -import io -import plistlib -import json import datetime +import io +import json +import os +import plistlib import sys +import argparse class SetEncoder(json.JSONEncoder): @@ -89,7 +87,6 @@ class ITunesParser: Read library and return Tracks part """ plist = plistlib.readPlist(self.library_file) - print(plist['Features']) return plist['Tracks'] def _process_songs(self): @@ -237,34 +234,34 @@ class ITunesParser: #### main block #### # Default input & output files -DEFAULT_LIBRARY_FILE = os.path.expanduser('iTunesLibrary.xml') -DEFAULT_OUTPUT_FILE = os.path.dirname(os.path.realpath(__file__)) + '/es-music-data.json' +DEFAULT_LIBRARY_FILE_NAME = 'iTunesLibrary.xml' +DEFAULT_OUTPUT_FILE_NAME = '/es-music-data.json' +DEFAULT_LIBRARY_FILE = os.path.expanduser(DEFAULT_LIBRARY_FILE_NAME) +DEFAULT_OUTPUT_FILE = os.path.dirname(os.path.realpath(__file__)) + DEFAULT_OUTPUT_FILE_NAME # Get options -parser = OptionParser(version="%prog 1.0") -parser.add_option('-f', '--file', dest='file', type='string', - help='iTunes Library XML file path', - default=DEFAULT_LIBRARY_FILE) -parser.add_option('-o', '--output', dest='output', type='string', - help='Output to file (default=./js/music-data.json)', - default=DEFAULT_OUTPUT_FILE) -parser.add_option('-c', '--console', dest='console', action='store_true', - help='Output to console instead of file') -parser.add_option('-v', '--verbose', dest='verbose', action='store_true', - help='Verbose output') +parser = argparse.ArgumentParser() +parser.add_argument('-f', '--file', default=DEFAULT_LIBRARY_FILE, + help='iTunes Library XML file path (default: ./' + DEFAULT_LIBRARY_FILE_NAME + ')') +parser.add_argument('-o', '--output', default=DEFAULT_OUTPUT_FILE, + help='Output to file (default: .' + DEFAULT_OUTPUT_FILE_NAME + ')') +parser.add_argument('-c', '--console', action='store_true', + help='Output to console instead of file') +# parser.add_argument('-v', '--verbose', action='store_true', + # help='Verbose output') if __name__ == '__main__': - (options, args) = parser.parse_args() + args = parser.parse_args() - itunes_parser = ITunesParser(options.file) + itunes_parser = ITunesParser(args.file) output = itunes_parser.to_json() - if options.console: + if args.console: print(output) else: - with io.open(options.output, 'wb') as outfile: + with io.open(args.output, 'wb') as outfile: if sys.version_info.major == 2: outfile.write(bytes(output)) elif sys.version_info.major == 3: outfile.write(bytes(output, 'UTF-8')) - print('JSON data written to: ' + options.output) + print('JSON data written to: ' + args.output)