generate_natvis.py: validate version number; cleanup (#3698)

This commit is contained in:
Florian Albrechtskirchinger 2022-08-12 12:13:52 +02:00 committed by GitHub
parent c0dae0f510
commit 32bbd38072
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,11 +4,17 @@ import argparse
import itertools
import jinja2
import os
import re
import sys
def semver(v):
if not re.fullmatch(r'\d+\.\d+\.\d+', v):
raise ValueError
return v
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--version', required=True, help='Library version number')
parser.add_argument('--version', required=True, type=semver, help='Library version number')
parser.add_argument('output', help='Output directory for nlohmann_json.natvis')
args = parser.parse_args()
@ -18,11 +24,11 @@ if __name__ == '__main__':
version = '_v' + args.version.replace('.', '_')
inline_namespaces = []
# generate all combinations of inline namespace names
for n in range(0, len(abi_tags) + 1):
for tags in itertools.combinations(abi_tags, n):
ns = abi_prefix + ''.join(tags)
inline_namespaces += [ns]
inline_namespaces += [ns + version]
inline_namespaces += [ns, ns + version]
namespaces += [f'{namespaces[0]}::{ns}' for ns in inline_namespaces]