Adding scripts to test if a file is generated.
diff --git a/scripts/python-skywater-pdk/skywater_pdk/files.py b/scripts/python-skywater-pdk/skywater_pdk/files.py
new file mode 100644
index 0000000..6882648
--- /dev/null
+++ b/scripts/python-skywater-pdk/skywater_pdk/files.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# Copyright 2020 The SkyWater PDK Authors.
+#
+# Use of this source code is governed by the Apache 2.0
+# license that can be found in the LICENSE file or at
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# SPDX-License-Identifier: Apache-2.0
+
+
+VERILOG_BASE = [
+ "full.v",
+]
+
+VERILOG_GENERATED = [
+ "blackbox.v",
+ "simple.v",
+]
+
+LIBERTY_BASE = [
+ "wrap.lib",
+]
+LIBERTY_GENERATED = [
+ "cell.lib",
+]
+
+
+
+
+def src_filename(filename):
+ """Returns the source file for a generated file.
+
+ >>> src_filename("")
+
+ """
+ if '.' in filename:
+ basename, extension = filename.split('.', 1)
+ else:
+ basename = filename
+ extension = ''
+
+ if extension.endswith(".v"):
+ if extension in VERILOG_BASE:
+ raise TypeError(
+ "File type {} (from file {}) is not generated!".format(
+ extension, filename))
+ elif extension not in VERILOG_GENERATED:
+ raise NameError(
+ "Unknown file type {} for file {}".format(
+ extension, filename))
+ return "{}.{}".format(basename, "full.v")
+
+ elif extension.endswith(".lib"):
+ if extension not in LIBERTY_BASE:
+ raise TypeError(
+ "File type {} (from file {}) is not generated!".format(
+ extension, filename))
+ elif extension not in LIBERTY_GENERATED:
+ raise NameError(
+ "Unknown file type {} for file {}".format(
+ extension, filename))
+ return "{}.{}".format(basename, ".json")
+
+
+def is_generated(filename):
+ """Determines if a file is generated from another source.
+
+ >>> is_generated("")
+
+ """
+
+ if '.' in filename:
+ basename, extension = filename.split('.', 1)
+ else:
+ basename = filename
+ extension = ''
+
+ if extension.endswith(".v"):
+ if extension in VERILOG_BASE:
+ return False
+ elif extension in VERILOG_GENERATED:
+ return True
+ else:
+ raise NameError(
+ "Unknown file type {} for file {}".format(
+ extension, filename))
+
+ if extension.endswith(".lib"):
+ if extension in LIBERTY_BASE:
+ return False
+ elif extension in LIBERTY_GENERATED:
+ return True
+
+ if extension.endswith(".json"):
+ return True
+ if f.endswith(".png"):
+ return True
+ if f in ('README.rst',):
+ return True
+ return False
+
+
+if __name__ == "__main__":
+ import doctest
+ doctest.testmod()