HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //proc/thread-self/root/snap/gnome-46-2404/current/usr/share/vulkan/registry/stripAPI.py
#!/usr/bin/env python3
#
# Copyright 2023 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0

import argparse
import xml.etree.ElementTree as etree
from reg import stripNonmatchingAPIs

if __name__ == '__main__':
    parser = argparse.ArgumentParser(prog='stripAPI',
                formatter_class=argparse.RawDescriptionHelpFormatter,
                description='''\
Filters out elements with non-matching explicit 'api' attributes from API XML.
To remove Vulkan SC-only elements from the combined API XML:
    python3 scripts/stripAPI.py -input xml/vk.xml -output vulkan-only.xml -keepAPI vulkan
To remove Vulkan-only elements:
    python3 scripts/stripAPI.py -input xml/vk.xml -output vulkansc-only.xml -keepAPI vulkansc
If you are parsing the XML yourself but using the xml.etree package, the
equivalent runtime code is:
   import reg
   reg.stripNonmatchingAPIs(tree.getroot(), keepAPI, actuallyDelete=True)
where 'tree' is an ElementTree created from the XML file using
    etree.parse(filename)''')

    parser.add_argument('-input', action='store',
                        required=True,
                        help='Specify input registry XML')
    parser.add_argument('-output', action='store',
                        required=True,
                        help='Specify output registry XML')
    parser.add_argument('-keepAPI', action='store',
                        default=None,
                        help='Specify API name whose \'api\' tags are kept')

    args = parser.parse_args()

    tree = etree.parse(args.input)
    if args.keepAPI is not None:
        stripNonmatchingAPIs(tree.getroot(), args.keepAPI, actuallyDelete = True)
    tree.write(args.output)