def gen_trace_type_shard( fm: FileManager, native_functions: Sequence[NativeFunction], suffix: str ) -> None: fm.write_with_template('TraceType%s.cpp' % suffix, 'TraceType.cpp', lambda: { 'generated_comment': f'@generated from {fm.template_dir}/TraceType.cpp', 'trace_method_definitions': list(mapMaybe(method_definition, native_functions)), 'trace_wrapper_registrations': list(mapMaybe(method_registration, native_functions)), })
def gen_variable_factories(out: str, native_yaml_path: str, template_path: str) -> None: native_functions = parse_native_yaml(native_yaml_path) fm = FileManager(install_dir=out, template_dir=template_path, dry_run=False) fm.write_with_template('variable_factories.h', 'variable_factories.h', lambda: { 'generated_comment': '@' + f'generated from {fm.template_dir}/variable_factories.h', 'function_definitions': list(mapMaybe(process_function, native_functions)), })
def gen_differentiable_inputs(f: NativeFunction) -> List[DifferentiableInput]: return list(mapMaybe(gen_differentiable_input, f.func.arguments.non_out))