@@ -2387,8 +2387,10 @@ def rec_append_fields(rec, names, arrs, dtypes=None):
23872387 dtypes = dtypes * len (arrs )
23882388 else :
23892389 raise ValueError ("dtypes must be None, a single dtype or a list" )
2390-
2391- newdtype = np .dtype (rec .dtype .descr + list (zip (names , dtypes )))
2390+ old_dtypes = rec .dtype .descr
2391+ if six .PY2 :
2392+ old_dtypes = [(name .encode ('utf-8' ), dt ) for name , dt in old_dtypes ]
2393+ newdtype = np .dtype (old_dtypes + list (zip (names , dtypes )))
23922394 newrec = np .recarray (rec .shape , dtype = newdtype )
23932395 for field in rec .dtype .fields :
23942396 newrec [field ] = rec [field ]
@@ -2596,8 +2598,10 @@ def mapped_r2field(name):
25962598 if desc [0 ] not in key ]
25972599 r2desc = [(mapped_r2field (desc [0 ]), desc [1 ]) for desc in r2 .dtype .descr
25982600 if desc [0 ] not in key ]
2599- newdtype = np .dtype (keydesc + r1desc + r2desc )
2600-
2601+ all_dtypes = keydesc + r1desc + r2desc
2602+ if six .PY2 :
2603+ all_dtypes = [(name .encode ('utf-8' ), dt ) for name , dt in all_dtypes ]
2604+ newdtype = np .dtype (all_dtypes )
26012605 newrec = np .recarray ((common_len + left_len + right_len ,), dtype = newdtype )
26022606
26032607 if defaults is not None :
@@ -2613,7 +2617,7 @@ def mapped_r2field(name):
26132617
26142618 if jointype != 'inner' and defaults is not None :
26152619 # fill in the defaults enmasse
2616- newrec_fields = list (six .iterkeys (newrec .dtype .fields . keys ))
2620+ newrec_fields = list (six .iterkeys (newrec .dtype .fields ))
26172621 for k , v in six .iteritems (defaults ):
26182622 if k in newrec_fields :
26192623 newrec [k ] = v
0 commit comments