@@ -71,10 +71,11 @@ def load_from_instance(self):
71
71
:return: True on success, False on error
72
72
"""
73
73
if self .classdesc and self .classdesc in self .annotations :
74
- fields = [' int_not_in_fields' ] + self .classdesc .fields_names
74
+ fields = [" int_not_in_fields" ] + self .classdesc .fields_names
75
75
raw_data = self .annotations [self .classdesc ]
76
76
int_not_in_fields = struct .unpack (
77
- '>i' , BytesIO (raw_data [0 ].data ).read (4 ))[0 ]
77
+ ">i" , BytesIO (raw_data [0 ].data ).read (4 )
78
+ )[0 ]
78
79
custom_obj = raw_data [1 ]
79
80
values = [int_not_in_fields , custom_obj ]
80
81
self .field_data = dict (zip (fields , values ))
@@ -92,11 +93,19 @@ def load_from_instance(self):
92
93
"""
93
94
if self .classdesc and self .classdesc in self .field_data :
94
95
fields = self .classdesc .fields_names
95
- values = [self .field_data [self .classdesc ][self .classdesc .fields [i ]] for i in range (len (fields ))]
96
+ values = [
97
+ self .field_data [self .classdesc ][self .classdesc .fields [i ]]
98
+ for i in range (len (fields ))
99
+ ]
96
100
self .field_data = dict (zip (fields , values ))
97
- if self .classdesc .super_class and self .classdesc .super_class in self .annotations :
101
+ if (
102
+ self .classdesc .super_class
103
+ and self .classdesc .super_class in self .annotations
104
+ ):
98
105
super_class = self .annotations [self .classdesc .super_class ][0 ]
99
- self .annotations = dict (zip (super_class .fields_names , super_class .field_data ))
106
+ self .annotations = dict (
107
+ zip (super_class .fields_names , super_class .field_data )
108
+ )
100
109
return True
101
110
102
111
return False
@@ -128,23 +137,27 @@ def create_instance(self, classdesc):
128
137
129
138
class RandomChildTransformer (BaseTransformer ):
130
139
def __init__ (self ):
131
- super (RandomChildTransformer , self ).__init__ ({'RandomChild' : RandomChildInstance })
140
+ super (RandomChildTransformer , self ).__init__ (
141
+ {"RandomChild" : RandomChildInstance }
142
+ )
132
143
133
144
134
145
class CustomWriterTransformer (BaseTransformer ):
135
146
def __init__ (self ):
136
- super (CustomWriterTransformer , self ).__init__ ({'CustomWriter' : CustomWriterInstance })
147
+ super (CustomWriterTransformer , self ).__init__ (
148
+ {"CustomWriter" : CustomWriterInstance }
149
+ )
137
150
138
151
139
152
class JavaRandomTransformer (BaseTransformer ):
140
153
def __init__ (self ):
141
154
super (JavaRandomTransformer , self ).__init__ ()
142
155
self .name = "java.util.Random"
143
- self .field_names = [' haveNextNextGaussian' , ' nextNextGaussian' , ' seed' ]
156
+ self .field_names = [" haveNextNextGaussian" , " nextNextGaussian" , " seed" ]
144
157
self .field_types = [
145
158
javaobj .beans .FieldType .BOOLEAN ,
146
159
javaobj .beans .FieldType .DOUBLE ,
147
- javaobj .beans .FieldType .LONG
160
+ javaobj .beans .FieldType .LONG ,
148
161
]
149
162
150
163
def load_custom_writeObject (self , parser , reader , name ):
@@ -158,13 +171,15 @@ def load_custom_writeObject(self, parser, reader, name):
158
171
fields .append (javaobj .beans .JavaField (f_type , f_name ))
159
172
160
173
class_desc = javaobj .beans .JavaClassDesc (
161
- javaobj .beans .ClassDescType .NORMALCLASS )
174
+ javaobj .beans .ClassDescType .NORMALCLASS
175
+ )
162
176
class_desc .name = self .name
163
177
class_desc .desc_flags = javaobj .beans .ClassDataType .EXTERNAL_CONTENTS
164
178
class_desc .fields = fields
165
179
class_desc .field_data = values
166
180
return class_desc
167
181
182
+
168
183
# ------------------------------------------------------------------------------
169
184
170
185
@@ -545,35 +560,39 @@ def test_writeObject(self):
545
560
"""
546
561
547
562
ser = self .read_file ("testCustomWriteObject.ser" )
548
- transformers = [CustomWriterTransformer (
549
- ), RandomChildTransformer (), JavaRandomTransformer ()]
563
+ transformers = [
564
+ CustomWriterTransformer (),
565
+ RandomChildTransformer (),
566
+ JavaRandomTransformer (),
567
+ ]
550
568
pobj = javaobj .loads (ser , * transformers )
551
569
552
570
self .assertEqual (isinstance (pobj , CustomWriterInstance ), True )
553
- self .assertEqual (isinstance (
554
- pobj .field_data ['custom_obj' ], RandomChildInstance ), True )
571
+ self .assertEqual (
572
+ isinstance (pobj .field_data ["custom_obj" ], RandomChildInstance ), True
573
+ )
555
574
556
575
parent_data = pobj .field_data
557
- child_data = parent_data [' custom_obj' ].field_data
558
- super_data = parent_data [' custom_obj' ].annotations
576
+ child_data = parent_data [" custom_obj" ].field_data
577
+ super_data = parent_data [" custom_obj" ].annotations
559
578
expected = {
560
- 'int_not_in_fields' : 0 ,
561
- 'custom_obj' : {
562
- 'field_data' : {
563
- 'doub' : 4.5 ,
564
- 'num' : 1
579
+ "int_not_in_fields" : 0 ,
580
+ "custom_obj" : {
581
+ "field_data" : {"doub" : 4.5 , "num" : 1 },
582
+ "annotations" : {
583
+ "haveNextNextGaussian" : False ,
584
+ "nextNextGaussian" : 0.0 ,
585
+ "seed" : 25214903879 ,
565
586
},
566
- 'annotations' : {
567
- 'haveNextNextGaussian' : False ,
568
- 'nextNextGaussian' : 0.0 ,
569
- 'seed' : 25214903879
570
- }
571
- }
587
+ },
572
588
}
573
589
574
- self .assertEqual (expected ['int_not_in_fields' ], parent_data ['int_not_in_fields' ])
575
- self .assertEqual (expected ['custom_obj' ]['field_data' ], child_data )
576
- self .assertEqual (expected ['custom_obj' ]['annotations' ], super_data )
590
+ self .assertEqual (
591
+ expected ["int_not_in_fields" ], parent_data ["int_not_in_fields" ]
592
+ )
593
+ self .assertEqual (expected ["custom_obj" ]["field_data" ], child_data )
594
+ self .assertEqual (expected ["custom_obj" ]["annotations" ], super_data )
595
+
577
596
578
597
# ------------------------------------------------------------------------------
579
598
0 commit comments