def makeRegistry(self): try: import lxml.etree as etree HAS_LXML = True except ImportError: HAS_LXML = False if not HAS_LXML: return super().makeRegistry() registryFile = str(SPECIFICATION_DIR / 'registry/xr.xml') registry = Registry() registry.filename = registryFile registry.loadElementTree(etree.parse(registryFile)) return registry
def makeRegistry(self): # This tries to override and use lxml instead of the built-in etree. # lxml isn't suitable for generation, but it's fine for this checking, # and it provides file line info which is useful in messages. try: import lxml.etree as etree HAS_LXML = True except ImportError: HAS_LXML = False if not HAS_LXML: return super().makeRegistry() registryFile = str(SPECIFICATION_DIR / 'registry/xr.xml') registry = Registry() registry.filename = registryFile registry.loadElementTree(etree.parse(registryFile)) return registry
if args.errfile: errWarn = open(args.errfile, 'w', encoding='utf-8') else: errWarn = sys.stderr if args.diagfile: diag = open(args.diagfile, 'w', encoding='utf-8') else: diag = None # Create the API generator & generator options (gen, options) = genTarget(args) # Create the registry object with the specified generator and generator # options. The options are set before XML loading as they may affect it. reg = Registry(gen, options) # Parse the specified registry XML into an ElementTree object startTimer(args.time) tree = etree.parse(args.registry) endTimer(args.time, '* Time to make ElementTree =') # Load the XML tree into the registry object startTimer(args.time) reg.loadElementTree(tree) endTimer(args.time, '* Time to parse ElementTree =') if args.validate: reg.validateGroups() if args.dump:
metavar='target', nargs='?', help='Specify target') parser.add_argument('-quiet', action='store_true', default=False, help='Suppress script output during normal execution.') args = parser.parse_args() # This splits arguments which are space-separated lists args.feature = [name for arg in args.feature for name in arg.split()] args.extension = [name for arg in args.extension for name in arg.split()] # Load & parse registry reg = Registry() startTimer(args.time) reg.loadFile(args.registry) endTimer(args.time, '* Time to make and parse ElementTree =') if args.validate: reg.validateGroups() if args.dump: write('* Dumping registry to regdump.txt', file=sys.stderr) reg.dumpReg(filehandle=open('regdump.txt', 'w', encoding='utf-8')) # create error/warning & diagnostic files errWarn = open(args.errfile, 'w', encoding='utf-8') if args.errfile else sys.stderr
baseDir = results.baseDir # Dictionary of pages & aliases pages = {} for file in results.files: d = genRef(file, baseDir) pages.update(d) # Now figure out which pages *weren't* generated from the spec. # This relies on the dictionaries of API constructs in the api module. if not results.noauto: registry = Registry() registry.loadFile(results.registry) if conventions.write_refpage_include: # Only extensions with a supported="..." attribute in this set # will be considered for extraction/generation. supported_strings = set((conventions.xml_supported_name_of_api, )) ext_names = set(k for k, v in registry.extdict.items() if v.supported in supported_strings) desired_extensions = ext_names.intersection(set(results.extension)) for prefix in conventions.extension_index_prefixes: # Splits up into chunks, sorted within each chunk. filtered_extensions = sorted([ name for name in desired_extensions if name.startswith(prefix) and name not in extensions
def makeRegistry(self): root = Path(__file__).resolve().parent.parent.parent registryFile = str(root / 'specification/registry/xr.xml') registry = Registry() registry.loadFile(registryFile) return registry
def makeRegistry(self): registryFile = str(ROOT / 'xml/vk.xml') registry = Registry() registry.loadFile(registryFile) return registry
def __init__(self): self._step_matchers = set() self._conflicting_steps = set() self._variable_matchers = {} self._model_factories = {} self._inverse = Registry() # XXX caching?