|
| 1 | +import keyword |
| 2 | +import re |
| 3 | + |
| 4 | + |
| 5 | +def py_types_encode_decode(t): |
| 6 | + if t not in _py_types: |
| 7 | + raise NotImplementedError("Missing type Mapping") |
| 8 | + |
| 9 | + |
| 10 | +_pattern1 = re.compile("(.)([A-Z][a-z]+)") |
| 11 | +_pattern2 = re.compile("([a-z0-9])([A-Z])") |
| 12 | + |
| 13 | + |
| 14 | +def py_param_name(type_name): |
| 15 | + type_name = _pattern1.sub(r"\1_\2", type_name) |
| 16 | + type_name = _pattern2.sub(r"\1_\2", type_name).lower() |
| 17 | + if keyword.iskeyword(type_name): |
| 18 | + return "_%s" % type_name |
| 19 | + return type_name |
| 20 | + |
| 21 | + |
| 22 | +def py_get_import_path_holders(param_type): |
| 23 | + return import_paths.get(param_type, []) |
| 24 | + |
| 25 | + |
| 26 | +py_ignore_service_list = [7, 9, 10, 11, 12, 19, 20, 22, 24, 25, 26, 27, 30, 31, 32, 33, 34] |
| 27 | + |
| 28 | + |
| 29 | +class ImportPathHolder: |
| 30 | + def __init__(self, name, path): |
| 31 | + self.name = name |
| 32 | + self.path = path |
| 33 | + |
| 34 | + def get_import_statement(self): |
| 35 | + return "from hazelcast.%s import %s" % (self.path, self.name) |
| 36 | + |
| 37 | + |
| 38 | +class PathHolders: |
| 39 | + DataCodec = ImportPathHolder("DataCodec", "protocol.builtin") |
| 40 | + ByteArrayCodec = ImportPathHolder("ByteArrayCodec", "protocol.builtin") |
| 41 | + LongArrayCodec = ImportPathHolder("LongArrayCodec", "protocol.builtin") |
| 42 | + Address = ImportPathHolder("Address", "core") |
| 43 | + AddressCodec = ImportPathHolder("AddressCodec", "protocol.codec.custom.address_codec") |
| 44 | + ErrorHolder = ImportPathHolder("ErrorHolder", "protocol") |
| 45 | + ErrorHolderCodec = ImportPathHolder("ErrorHolderCodec", "protocol.codec.custom.error_holder_codec") |
| 46 | + StackTraceElement = ImportPathHolder("StackTraceElement", "protocol") |
| 47 | + StackTraceElementCodec = ImportPathHolder("StackTraceElementCodec", "protocol.codec.custom.stack_trace_element_codec") |
| 48 | + SimpleEntryView = ImportPathHolder("SimpleEntryView", "core") |
| 49 | + SimpleEntryViewCodec = ImportPathHolder("SimpleEntryViewCodec", "protocol.codec.custom.simple_entry_view_codec") |
| 50 | + DistributedObjectInfo = ImportPathHolder("DistributedObjectInfo", "core") |
| 51 | + DistributedObjectInfoCodec = ImportPathHolder("DistributedObjectInfoCodec", "protocol.codec.custom.distributed_object_info_codec") |
| 52 | + MemberInfo = ImportPathHolder("MemberInfo", "core") |
| 53 | + MemberInfoCodec = ImportPathHolder("MemberInfoCodec", "protocol.codec.custom.member_info_codec") |
| 54 | + MemberVersion = ImportPathHolder("MemberVersion", "core") |
| 55 | + MemberVersionCodec = ImportPathHolder("MemberVersionCodec", "protocol.codec.custom.member_version_codec") |
| 56 | + StringCodec = ImportPathHolder("StringCodec", "protocol.builtin",) |
| 57 | + ListLongCodec = ImportPathHolder("ListLongCodec", "protocol.builtin") |
| 58 | + ListIntegerCodec = ImportPathHolder("ListIntegerCodec", "protocol.builtin") |
| 59 | + ListUUIDCodec = ImportPathHolder("ListUUIDCodec", "protocol.builtin") |
| 60 | + ListDataCodec = ImportPathHolder("ListDataCodec", "protocol.builtin") |
| 61 | + ListMultiFrameCodec = ImportPathHolder("ListMultiFrameCodec", "protocol.builtin") |
| 62 | + EntryListCodec = ImportPathHolder("EntryListCodec", "protocol.builtin") |
| 63 | + EntryListLongByteArrayCodec = ImportPathHolder("EntryListLongByteArrayCodec", "protocol.builtin") |
| 64 | + EntryListIntegerUUIDCodec = ImportPathHolder("EntryListIntegerUUIDCodec", "protocol.builtin") |
| 65 | + EntryListIntegerLongCodec = ImportPathHolder("EntryListIntegerLongCodec", "protocol.builtin") |
| 66 | + EntryListIntegerIntegerCodec = ImportPathHolder("EntryListIntegerIntegerCodec", "protocol.builtin") |
| 67 | + EntryListUUIDLongCodec = ImportPathHolder("EntryListUUIDLongCodec", "protocol.builtin") |
| 68 | + EntryListUUIDUUIDCodec = ImportPathHolder("EntryListUUIDUUIDCodec", "protocol.builtin") |
| 69 | + EntryListUUIDListIntegerCodec = ImportPathHolder("EntryListUUIDListIntegerCodec", "protocol.builtin") |
| 70 | + MapCodec = ImportPathHolder("MapCodec", "protocol.builtin") |
| 71 | + CodecUtil = ImportPathHolder("CodecUtil", "protocol.builtin") |
| 72 | + IndexConfig = ImportPathHolder("IndexConfig", "config") |
| 73 | + IndexConfigCodec = ImportPathHolder("IndexConfigCodec", "protocol.codec.custom.index_config_codec") |
| 74 | + BitmapIndexOptions = ImportPathHolder("BitmapIndexOptions", "config") |
| 75 | + BitmapIndexOptionsCodec = ImportPathHolder("BitmapIndexOptionsCodec", "protocol.codec.custom.bitmap_index_options_codec") |
| 76 | + PagingPredicateHolder = ImportPathHolder("PagingPredicateHolder", "protocol") |
| 77 | + PagingPredicateHolderCodec = ImportPathHolder("PagingPredicateHolderCodec", "protocol.codec.custom.paging_predicate_holder_codec") |
| 78 | + AnchorDataListHolder = ImportPathHolder("AnchorDataListHolder", "protocol") |
| 79 | + AnchorDataListHolderCodec = ImportPathHolder("AnchorDataListHolderCodec", "protocol.codec.custom.anchor_data_list_holder_codec") |
| 80 | + EndpointQualifier = ImportPathHolder("EndpointQualifier", "protocol") |
| 81 | + EndpointQualifierCodec = ImportPathHolder("EndpointQualifierCodec", "protocol.codec.custom.endpoint_qualifier_codec") |
| 82 | + |
| 83 | + |
| 84 | +import_paths = { |
| 85 | + "CodecUtil": PathHolders.CodecUtil, |
| 86 | + "longArray": [PathHolders.LongArrayCodec], |
| 87 | + "byteArray": [PathHolders.ByteArrayCodec], |
| 88 | + "String": [PathHolders.StringCodec], |
| 89 | + "Data": [PathHolders.DataCodec], |
| 90 | + "Address": [PathHolders.Address, PathHolders.AddressCodec], |
| 91 | + "ErrorHolder": [PathHolders.ErrorHolder, PathHolders.ErrorHolderCodec], |
| 92 | + "StackTraceElement": [PathHolders.StackTraceElement, PathHolders.StackTraceElementCodec], |
| 93 | + "SimpleEntryView": [PathHolders.SimpleEntryView, PathHolders.SimpleEntryViewCodec], |
| 94 | + "DistributedObjectInfo": [PathHolders.DistributedObjectInfo, PathHolders.DistributedObjectInfoCodec], |
| 95 | + "MemberInfo": [PathHolders.MemberInfo, PathHolders.MemberInfoCodec], |
| 96 | + "MemberVersion": [PathHolders.MemberVersion, PathHolders.MemberVersionCodec], |
| 97 | + "List_Long": [PathHolders.ListLongCodec], |
| 98 | + "List_Integer": [PathHolders.ListIntegerCodec], |
| 99 | + "List_UUID": [PathHolders.ListUUIDCodec], |
| 100 | + "List_String": [PathHolders.ListMultiFrameCodec, PathHolders.StringCodec], |
| 101 | + "List_Data": [PathHolders.ListMultiFrameCodec, PathHolders.DataCodec], |
| 102 | + "ListCN_Data": [PathHolders.ListMultiFrameCodec, PathHolders.DataCodec], |
| 103 | + "List_MemberInfo": [PathHolders.ListMultiFrameCodec, PathHolders.MemberInfoCodec], |
| 104 | + "List_DistributedObjectInfo": [PathHolders.ListMultiFrameCodec, PathHolders.DistributedObjectInfoCodec], |
| 105 | + "List_StackTraceElement": [PathHolders.ListMultiFrameCodec, PathHolders.StackTraceElementCodec], |
| 106 | + "EntryList_String_String": [PathHolders.EntryListCodec, PathHolders.StringCodec], |
| 107 | + "EntryList_String_byteArray": [PathHolders.EntryListCodec, PathHolders.StringCodec, PathHolders.ByteArrayCodec], |
| 108 | + "EntryList_Long_byteArray": [PathHolders.EntryListLongByteArrayCodec], |
| 109 | + "EntryList_Integer_UUID": [PathHolders.EntryListIntegerUUIDCodec], |
| 110 | + "EntryList_Integer_Long": [PathHolders.EntryListIntegerLongCodec], |
| 111 | + "EntryList_Integer_Integer": [PathHolders.EntryListIntegerIntegerCodec], |
| 112 | + "EntryList_UUID_Long": [PathHolders.EntryListUUIDLongCodec], |
| 113 | + "EntryList_String_EntryList_Integer_Long": [PathHolders.EntryListCodec, PathHolders.StringCodec, |
| 114 | + PathHolders.EntryListIntegerLongCodec], |
| 115 | + "EntryList_UUID_UUID": [PathHolders.EntryListUUIDUUIDCodec], |
| 116 | + "EntryList_UUID_List_Integer": [PathHolders.EntryListUUIDListIntegerCodec], |
| 117 | + "EntryList_Data_Data": [PathHolders.EntryListCodec, PathHolders.DataCodec], |
| 118 | + "EntryList_Data_List_Data": [PathHolders.EntryListCodec, PathHolders.DataCodec, PathHolders.ListDataCodec], |
| 119 | + "Map_String_String": [PathHolders.MapCodec, PathHolders.StringCodec], |
| 120 | + "IndexConfig": [PathHolders.IndexConfig, PathHolders.IndexConfigCodec], |
| 121 | + "ListIndexConfig": [PathHolders.IndexConfigCodec, PathHolders.ListMultiFrameCodec], |
| 122 | + "BitmapIndexOptions": [PathHolders.BitmapIndexOptions, PathHolders.BitmapIndexOptionsCodec], |
| 123 | + "AnchorDataListHolder": [PathHolders.AnchorDataListHolder, PathHolders.AnchorDataListHolderCodec], |
| 124 | + "PagingPredicateHolder": [PathHolders.PagingPredicateHolder, PathHolders.PagingPredicateHolderCodec], |
| 125 | + "EndpointQualifier": [PathHolders.EndpointQualifier, PathHolders.EndpointQualifierCodec], |
| 126 | + "Map_EndpointQualifier_Address": [PathHolders.MapCodec, PathHolders.EndpointQualifierCodec, |
| 127 | + PathHolders.AddressCodec] |
| 128 | +} |
| 129 | + |
| 130 | + |
| 131 | +_py_types = { |
| 132 | + "boolean", |
| 133 | + "byte", |
| 134 | + "int", |
| 135 | + "long", |
| 136 | + "UUID", |
| 137 | + |
| 138 | + "byteArray", |
| 139 | + "longArray", |
| 140 | + "String", |
| 141 | + "Data", |
| 142 | + |
| 143 | + "Address", |
| 144 | + "DistributedObjectInfo", |
| 145 | + "SimpleEntryView", |
| 146 | + "ErrorHolder", |
| 147 | + "StackTraceElement", |
| 148 | + "MemberInfo", |
| 149 | + "MemberVersion", |
| 150 | + "EndpointQualifier", |
| 151 | + |
| 152 | + "IndexConfig", |
| 153 | + "BitmapIndexOptions", |
| 154 | + |
| 155 | + "List_Integer", |
| 156 | + "List_Long", |
| 157 | + "List_UUID", |
| 158 | + |
| 159 | + "List_byteArray", |
| 160 | + "List_Data", |
| 161 | + "List_DistributedObjectInfo", |
| 162 | + "List_MemberInfo", |
| 163 | + "List_String", |
| 164 | + "List_StackTraceElement", |
| 165 | + "ListCN_Data", |
| 166 | + |
| 167 | + "EntryList_UUID_Long", |
| 168 | + |
| 169 | + "EntryList_String_String", |
| 170 | + "EntryList_UUID_List_Integer", |
| 171 | + "EntryList_Data_Data", |
| 172 | + |
| 173 | + "Map_String_String", |
| 174 | + "Map_EndpointQualifier_Address", |
| 175 | +} |
| 176 | + |
| 177 | + |
| 178 | +def py_escape_keyword(value): |
| 179 | + if value in keyword.kwlist: |
| 180 | + return "%s_" % value |
| 181 | + else: |
| 182 | + return value |
0 commit comments