|
7 | 7 | from src.generators.util_generators.vector_generator import VectorGenerator
|
8 | 8 | from src.generators.util_generators.byte_array_generator import ByteArrayGenerator
|
9 | 9 | from src.generators.util_generators.static_method_generator import StaticMethodGenerator
|
| 10 | +from src.generators.util_generators.version_string_generator import VersionStringGenerator |
10 | 11 |
|
11 | 12 | import src.conversion_helper
|
12 | 13 |
|
13 | 14 |
|
14 | 15 | def parse_header() -> LightningHeaderParser:
|
15 |
| - header_file = LightningHeaderParser.get_file() |
| 16 | + header_file = LightningHeaderParser.get_file() |
16 | 17 |
|
17 |
| - header_parser = LightningHeaderParser() |
18 |
| - header_parser.parse_header_file(header_file) |
19 |
| - return header_parser |
| 18 | + header_parser = LightningHeaderParser() |
| 19 | + header_parser.parse_header_file(header_file) |
| 20 | + return header_parser |
20 | 21 |
|
21 | 22 |
|
22 | 23 | def generate_binding_methods(parser: LightningHeaderParser):
|
23 |
| - # firstly, let's generate the vector utilities |
24 |
| - byte_array_generator = ByteArrayGenerator() |
25 |
| - vector_generator = VectorGenerator() |
26 |
| - static_method_generator = StaticMethodGenerator() |
27 |
| - |
28 |
| - byte_arrays = sorted(parser.byte_arrays) |
29 |
| - for current_byte_array_type in byte_arrays: |
30 |
| - byte_array_details = parser.type_details[current_byte_array_type] |
31 |
| - byte_array_generator.generate_byte_array(current_byte_array_type, byte_array_details) |
32 |
| - byte_array_generator.generate_tuple_converter(80) |
33 |
| - byte_array_generator.finalize() |
34 |
| - |
35 |
| - vectors = sorted(parser.vec_types) |
36 |
| - for current_vector in vectors: |
37 |
| - if current_vector == 'LDKTransaction': |
38 |
| - continue |
39 |
| - vector_type_details = parser.type_details[current_vector] |
40 |
| - vector_generator.generate_vector(current_vector, vector_type_details) |
41 |
| - vector_generator.finalize() |
42 |
| - |
43 |
| - static_method_generator.generate_static_methods(parser.static_methods) |
44 |
| - static_method_generator.finalize() |
| 24 | + # firstly, let's generate the vector utilities |
| 25 | + byte_array_generator = ByteArrayGenerator() |
| 26 | + vector_generator = VectorGenerator() |
| 27 | + static_method_generator = StaticMethodGenerator() |
| 28 | + version_string_generator = VersionStringGenerator() |
| 29 | + |
| 30 | + byte_arrays = sorted(parser.byte_arrays) |
| 31 | + for current_byte_array_type in byte_arrays: |
| 32 | + byte_array_details = parser.type_details[current_byte_array_type] |
| 33 | + byte_array_generator.generate_byte_array(current_byte_array_type, byte_array_details) |
| 34 | + byte_array_generator.generate_tuple_converter(80) |
| 35 | + byte_array_generator.finalize() |
| 36 | + |
| 37 | + vectors = sorted(parser.vec_types) |
| 38 | + for current_vector in vectors: |
| 39 | + if current_vector == 'LDKTransaction': |
| 40 | + continue |
| 41 | + vector_type_details = parser.type_details[current_vector] |
| 42 | + vector_generator.generate_vector(current_vector, vector_type_details) |
| 43 | + vector_generator.finalize() |
| 44 | + |
| 45 | + static_method_generator.generate_static_methods(parser.static_methods) |
| 46 | + static_method_generator.finalize() |
| 47 | + |
| 48 | + version_string_generator.obtain_version_string() |
| 49 | + version_string_generator.finalize() |
45 | 50 |
|
46 | 51 |
|
47 | 52 | def generate_opaque_struct_wrappers(parser: LightningHeaderParser, returned_trait_instances=set()):
|
48 |
| - opaque_struct_generator = OpaqueStructGenerator() |
| 53 | + opaque_struct_generator = OpaqueStructGenerator() |
49 | 54 |
|
50 |
| - opaque_structs = parser.opaque_structs |
51 |
| - for current_struct in opaque_structs: |
52 |
| - current_struct_details = parser.type_details[current_struct] |
53 |
| - opaque_struct_generator.generate_opaque_struct(current_struct, current_struct_details, all_type_details=parser.type_details, trait_structs=parser.trait_structs, |
54 |
| - returned_trait_instances=returned_trait_instances) |
| 55 | + opaque_structs = parser.opaque_structs |
| 56 | + for current_struct in opaque_structs: |
| 57 | + current_struct_details = parser.type_details[current_struct] |
| 58 | + opaque_struct_generator.generate_opaque_struct( |
| 59 | + current_struct, |
| 60 | + current_struct_details, |
| 61 | + all_type_details=parser.type_details, |
| 62 | + trait_structs=parser.trait_structs, |
| 63 | + returned_trait_instances=returned_trait_instances |
| 64 | + ) |
55 | 65 |
|
56 | 66 |
|
57 | 67 | def generate_tuple_wrappers(parser: LightningHeaderParser):
|
58 |
| - tuple_generator = TupleGenerator() |
| 68 | + tuple_generator = TupleGenerator() |
59 | 69 |
|
60 |
| - tuples = parser.tuple_types |
61 |
| - for current_tuple in tuples: |
62 |
| - current_tuple_details = parser.type_details[current_tuple] |
63 |
| - tuple_generator.generate_tuple(current_tuple, current_tuple_details, all_type_details=parser.type_details) |
| 70 | + tuples = parser.tuple_types |
| 71 | + for current_tuple in tuples: |
| 72 | + current_tuple_details = parser.type_details[current_tuple] |
| 73 | + tuple_generator.generate_tuple(current_tuple, current_tuple_details, all_type_details=parser.type_details) |
64 | 74 |
|
65 | 75 |
|
66 | 76 | def generate_result_wrappers(parser: LightningHeaderParser):
|
67 |
| - result_generator = ResultGenerator() |
| 77 | + result_generator = ResultGenerator() |
68 | 78 |
|
69 |
| - results = parser.result_types |
70 |
| - for current_result in results: |
71 |
| - current_result_details = parser.type_details[current_result] |
72 |
| - result_generator.generate_result(current_result, current_result_details, all_type_details=parser.type_details) |
| 79 | + results = parser.result_types |
| 80 | + for current_result in results: |
| 81 | + current_result_details = parser.type_details[current_result] |
| 82 | + result_generator.generate_result(current_result, current_result_details, all_type_details=parser.type_details) |
73 | 83 |
|
74 | 84 |
|
75 | 85 | def generate_option_wrappers(parser: LightningHeaderParser):
|
76 |
| - option_generator = OptionGenerator() |
| 86 | + option_generator = OptionGenerator() |
77 | 87 |
|
78 |
| - options = parser.option_types |
79 |
| - for current_option in options: |
80 |
| - current_option_details = parser.type_details[current_option] |
81 |
| - option_generator.generate_option(current_option, current_option_details, all_type_details=parser.type_details) |
| 88 | + options = parser.option_types |
| 89 | + for current_option in options: |
| 90 | + current_option_details = parser.type_details[current_option] |
| 91 | + option_generator.generate_option(current_option, current_option_details, all_type_details=parser.type_details) |
82 | 92 |
|
83 | 93 |
|
84 | 94 | def generate_trait_placeholders(parser: LightningHeaderParser, returned_trait_instances=set()):
|
85 |
| - trait_generator = TraitGenerator() |
| 95 | + trait_generator = TraitGenerator() |
86 | 96 |
|
87 |
| - traits = parser.trait_structs |
88 |
| - for current_trait in traits: |
89 |
| - current_trait_details = parser.type_details[current_trait] |
90 |
| - trait_generator.generate_trait(current_trait, current_trait_details) |
| 97 | + traits = parser.trait_structs |
| 98 | + for current_trait in traits: |
| 99 | + current_trait_details = parser.type_details[current_trait] |
| 100 | + trait_generator.generate_trait(current_trait, current_trait_details) |
91 | 101 |
|
92 | 102 |
|
93 | 103 | def initialize_conversion_helper_knowledge(parser: LightningHeaderParser):
|
94 |
| - src.conversion_helper.ConversionHelper.trait_structs = parser.trait_structs |
| 104 | + src.conversion_helper.ConversionHelper.trait_structs = parser.trait_structs |
95 | 105 |
|
96 | 106 |
|
97 | 107 | def generate_sdk():
|
98 |
| - returned_trait_instances = set() |
99 |
| - parser = parse_header() |
| 108 | + returned_trait_instances = set() |
| 109 | + parser = parse_header() |
100 | 110 |
|
101 |
| - # initialize_conversion_helper_knowledge(parser) |
| 111 | + # initialize_conversion_helper_knowledge(parser) |
102 | 112 |
|
103 |
| - generate_binding_methods(parser) |
104 |
| - generate_opaque_struct_wrappers(parser, returned_trait_instances) |
105 |
| - generate_tuple_wrappers(parser) |
106 |
| - generate_result_wrappers(parser) |
107 |
| - generate_option_wrappers(parser) |
108 |
| - generate_trait_placeholders(parser, returned_trait_instances) |
| 113 | + generate_binding_methods(parser) |
| 114 | + generate_opaque_struct_wrappers(parser, returned_trait_instances) |
| 115 | + generate_tuple_wrappers(parser) |
| 116 | + generate_result_wrappers(parser) |
| 117 | + generate_option_wrappers(parser) |
| 118 | + generate_trait_placeholders(parser, returned_trait_instances) |
109 | 119 |
|
110 |
| - # print('\n\nUtilized cloneable types:\n', '\n '.join(sorted(list(dict.fromkeys(src.conversion_helper.detected_cloneable_types)))), '\n\n') |
| 120 | + # print('\n\nUtilized cloneable types:\n', '\n '.join(sorted(list(dict.fromkeys(src.conversion_helper.detected_cloneable_types)))), '\n\n') |
111 | 121 |
|
112 |
| - undetected_cloneables = src.conversion_helper.cloneable_types - src.conversion_helper.detected_cloneable_types # print('\n\nUnutilized cloneable types:\n', '\n '.join(sorted(list(dict.fromkeys(undetected_cloneables)))), '\n\n') |
| 122 | + undetected_cloneables = src.conversion_helper.cloneable_types - src.conversion_helper.detected_cloneable_types # print('\n\nUnutilized cloneable types:\n', '\n '.join(sorted(list(dict.fromkeys(undetected_cloneables)))), '\n\n') |
0 commit comments