# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import os from typing import List def add_header_to_python_files(directory_path, header_content, extensions: List[str] = [".py"]): """ Inserts a specified header at the beginning of every .py file in the given directory and its subdirectories. Args: directory_path (str): The path to the directory to process. header_content (str): The content of the header to insert. Ensure it includes newlines for proper formatting. """ for root, _, files in os.walk(directory_path): for file_name in files: if file_name == '.venv': continue for extension in extensions: if file_name.endswith(extension): file_path = os.path.join(root, file_name) try: with open(file_path, 'r+', encoding='utf-8') as f: original_content = f.read() if original_content.startswith(header_content): print(f"Header already exists in: {file_path}") continue f.seek(0) # Move cursor to the beginning of the file f.write(header_content + original_content) print(f"Header added to: {file_path}") except IOError as e: print(f"Error processing {file_path}: {e}") if __name__ == "__main__": target_directory = "../frontend" # Replace with your target directory # Define your header content here. Use triple quotes for multi-line strings. # Ensure a newline character at the end of the header for separation. custom_header = """/* * SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ """ add_header_to_python_files(target_directory, custom_header, extensions=[".js", ".ts", ".tsx", ".jsx", ".css"])