mirror of https://github.com/ARMmbed/mbed-os.git
Fixing project.py -S printing problem
Printing too large of a string can fail in Windows, as detailed here: https://bugs.python.org/issue11395. This works around the problem by adding a print_large_string function that breaks up the string into smaller pieces before printing it.pull/3227/head
parent
24016a1262
commit
21307015fc
|
@ -18,6 +18,7 @@ from tools.targets import TARGET_NAMES
|
||||||
from tools.utils import argparse_filestring_type, argparse_many, args_error
|
from tools.utils import argparse_filestring_type, argparse_many, args_error
|
||||||
from tools.utils import argparse_force_lowercase_type
|
from tools.utils import argparse_force_lowercase_type
|
||||||
from tools.utils import argparse_force_uppercase_type
|
from tools.utils import argparse_force_uppercase_type
|
||||||
|
from tools.utils import print_large_string
|
||||||
from tools.project_api import export_project, get_exporter_toolchain
|
from tools.project_api import export_project, get_exporter_toolchain
|
||||||
from tools.options import extract_profile
|
from tools.options import extract_profile
|
||||||
|
|
||||||
|
@ -189,7 +190,7 @@ def main():
|
||||||
|
|
||||||
# Only prints matrix of supported IDEs
|
# Only prints matrix of supported IDEs
|
||||||
if options.supported_ides:
|
if options.supported_ides:
|
||||||
print mcu_ide_matrix()
|
print_large_string(mcu_ide_matrix())
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
# Only prints matrix of supported IDEs
|
# Only prints matrix of supported IDEs
|
||||||
|
|
|
@ -24,6 +24,7 @@ from shutil import copyfile
|
||||||
from os.path import isdir, join, exists, split, relpath, splitext, abspath
|
from os.path import isdir, join, exists, split, relpath, splitext, abspath
|
||||||
from os.path import commonprefix, normpath, dirname
|
from os.path import commonprefix, normpath, dirname
|
||||||
from subprocess import Popen, PIPE, STDOUT, call
|
from subprocess import Popen, PIPE, STDOUT, call
|
||||||
|
from math import ceil
|
||||||
import json
|
import json
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
import logging
|
import logging
|
||||||
|
@ -486,3 +487,23 @@ def argparse_dir_not_parent(other):
|
||||||
else:
|
else:
|
||||||
return not_parent
|
return not_parent
|
||||||
return parse_type
|
return parse_type
|
||||||
|
|
||||||
|
def print_large_string(large_string):
|
||||||
|
""" Breaks a string up into smaller pieces before print them
|
||||||
|
|
||||||
|
This is a limitation within Windows, as detailed here:
|
||||||
|
https://bugs.python.org/issue11395
|
||||||
|
|
||||||
|
Positional arguments:
|
||||||
|
large_string - the large string to print
|
||||||
|
"""
|
||||||
|
string_limit = 1000
|
||||||
|
large_string_len = len(large_string)
|
||||||
|
num_parts = int(ceil(float(large_string_len) / float(string_limit)))
|
||||||
|
for string_part in range(num_parts):
|
||||||
|
start_index = string_part * string_limit
|
||||||
|
if string_part == num_parts - 1:
|
||||||
|
print large_string[start_index:]
|
||||||
|
else:
|
||||||
|
end_index = ((string_part + 1) * string_limit) - 1
|
||||||
|
print large_string[start_index:end_index],
|
||||||
|
|
Loading…
Reference in New Issue