|  | # Copyright lowRISC contributors. | 
|  | # Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | from textwrap import fill | 
|  |  | 
|  | LICENSE_BANNER = ( | 
|  | "Copyright lowRISC contributors.\n" | 
|  | "Licensed under the Apache License, Version 2.0, see LICENSE for details.\n" | 
|  | "SPDX-License-Identifier: Apache-2.0") | 
|  |  | 
|  | AUTOGEN_BANNER = ( | 
|  | "THIS FILE HAS BEEN GENERATED, DO NOT EDIT MANUALLY. COMMAND:\n{command}") | 
|  |  | 
|  | MAX_LEN = 70 | 
|  |  | 
|  |  | 
|  | def get_autogen_banner(command: str, comment: str = "") -> str: | 
|  | """Returns a commented out auto-generated code warning banner. | 
|  |  | 
|  | command is a fully formatted string representing what command was used | 
|  | to auto-generate the source. | 
|  | comment is the style of comment supported by the file type. | 
|  | """ | 
|  | command = fill(command.strip(), | 
|  | width=MAX_LEN, | 
|  | break_long_words=False, | 
|  | break_on_hyphens=False) | 
|  | text = AUTOGEN_BANNER.format(command=command) | 
|  | return apply_comment(text, comment) | 
|  |  | 
|  |  | 
|  | def get_license_banner(comment: str = "") -> str: | 
|  | """Returns a commented out license banner. | 
|  |  | 
|  | comment is the style of comment supported by the source file type. | 
|  | """ | 
|  | return apply_comment(LICENSE_BANNER, comment) | 
|  |  | 
|  |  | 
|  | def apply_comment(text: str, comment: str) -> str: | 
|  | """Applies comment to a text paragraph. | 
|  |  | 
|  | The returned string terminates in a newline. | 
|  | """ | 
|  | if comment: | 
|  | comment += " " | 
|  | return "\n".join([f"{comment}{line}" for line in text.split("\n")]) + "\n" |