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 datetime
|
||||||
|
import io
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import plistlib
|
||||||
import sys
|
import sys
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
class SetEncoder(json.JSONEncoder):
|
class SetEncoder(json.JSONEncoder):
|
||||||
@@ -89,7 +87,6 @@ class ITunesParser:
|
|||||||
Read library and return Tracks part
|
Read library and return Tracks part
|
||||||
"""
|
"""
|
||||||
plist = plistlib.readPlist(self.library_file)
|
plist = plistlib.readPlist(self.library_file)
|
||||||
print(plist['Features'])
|
|
||||||
return plist['Tracks']
|
return plist['Tracks']
|
||||||
|
|
||||||
def _process_songs(self):
|
def _process_songs(self):
|
||||||
@@ -237,34 +234,34 @@ class ITunesParser:
|
|||||||
#### main block ####
|
#### main block ####
|
||||||
|
|
||||||
# Default input & output files
|
# Default input & output files
|
||||||
DEFAULT_LIBRARY_FILE = os.path.expanduser('iTunesLibrary.xml')
|
DEFAULT_LIBRARY_FILE_NAME = 'iTunesLibrary.xml'
|
||||||
DEFAULT_OUTPUT_FILE = os.path.dirname(os.path.realpath(__file__)) + '/es-music-data.json'
|
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
|
# Get options
|
||||||
parser = OptionParser(version="%prog 1.0")
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_option('-f', '--file', dest='file', type='string',
|
parser.add_argument('-f', '--file', default=DEFAULT_LIBRARY_FILE,
|
||||||
help='iTunes Library XML file path',
|
help='iTunes Library XML file path (default: ./' + DEFAULT_LIBRARY_FILE_NAME + ')')
|
||||||
default=DEFAULT_LIBRARY_FILE)
|
parser.add_argument('-o', '--output', default=DEFAULT_OUTPUT_FILE,
|
||||||
parser.add_option('-o', '--output', dest='output', type='string',
|
help='Output to file (default: .' + DEFAULT_OUTPUT_FILE_NAME + ')')
|
||||||
help='Output to file (default=./js/music-data.json)',
|
parser.add_argument('-c', '--console', action='store_true',
|
||||||
default=DEFAULT_OUTPUT_FILE)
|
help='Output to console instead of file')
|
||||||
parser.add_option('-c', '--console', dest='console', action='store_true',
|
# parser.add_argument('-v', '--verbose', action='store_true',
|
||||||
help='Output to console instead of file')
|
# help='Verbose output')
|
||||||
parser.add_option('-v', '--verbose', dest='verbose', action='store_true',
|
|
||||||
help='Verbose output')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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()
|
output = itunes_parser.to_json()
|
||||||
|
|
||||||
if options.console:
|
if args.console:
|
||||||
print(output)
|
print(output)
|
||||||
else:
|
else:
|
||||||
with io.open(options.output, 'wb') as outfile:
|
with io.open(args.output, 'wb') as outfile:
|
||||||
if sys.version_info.major == 2:
|
if sys.version_info.major == 2:
|
||||||
outfile.write(bytes(output))
|
outfile.write(bytes(output))
|
||||||
elif sys.version_info.major == 3:
|
elif sys.version_info.major == 3:
|
||||||
outfile.write(bytes(output, 'UTF-8'))
|
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