diff options
author | Manupa Karunaratne <manupa.karunaratne@arm.com> | 2020-07-20 12:05:32 +0100 |
---|---|---|
committer | Manupa Karunaratne <manupa.karunaratne@arm.com> | 2020-07-27 13:28:03 +0100 |
commit | d83d2e11d3dff5031fec513ca2aa22c19c9ea4d8 (patch) | |
tree | 0603685c456b736fe9ed9faf44df65fa89a8af03 /ethosu/vela/errors.py | |
parent | ebe26c7af49ad277df347dac7c4c05959d83f387 (diff) | |
download | ethos-u-vela-d83d2e11d3dff5031fec513ca2aa22c19c9ea4d8.tar.gz |
[EXTAPI] refactor weight compression to be used by an external consumer
*lint
*added unit tests
*added typecheck
*added docstring for the api
Change-Id: Ibd4bc40d4381ac40ad2ea3d500b26c4ec565ab07
Signed-off-by: Manupa Karunaratne <manupa.karunaratne@arm.com>
Diffstat (limited to 'ethosu/vela/errors.py')
-rw-r--r-- | ethosu/vela/errors.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ethosu/vela/errors.py b/ethosu/vela/errors.py index 2c93fbc6..59740aac 100644 --- a/ethosu/vela/errors.py +++ b/ethosu/vela/errors.py @@ -15,6 +15,7 @@ # limitations under the License. # Description: # Defines custom exceptions. +import inspect import sys from .operation import Operation @@ -121,3 +122,20 @@ def TensorError(tens, msg): print("Error: {}".format(data)) sys.exit(1) + + +def typecheck(func): + def wrapper(*args, **kwargs): + fsig = inspect.signature(func) + args_zipped = zip(kwargs.values(), fsig.parameters.keys()) + for actual, expected in args_zipped: + expected_type = fsig.parameters[expected].annotation + actual_type = type(actual) + if expected_type is inspect.Parameter.empty: + raise TypeError("Please provide type info for {}, hint = {}".format(expected, actual_type)) + if expected_type is not actual_type: + raise TypeError("expected : {}, but got {}".format(expected_type, actual_type)) + # Actual execution + return func(*args, **kwargs) + + return wrapper |