back.pysim: fix completely broken codegen for Switch.
[nmigen.git] / nmigen / tools.py
index 4df7958ca790608dd813ec85c954035a779d9c1a..87b3377318aca6c6de4f3939b6fbb3ed07414ff5 100644 (file)
@@ -1,7 +1,9 @@
 from collections import Iterable
+import functools
+import warnings
 
 
-__all__ = ["flatten", "union", "log2_int", "bits_for"]
+__all__ = ["flatten", "union", "log2_int", "bits_for", "deprecated"]
 
 
 def flatten(i):
@@ -40,3 +42,13 @@ def bits_for(n, require_sign_bit=False):
     if require_sign_bit:
         r += 1
     return r
+
+
+def deprecated(message, stacklevel=2):
+    def decorator(f):
+        @functools.wraps(f)
+        def wrapper(*args, **kwargs):
+            warnings.warn(message, DeprecationWarning, stacklevel=stacklevel)
+            return f(*args, **kwargs)
+        return wrapper
+    return decorator