31 """Returns a stringified GN equivalent of a Python value.
32
33 allow_dicts indicates if this function will allow converting dictionaries
34 to GN scopes. This is only possible at the top level, you can't nest a
35 GN scope in a list, so this should be set to False for recursive calls."""
36 if isinstance(value, str) or isinstance(value, unicode):
37 if value.find('\n') >= 0:
38 raise GNException("Trying to print a string with a newline in it.")
39 return '"' +
''.
join(_TranslateToGnChars(value)) +
'"'
40
41 if isinstance(value, list):
43
44 if isinstance(value, dict):
45 if not allow_dicts:
46 raise GNException("Attempting to recursively print a dictionary.")
47 result = ""
48 for key in value:
49 if not isinstance(key, str):
50 raise GNException("Dictionary key is not a string.")
51 result +=
"%s = %s\n" % (key,
ToGNString(value[key],
False))
52 return result
53
54 if isinstance(value, int):
55 return str(value)
56
57 raise GNException("Unsupported type %s (value %s) when printing to GN." %
def ToGNString(value, allow_dicts=True)
static SkString join(const CommandLineFlags::StringArray &)