@@ -229,9 +229,9 @@ cdef extern from "parser/tokenizer.h":
229
229
int64_t skip_first_N_rows
230
230
int64_t skipfooter
231
231
# pick one, depending on whether the converter requires GIL
232
- double (* double_converter)(const char * , char ** ,
233
- char , char , char ,
234
- int , int * , int * ) nogil
232
+ float64_t (* double_converter)(const char * , char ** ,
233
+ char , char , char ,
234
+ int , int * , int * ) nogil
235
235
236
236
# error handling
237
237
char * warn_msg
@@ -249,16 +249,6 @@ cdef extern from "parser/tokenizer.h":
249
249
int seen_uint
250
250
int seen_null
251
251
252
- void COLITER_NEXT(coliter_t, const char * ) nogil
253
-
254
- cdef extern from " pd_parser.h" :
255
- void * new_rd_source(object obj) except NULL
256
-
257
- int del_rd_source(void * src)
258
-
259
- void * buffer_rd_bytes(void * source, size_t nbytes,
260
- size_t * bytes_read, int * status, const char * encoding_errors)
261
-
262
252
void uint_state_init(uint_state * self )
263
253
int uint64_conflict(uint_state * self )
264
254
@@ -289,49 +279,26 @@ cdef extern from "pd_parser.h":
289
279
uint64_t str_to_uint64(uint_state * state, char * p_item, int64_t int_max,
290
280
uint64_t uint_max, int * error, char tsep) nogil
291
281
292
- double xstrtod(const char * p, char ** q, char decimal,
293
- char sci, char tsep, int skip_trailing,
294
- int * error, int * maybe_int) nogil
295
- double precise_xstrtod(const char * p, char ** q, char decimal,
296
- char sci, char tsep, int skip_trailing,
297
- int * error, int * maybe_int) nogil
298
- double round_trip(const char * p, char ** q, char decimal,
282
+ float64_t xstrtod(const char * p, char ** q, char decimal,
299
283
char sci, char tsep, int skip_trailing,
300
284
int * error, int * maybe_int) nogil
285
+ float64_t precise_xstrtod(const char * p, char ** q, char decimal,
286
+ char sci, char tsep, int skip_trailing,
287
+ int * error, int * maybe_int) nogil
288
+ float64_t round_trip(const char * p, char ** q, char decimal,
289
+ char sci, char tsep, int skip_trailing,
290
+ int * error, int * maybe_int) nogil
301
291
302
292
int to_boolean(const char * item, uint8_t * val) nogil
303
293
304
- void PandasParser_IMPORT()
305
-
306
- PandasParser_IMPORT
307
-
308
- # When not invoked directly but rather assigned as a function,
309
- # cdef extern'ed declarations seem to leave behind an undefined symbol
310
- cdef double xstrtod_wrapper(const char * p, char ** q, char decimal,
311
- char sci, char tsep, int skip_trailing,
312
- int * error, int * maybe_int) nogil:
313
- return xstrtod(p, q, decimal, sci, tsep, skip_trailing, error, maybe_int)
314
-
315
-
316
- cdef double precise_xstrtod_wrapper(const char * p, char ** q, char decimal,
317
- char sci, char tsep, int skip_trailing,
318
- int * error, int * maybe_int) nogil:
319
- return precise_xstrtod(p, q, decimal, sci, tsep, skip_trailing, error, maybe_int)
320
-
321
-
322
- cdef double round_trip_wrapper(const char * p, char ** q, char decimal,
323
- char sci, char tsep, int skip_trailing,
324
- int * error, int * maybe_int) nogil:
325
- return round_trip(p, q, decimal, sci, tsep, skip_trailing, error, maybe_int)
326
294
295
+ cdef extern from " parser/io.h" :
296
+ void * new_rd_source(object obj) except NULL
327
297
328
- cdef void * buffer_rd_bytes_wrapper(void * source, size_t nbytes,
329
- size_t * bytes_read, int * status,
330
- const char * encoding_errors) noexcept:
331
- return buffer_rd_bytes(source, nbytes, bytes_read, status, encoding_errors)
298
+ int del_rd_source(void * src)
332
299
333
- cdef int del_rd_source_wrapper (void * src) noexcept:
334
- return del_rd_source(src )
300
+ void * buffer_rd_bytes (void * source, size_t nbytes,
301
+ size_t * bytes_read, int * status, const char * encoding_errors )
335
302
336
303
337
304
cdef class TextReader:
@@ -518,11 +485,11 @@ cdef class TextReader:
518
485
519
486
if float_precision == " round_trip" :
520
487
# see gh-15140
521
- self .parser.double_converter = round_trip_wrapper
488
+ self .parser.double_converter = round_trip
522
489
elif float_precision == " legacy" :
523
- self .parser.double_converter = xstrtod_wrapper
490
+ self .parser.double_converter = xstrtod
524
491
elif float_precision == " high" or float_precision is None :
525
- self .parser.double_converter = precise_xstrtod_wrapper
492
+ self .parser.double_converter = precise_xstrtod
526
493
else :
527
494
raise ValueError (f" Unrecognized float_precision option: "
528
495
f" {float_precision}" )
@@ -640,8 +607,8 @@ cdef class TextReader:
640
607
641
608
ptr = new_rd_source(source)
642
609
self .parser.source = ptr
643
- self .parser.cb_io = buffer_rd_bytes_wrapper
644
- self .parser.cb_cleanup = del_rd_source_wrapper
610
+ self .parser.cb_io = & buffer_rd_bytes
611
+ self .parser.cb_cleanup = & del_rd_source
645
612
646
613
cdef _get_header(self , list prelim_header):
647
614
# header is now a list of lists, so field_count should use header[0]
0 commit comments