mirror of https://github.com/ARMmbed/mbed-os.git
Removing dependency on StringIO, only change return type of table export
parent
0e4b841cb3
commit
39086722e8
|
|
@ -459,7 +459,10 @@ def build_project(src_paths, build_path, target, toolchain_name,
|
||||||
memap_table = ''
|
memap_table = ''
|
||||||
if memap_instance:
|
if memap_instance:
|
||||||
# Write output to stdout in text (pretty table) format
|
# Write output to stdout in text (pretty table) format
|
||||||
memap_table = memap_instance.generate_output('table', silent=silent)
|
memap_table = memap_instance.generate_output('table')
|
||||||
|
|
||||||
|
if not silent:
|
||||||
|
print memap_table
|
||||||
|
|
||||||
# Write output to file in JSON format
|
# Write output to file in JSON format
|
||||||
map_out = join(build_path, name + "_map.json")
|
map_out = join(build_path, name + "_map.json")
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import csv
|
||||||
import json
|
import json
|
||||||
import argparse
|
import argparse
|
||||||
from prettytable import PrettyTable
|
from prettytable import PrettyTable
|
||||||
from StringIO import StringIO
|
|
||||||
|
|
||||||
from utils import argparse_filestring_type, \
|
from utils import argparse_filestring_type, \
|
||||||
argparse_lowercase_hyphen_type, argparse_uppercase_type
|
argparse_lowercase_hyphen_type, argparse_uppercase_type
|
||||||
|
|
@ -386,7 +385,7 @@ class MemapParser(object):
|
||||||
|
|
||||||
export_formats = ["json", "csv-ci", "table"]
|
export_formats = ["json", "csv-ci", "table"]
|
||||||
|
|
||||||
def generate_output(self, export_format, file_output=None, silent=False):
|
def generate_output(self, export_format, file_output=None):
|
||||||
""" Generates summary of memory map data
|
""" Generates summary of memory map data
|
||||||
|
|
||||||
Positional arguments:
|
Positional arguments:
|
||||||
|
|
@ -394,16 +393,15 @@ class MemapParser(object):
|
||||||
|
|
||||||
Keyword arguments:
|
Keyword arguments:
|
||||||
file_desc - descriptor (either stdout or file)
|
file_desc - descriptor (either stdout or file)
|
||||||
|
|
||||||
|
Returns: generated string for the 'table' format, otherwise None
|
||||||
"""
|
"""
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if silent:
|
if file_output:
|
||||||
file_desc = None
|
file_desc = open(file_output, 'wb')
|
||||||
else:
|
else:
|
||||||
if file_output:
|
file_desc = sys.stdout
|
||||||
file_desc = open(file_output, 'wb')
|
|
||||||
else:
|
|
||||||
file_desc = sys.stdout
|
|
||||||
except IOError as error:
|
except IOError as error:
|
||||||
print "I/O error({0}): {1}".format(error.errno, error.strerror)
|
print "I/O error({0}): {1}".format(error.errno, error.strerror)
|
||||||
return False
|
return False
|
||||||
|
|
@ -411,12 +409,12 @@ class MemapParser(object):
|
||||||
to_call = {'json': self.generate_json,
|
to_call = {'json': self.generate_json,
|
||||||
'csv-ci': self.generate_csv,
|
'csv-ci': self.generate_csv,
|
||||||
'table': self.generate_table}[export_format]
|
'table': self.generate_table}[export_format]
|
||||||
output_string = to_call(file_desc)
|
output = to_call(file_desc)
|
||||||
|
|
||||||
if file_desc is not sys.stdout and file_desc is not None:
|
if file_desc is not sys.stdout:
|
||||||
file_desc.close()
|
file_desc.close()
|
||||||
|
|
||||||
return output_string
|
return output
|
||||||
|
|
||||||
def generate_json(self, file_desc):
|
def generate_json(self, file_desc):
|
||||||
"""Generate a json file from a memory map
|
"""Generate a json file from a memory map
|
||||||
|
|
@ -424,12 +422,10 @@ class MemapParser(object):
|
||||||
Positional arguments:
|
Positional arguments:
|
||||||
file_desc - the file to write out the final report to
|
file_desc - the file to write out the final report to
|
||||||
"""
|
"""
|
||||||
output = json.dumps(self.mem_report, indent=4)
|
file_desc.write(json.dumps(self.mem_report, indent=4))
|
||||||
if file_desc:
|
file_desc.write('\n')
|
||||||
file_desc.write(output)
|
|
||||||
file_desc.write('\n')
|
|
||||||
|
|
||||||
return output
|
return None
|
||||||
|
|
||||||
def generate_csv(self, file_desc):
|
def generate_csv(self, file_desc):
|
||||||
"""Generate a CSV file from a memoy map
|
"""Generate a CSV file from a memoy map
|
||||||
|
|
@ -437,8 +433,7 @@ class MemapParser(object):
|
||||||
Positional arguments:
|
Positional arguments:
|
||||||
file_desc - the file to write out the final report to
|
file_desc - the file to write out the final report to
|
||||||
"""
|
"""
|
||||||
string_io = StringIO()
|
csv_writer = csv.writer(file_desc, delimiter=',',
|
||||||
csv_writer = csv.writer(string_io, delimiter=',',
|
|
||||||
quoting=csv.QUOTE_MINIMAL)
|
quoting=csv.QUOTE_MINIMAL)
|
||||||
|
|
||||||
csv_module_section = []
|
csv_module_section = []
|
||||||
|
|
@ -472,16 +467,15 @@ class MemapParser(object):
|
||||||
csv_writer.writerow(csv_module_section)
|
csv_writer.writerow(csv_module_section)
|
||||||
csv_writer.writerow(csv_sizes)
|
csv_writer.writerow(csv_sizes)
|
||||||
|
|
||||||
if file_desc:
|
return None
|
||||||
file_desc.write(string_io.getvalue())
|
|
||||||
|
|
||||||
return string_io.getvalue()
|
|
||||||
|
|
||||||
def generate_table(self, file_desc):
|
def generate_table(self, file_desc):
|
||||||
"""Generate a table from a memoy map
|
"""Generate a table from a memoy map
|
||||||
|
|
||||||
Positional arguments:
|
Positional arguments:
|
||||||
file_desc - the file to write out the final report to
|
file_desc - the file to write out the final report to
|
||||||
|
|
||||||
|
Returns: string of the generated table
|
||||||
"""
|
"""
|
||||||
# Create table
|
# Create table
|
||||||
columns = ['Module']
|
columns = ['Module']
|
||||||
|
|
@ -539,9 +533,6 @@ class MemapParser(object):
|
||||||
output += "Total Flash memory (text + data + misc): %s bytes\n" % \
|
output += "Total Flash memory (text + data + misc): %s bytes\n" % \
|
||||||
str(self.mem_summary['total_flash'])
|
str(self.mem_summary['total_flash'])
|
||||||
|
|
||||||
if file_desc:
|
|
||||||
file_desc.write(output)
|
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
toolchains = ["ARM", "ARM_STD", "ARM_MICRO", "GCC_ARM", "IAR"]
|
toolchains = ["ARM", "ARM_STD", "ARM_MICRO", "GCC_ARM", "IAR"]
|
||||||
|
|
@ -666,11 +657,15 @@ def main():
|
||||||
if memap.parse(args.file, args.toolchain) is False:
|
if memap.parse(args.file, args.toolchain) is False:
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
returned_string = None
|
||||||
# Write output in file
|
# Write output in file
|
||||||
if args.output != None:
|
if args.output != None:
|
||||||
memap.generate_output(args.export, args.output)
|
returned_string = memap.generate_output(args.export, args.output)
|
||||||
else: # Write output in screen
|
else: # Write output in screen
|
||||||
memap.generate_output(args.export)
|
returned_string = memap.generate_output(args.export)
|
||||||
|
|
||||||
|
if args.export == 'table' and returned_string:
|
||||||
|
print returned_string
|
||||||
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue