def _save_file_handle(self, f: typing.TextIO) -> None: f.write(self.__str__()) f.truncate()
def dump_conditions(file: TextIO) -> None: """Dump docs for all the condition flags, results and metaconditions.""" LOGGER.info('Dumping conditions...') # Delete existing data, after the marker. file.seek(0, io.SEEK_SET) prelude = [] for line in file: if DOC_MARKER in line: break prelude.append(line) file.seek(0, io.SEEK_SET) file.truncate(0) if not prelude: # No marker, blank the whole thing. LOGGER.warning('No intro text before marker!') for line in prelude: file.write(line) file.write(DOC_MARKER + '\n\n') file.write(DOC_META_COND) ALL_META.sort(key=lambda i: i[1]) # Sort by priority for flag_key, priority, func in ALL_META: file.write('#### `{}` ({}):\n\n'.format(flag_key, priority)) dump_func_docs(file, func) file.write('\n') for lookup, name in [ (ALL_FLAGS, 'Flags'), (ALL_RESULTS, 'Results'), ]: print('<!------->', file=file) print('# ' + name, file=file) print('<!------->', file=file) lookup_grouped = defaultdict( list ) # type: Dict[str, List[Tuple[str, Tuple[str, ...], Callable]]] for flag_key, aliases, func in lookup: group = getattr(func, 'group', 'ERROR') if group is None: group = '00special' lookup_grouped[group].append((flag_key, aliases, func)) # Collapse 1-large groups into Ungrouped. for group in list(lookup_grouped): if len(lookup_grouped[group]) < 2: lookup_grouped[''].extend(lookup_grouped[group]) del lookup_grouped[group] if not lookup_grouped['']: del lookup_grouped[''] for header_ind, (group, funcs) in enumerate(sorted(lookup_grouped.items())): if group == '': group = 'Ungrouped Conditions' if header_ind: # Not before the first one... print('---------\n', file=file) if group == '00special': print(DOC_SPECIAL_GROUP, file=file) else: print('### ' + group + '\n', file=file) LOGGER.info('Doing {} group...', group) for flag_key, aliases, func in funcs: print('#### `{}`:\n'.format(flag_key), file=file) if aliases: print('**Aliases:** `' + '`, `'.join(aliases) + '`' + ' \n', file=file) dump_func_docs(file, func) file.write('\n')
def dump_conditions(file: TextIO) -> None: """Dump docs for all the condition flags, results and metaconditions.""" LOGGER.info('Dumping conditions...') # Delete existing data, after the marker. file.seek(0, io.SEEK_SET) prelude = [] for line in file: if DOC_MARKER in line: break prelude.append(line) file.seek(0, io.SEEK_SET) file.truncate(0) if not prelude: # No marker, blank the whole thing. LOGGER.warning('No intro text before marker!') for line in prelude: file.write(line) file.write(DOC_MARKER + '\n\n') file.write(DOC_META_COND) ALL_META.sort(key=lambda i: i[1]) # Sort by priority for flag_key, priority, func in ALL_META: file.write('#### `{}` ({}):\n\n'.format(flag_key, priority)) dump_func_docs(file, func) file.write('\n') for lookup, name in [ (ALL_FLAGS, 'Flags'), (ALL_RESULTS, 'Results'), ]: print('<!------->', file=file) print('# ' + name, file=file) print('<!------->', file=file) lookup_grouped = defaultdict(list) # type: Dict[str, List[Tuple[str, Tuple[str, ...], Callable]]] for flag_key, aliases, func in lookup: group = getattr(func, 'group', 'ERROR') if group is None: group = '00special' lookup_grouped[group].append((flag_key, aliases, func)) # Collapse 1-large groups into Ungrouped. for group in list(lookup_grouped): if len(lookup_grouped[group]) < 2: lookup_grouped[''].extend(lookup_grouped[group]) del lookup_grouped[group] if not lookup_grouped['']: del lookup_grouped[''] for header_ind, (group, funcs) in enumerate(sorted(lookup_grouped.items())): if group == '': group = 'Ungrouped Conditions' if header_ind: # Not before the first one... print('---------\n', file=file) if group == '00special': print(DOC_SPECIAL_GROUP, file=file) else: print('### ' + group + '\n', file=file) LOGGER.info('Doing {} group...', group) for flag_key, aliases, func in funcs: print('#### `{}`:\n'.format(flag_key), file=file) if aliases: print('**Aliases:** `' + '`, `'.join(aliases) + '`' + ' \n', file=file) dump_func_docs(file, func) file.write('\n')