1425bb815Sopenharmony_ci# Copyright JS Foundation and other contributors, http://js.foundation 2425bb815Sopenharmony_ci# 3425bb815Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 4425bb815Sopenharmony_ci# you may not use this file except in compliance with the License. 5425bb815Sopenharmony_ci# You may obtain a copy of the License at 6425bb815Sopenharmony_ci# 7425bb815Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 8425bb815Sopenharmony_ci# 9425bb815Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 10425bb815Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS 11425bb815Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12425bb815Sopenharmony_ci# See the License for the specific language governing permissions and 13425bb815Sopenharmony_ci# limitations under the License. 14425bb815Sopenharmony_ci 15425bb815Sopenharmony_ci 16425bb815Sopenharmony_ciLICENSE = """/* Copyright JS Foundation and other contributors, http://js.foundation 17425bb815Sopenharmony_ci * 18425bb815Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 19425bb815Sopenharmony_ci * you may not use this file except in compliance with the License. 20425bb815Sopenharmony_ci * You may obtain a copy of the License at 21425bb815Sopenharmony_ci * 22425bb815Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 23425bb815Sopenharmony_ci * 24425bb815Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 25425bb815Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS 26425bb815Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 27425bb815Sopenharmony_ci * See the License for the specific language governing permissions and 28425bb815Sopenharmony_ci * limitations under the License. 29425bb815Sopenharmony_ci */""" 30425bb815Sopenharmony_ci 31425bb815Sopenharmony_ci 32425bb815Sopenharmony_cidef format_code(code, indent, digit_number=4): 33425bb815Sopenharmony_ci def regroup(list_to_group, num): 34425bb815Sopenharmony_ci return [list_to_group[i:i+num] for i in range(0, len(list_to_group), num)] 35425bb815Sopenharmony_ci 36425bb815Sopenharmony_ci def hex_format(char, digit_number): 37425bb815Sopenharmony_ci if isinstance(char, str): 38425bb815Sopenharmony_ci char = ord(char) 39425bb815Sopenharmony_ci 40425bb815Sopenharmony_ci return ("0x{:0%sx}" % digit_number).format(char) 41425bb815Sopenharmony_ci 42425bb815Sopenharmony_ci lines = [] 43425bb815Sopenharmony_ci 44425bb815Sopenharmony_ci nums_per_line = 10 45425bb815Sopenharmony_ci width = nums_per_line * (digit_number + 4) 46425bb815Sopenharmony_ci # convert all characters to hex format 47425bb815Sopenharmony_ci converted_code = [hex_format(char, digit_number) for char in code] 48425bb815Sopenharmony_ci # 10 hex number per line 49425bb815Sopenharmony_ci for line in regroup(", ".join(converted_code), width): 50425bb815Sopenharmony_ci lines.append((' ' * indent) + line.strip()) 51425bb815Sopenharmony_ci return "\n".join(lines) 52