diff options
author | Eric Kunze <eric.kunze@arm.com> | 2023-01-09 11:16:51 -0800 |
---|---|---|
committer | Eric Kunze <eric.kunze@arm.com> | 2023-05-15 11:49:12 -0700 |
commit | 42085e36b0b47209ca767a3b8300f689cb6ec0bf (patch) | |
tree | a636f453903022192ea5ba6733e4129d4051f8f4 /tools/genspec.py | |
parent | 5b936a3c5c335baab178edecf4c1da09b9a86707 (diff) | |
download | specification-42085e36b0b47209ca767a3b8300f689cb6ec0bf.tar.gz |
Add TOSA rank requirements to TOSA XML
Adds new optional element to argument 'rank'
- Must supply minimum and maximum rank
- Integer values or the level based "MAX_RANK"
- trailing modifiers allowed for "MAX_RANK"
- Displays in a new column in the document
- Document generation validates rank against specified shape
Change-Id: I507dc51bfe012d3230af43103c6c423a6f1e92b5
Signed-off-by: Eric Kunze <eric.kunze@arm.com>
Diffstat (limited to 'tools/genspec.py')
-rwxr-xr-x | tools/genspec.py | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/tools/genspec.py b/tools/genspec.py index f495296..c64f05b 100755 --- a/tools/genspec.py +++ b/tools/genspec.py @@ -3,7 +3,6 @@ import os import tosa - class TOSASpecAsciidocGenerator: def __init__(self, spec): self.spec = spec @@ -19,8 +18,9 @@ class TOSASpecAsciidocGenerator: def generate_operator(self, op, file): file.write("\n*Arguments:*\n") + file.write("[cols='2,1,1,1,2,4']") file.write("\n|===\n") - file.write("|Argument|Type|Name|Shape|Description\n\n") + file.write("|Argument|Type|Name|Shape|Rank|Description\n\n") for arg in op.arguments: cats = arg.categories if len(cats) > 1: @@ -33,8 +33,15 @@ class TOSASpecAsciidocGenerator: sep = " " else: cattext = cats[0].name.title() + if len(arg.rank) > 0: + if (arg.rank[0] == arg.rank[1]): + rank = f'{arg.rank[0]}' + else: + rank = f'{arg.rank[0]} to {arg.rank[1]}' + else: + rank = "" file.write( - f"|{cattext}|{arg.type}|{arg.name}|{arg.shape}|{arg.description}\n" + f"|{cattext}|{arg.type}|{arg.name}|{arg.shape}|{rank}|{arg.description}\n" ) file.write("|===\n") if op.typesupports: @@ -112,7 +119,11 @@ if __name__ == "__main__": parser.add_argument("--outdir", required=True, help="Output directory") args = parser.parse_args() - spec = tosa.TOSASpec(args.xml) + try: + spec = tosa.TOSASpec(args.xml) + except RuntimeError as e: + print(f"Failure reading/validating XML spec: {str(e)}") + exit(1) generator = TOSASpecAsciidocGenerator(spec) generator.generate(args.outdir) |