# Copyright (c) ONNX Project Contributors # # SPDX-License-Identifier: Apache-2.0 """Check that C++ files do not hardcode the onnx namespace. Other libraries that statically link with onnx can hide onnx symbols in a private namespace, so the namespace should not be hardcoded. """ from __future__ import annotations import sys def main() -> int: violations = [] for path in sys.argv[1:]: with open(path, encoding="utf-8") as f: for line_no, line in enumerate(f, 1): if "namespace onnx" in line or "onnx::" in line: violations.append(f"{path}:{line_no}: {line.rstrip()}") if violations: print("Hardcoded onnx namespace found:") print("\n".join(violations)) return 1 return 0 if __name__ == "__main__": raise SystemExit(main())