1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
from schema import Schema, Optional
method_schema = Schema(
{
"body": str,
Optional("help", default=None): str,
Optional("arguments", default=[]): [str],
Optional("return_policy", default=None): str,
}
)
function_schema = method_schema
class_schema = Schema(
{
Optional("exclude_constructors", default=[]): [int],
Optional("additional_constructors", default=[]): [method_schema],
Optional("additional_methods", default={}): {str: method_schema},
Optional("additional_static_methods", default={}): {str: method_schema},
}
)
template_schema = Schema({Optional("exclude_constructors", default=[]): [int]})
module_schema = Schema(
{
Optional("module_parsing_header", default=""): str,
Optional("parsing_headers", default={}): {str: str},
Optional("include_header_pre_top", default=None): str,
Optional("include_header_pre", default=None): str,
Optional("include_body_pre", default=None): str,
Optional("exclude_functions", default=[]): [str],
Optional("exclude_classes", default=[]): [str],
Optional("exclude_class_templates", default=[]): [str],
Optional("exclude_methods", default=[]): [str],
Optional("exclude_class_template_methods", default=[]): [str],
Optional("exclude_typedefs", default=[]): [str],
Optional("include_body_post", default=None): str,
Optional("include_body_template_post", default=None): str,
Optional("include_header_post", default=None): str,
Optional("template_specializations", default=[]): [str],
Optional("Classes", default={}): {str: class_schema},
Optional("Templates", default={}): {str: template_schema},
Optional("additional_functions", default={}): {str: function_schema},
}
)
platform_settings = Schema(
{
"symbols": str,
Optional("modules", default=[]): [str],
Optional("includes", default=[]): [str],
Optional("prefix", default=None): str,
Optional("parsing_header", default=""): str,
Optional("exclude_classes", default=[]): [str],
}
)
global_schema = Schema(
{
"name": str,
"input_folder": str,
"output_folder": str,
"pats": [str],
"modules": [str],
Optional("exclude", default=[]): [str],
Optional("exceptions", default=[]): [str],
Optional("additional_files", default=[]): [str],
Optional("template_path", default=None): str,
Optional("exclude_namespaces", default=[]): [str],
"module_mapping": str,
"Operators": {str: [str]},
"Extras": {
Optional("include_pre", default=None): str,
Optional("include_post", default=None): str,
},
Optional("byref_types", default=[]): [str],
Optional("byref_types_smart_ptr", default=[]): [str],
Optional("parsing_header", default=""): str,
Optional("Linux", default=None): platform_settings,
Optional("Windows", default=None): platform_settings,
Optional("OSX", default=None): platform_settings,
Optional("FreeBSD", default=None): platform_settings,
Optional("Attributes", default={}): {str: str},
Optional("Modules", default=None): {str: module_schema},
}
)
|