@@ -391,17 +391,6 @@ init_ufuncs(void)
391
391
goto error ;
392
392
}
393
393
394
- PyArray_DTypeMeta * peq_dtypes [] = {(PyArray_DTypeMeta * )& PandasStringDType ,
395
- (PyArray_DTypeMeta * )& PandasStringDType ,
396
- & PyArray_BoolDType };
397
-
398
- if (init_ufunc (numpy , "equal" , peq_dtypes ,
399
- & string_equal_resolve_descriptors ,
400
- & string_equal_strided_loop , "string_equal" , 2 , 1 ,
401
- NPY_NO_CASTING , 0 ) < 0 ) {
402
- goto error ;
403
- }
404
-
405
394
PyArray_DTypeMeta * promoter_dtypes [2 ][3 ] = {
406
395
{(PyArray_DTypeMeta * )& StringDType , & PyArray_UnicodeDType ,
407
396
& PyArray_BoolDType },
@@ -417,21 +406,6 @@ init_ufuncs(void)
417
406
goto error ;
418
407
}
419
408
420
- PyArray_DTypeMeta * p_promoter_dtypes [2 ][3 ] = {
421
- {(PyArray_DTypeMeta * )& PandasStringDType , & PyArray_UnicodeDType ,
422
- & PyArray_BoolDType },
423
- {& PyArray_UnicodeDType , (PyArray_DTypeMeta * )& PandasStringDType ,
424
- & PyArray_BoolDType },
425
- };
426
-
427
- if (add_promoter (numpy , "equal" , p_promoter_dtypes [0 ]) < 0 ) {
428
- goto error ;
429
- }
430
-
431
- if (add_promoter (numpy , "equal" , p_promoter_dtypes [1 ]) < 0 ) {
432
- goto error ;
433
- }
434
-
435
409
PyArray_DTypeMeta * isnan_dtypes [] = {(PyArray_DTypeMeta * )& StringDType ,
436
410
& PyArray_BoolDType };
437
411
@@ -442,16 +416,6 @@ init_ufuncs(void)
442
416
goto error ;
443
417
}
444
418
445
- PyArray_DTypeMeta * p_isnan_dtypes [] = {
446
- (PyArray_DTypeMeta * )& PandasStringDType , & PyArray_BoolDType };
447
-
448
- if (init_ufunc (numpy , "isnan" , p_isnan_dtypes ,
449
- & string_isnan_resolve_descriptors ,
450
- & string_isnan_strided_loop , "string_isnan" , 1 , 1 ,
451
- NPY_NO_CASTING , 0 ) < 0 ) {
452
- goto error ;
453
- }
454
-
455
419
PyArray_DTypeMeta * minmax_dtypes [] = {
456
420
(PyArray_DTypeMeta * )& StringDType ,
457
421
(PyArray_DTypeMeta * )& StringDType ,
@@ -469,6 +433,57 @@ init_ufuncs(void)
469
433
goto error ;
470
434
}
471
435
436
+ PyArray_DTypeMeta * add_dtypes [] = {
437
+ (PyArray_DTypeMeta * )& StringDType ,
438
+ (PyArray_DTypeMeta * )& StringDType ,
439
+ (PyArray_DTypeMeta * )& StringDType ,
440
+ };
441
+
442
+ if (init_ufunc (numpy , "add" , add_dtypes , NULL , & add_strided_loop ,
443
+ "string_add" , 2 , 1 , NPY_NO_CASTING , 0 ) < 0 ) {
444
+ goto error ;
445
+ }
446
+
447
+ if (!PANDAS_AVAILABLE ) {
448
+ goto finish ;
449
+ }
450
+
451
+ PyArray_DTypeMeta * peq_dtypes [] = {(PyArray_DTypeMeta * )& PandasStringDType ,
452
+ (PyArray_DTypeMeta * )& PandasStringDType ,
453
+ & PyArray_BoolDType };
454
+
455
+ if (init_ufunc (numpy , "equal" , peq_dtypes ,
456
+ & string_equal_resolve_descriptors ,
457
+ & string_equal_strided_loop , "string_equal" , 2 , 1 ,
458
+ NPY_NO_CASTING , 0 ) < 0 ) {
459
+ goto error ;
460
+ }
461
+
462
+ PyArray_DTypeMeta * p_promoter_dtypes [2 ][3 ] = {
463
+ {(PyArray_DTypeMeta * )& PandasStringDType , & PyArray_UnicodeDType ,
464
+ & PyArray_BoolDType },
465
+ {& PyArray_UnicodeDType , (PyArray_DTypeMeta * )& PandasStringDType ,
466
+ & PyArray_BoolDType },
467
+ };
468
+
469
+ if (add_promoter (numpy , "equal" , p_promoter_dtypes [0 ]) < 0 ) {
470
+ goto error ;
471
+ }
472
+
473
+ if (add_promoter (numpy , "equal" , p_promoter_dtypes [1 ]) < 0 ) {
474
+ goto error ;
475
+ }
476
+
477
+ PyArray_DTypeMeta * p_isnan_dtypes [] = {
478
+ (PyArray_DTypeMeta * )& PandasStringDType , & PyArray_BoolDType };
479
+
480
+ if (init_ufunc (numpy , "isnan" , p_isnan_dtypes ,
481
+ & string_isnan_resolve_descriptors ,
482
+ & string_isnan_strided_loop , "string_isnan" , 1 , 1 ,
483
+ NPY_NO_CASTING , 0 ) < 0 ) {
484
+ goto error ;
485
+ }
486
+
472
487
PyArray_DTypeMeta * p_minmax_dtypes [] = {
473
488
(PyArray_DTypeMeta * )& PandasStringDType ,
474
489
(PyArray_DTypeMeta * )& PandasStringDType ,
@@ -487,17 +502,6 @@ init_ufuncs(void)
487
502
goto error ;
488
503
}
489
504
490
- PyArray_DTypeMeta * add_dtypes [] = {
491
- (PyArray_DTypeMeta * )& StringDType ,
492
- (PyArray_DTypeMeta * )& StringDType ,
493
- (PyArray_DTypeMeta * )& StringDType ,
494
- };
495
-
496
- if (init_ufunc (numpy , "add" , add_dtypes , NULL , & add_strided_loop ,
497
- "string_add" , 2 , 1 , NPY_NO_CASTING , 0 ) < 0 ) {
498
- goto error ;
499
- }
500
-
501
505
PyArray_DTypeMeta * p_add_dtypes [] = {
502
506
(PyArray_DTypeMeta * )& PandasStringDType ,
503
507
(PyArray_DTypeMeta * )& PandasStringDType ,
@@ -509,6 +513,7 @@ init_ufuncs(void)
509
513
goto error ;
510
514
}
511
515
516
+ finish :
512
517
Py_DECREF (numpy );
513
518
return 0 ;
514
519
0 commit comments