def write_sql(io): from vectordatasource.meta import find_yaml_path yaml_path = find_yaml_path() for output_fn, make_fn_name, force_type, return_type in ( (output_kind, make_function_name_props, None, 'JSON'), (output_min_zoom, make_function_name_min_zoom, float, 'REAL')): layer_result = parse_layers(yaml_path, output_fn, make_fn_name) assert isinstance(layer_result, LayerParseResult) for function_data in layer_result.layer_data: assert isinstance(function_data, FunctionData) ast_fn = function_data.ast ast_fn = GeomTypeTransformer().visit(ast_fn) visitor = SQLVisitor(io, force_type, return_type) visitor.visit(ast_fn) for layer, tables in LAYER_TABLES.items(): for table in tables: for calc, return_type in [('json', 'JSON'), ('min_zoom', 'REAL')]: print_adaptor(io, layer, table, calc, return_type)
def parse_layers_min_zoom(yaml_path): from vectordatasource.meta.python import parse_layers, output_min_zoom, \ make_function_name_min_zoom return parse_layers(yaml_path, output_min_zoom, make_function_name_min_zoom)
def parse_layers_props(yaml_path): from vectordatasource.meta.python import parse_layers, output_kind, \ make_function_name_props return parse_layers(yaml_path, output_kind, make_function_name_props)
def parse_layers_min_zoom(yaml_path): from vectordatasource.meta.python import parse_layers, output_min_zoom, \ make_function_name_min_zoom return parse_layers( yaml_path, output_min_zoom, make_function_name_min_zoom)
def parse_layers_props(yaml_path): from vectordatasource.meta.python import parse_layers, output_kind, \ make_function_name_props return parse_layers(yaml_path, output_kind, make_function_name_props)