Change deprecated OptionParser for ArgumentParser
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user