red-arrow-format 25.0.0 → 26.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
1
2
  # or more contributor license agreements. See the NOTICE file
2
3
  # distributed with this work for additional information
3
4
  # regarding copyright ownership. The ASF licenses this file
@@ -32,8 +33,8 @@ module ArrowFormat
32
33
  "Null"
33
34
  end
34
35
 
35
- def build_array(size)
36
- NullArray.new(size)
36
+ def build_array(...)
37
+ NullArray.new(...)
37
38
  end
38
39
 
39
40
  def to_flatbuffers
@@ -55,8 +56,8 @@ module ArrowFormat
55
56
  "Boolean"
56
57
  end
57
58
 
58
- def build_array(size, validity_buffer, values_buffer)
59
- BooleanArray.new(size, validity_buffer, values_buffer)
59
+ def build_array(...)
60
+ BooleanArray.new(...)
60
61
  end
61
62
 
62
63
  def to_flatbuffers
@@ -88,6 +89,9 @@ module ArrowFormat
88
89
  end
89
90
 
90
91
  class Int8Type < IntType
92
+ MIN_VALUE = -(2 ** 7)
93
+ MAX_VALUE = (2 ** 7) - 1
94
+
91
95
  class << self
92
96
  def singleton
93
97
  @singleton ||= new
@@ -106,12 +110,19 @@ module ArrowFormat
106
110
  :S8
107
111
  end
108
112
 
109
- def build_array(size, validity_buffer, values_buffer)
110
- Int8Array.new(size, validity_buffer, values_buffer)
113
+ def pack_template
114
+ "c"
115
+ end
116
+
117
+ def build_array(...)
118
+ Int8Array.new(...)
111
119
  end
112
120
  end
113
121
 
114
122
  class UInt8Type < IntType
123
+ MIN_VALUE = 0
124
+ MAX_VALUE = (2 ** 8) - 1
125
+
115
126
  class << self
116
127
  def singleton
117
128
  @singleton ||= new
@@ -130,12 +141,19 @@ module ArrowFormat
130
141
  :U8
131
142
  end
132
143
 
133
- def build_array(size, validity_buffer, values_buffer)
134
- UInt8Array.new(size, validity_buffer, values_buffer)
144
+ def pack_template
145
+ "C"
146
+ end
147
+
148
+ def build_array(...)
149
+ UInt8Array.new(...)
135
150
  end
136
151
  end
137
152
 
138
153
  class Int16Type < IntType
154
+ MIN_VALUE = -(2 ** 15)
155
+ MAX_VALUE = (2 ** 15) - 1
156
+
139
157
  class << self
140
158
  def singleton
141
159
  @singleton ||= new
@@ -154,12 +172,19 @@ module ArrowFormat
154
172
  :s16
155
173
  end
156
174
 
157
- def build_array(size, validity_buffer, values_buffer)
158
- Int16Array.new(size, validity_buffer, values_buffer)
175
+ def pack_template
176
+ "s"
177
+ end
178
+
179
+ def build_array(...)
180
+ Int16Array.new(...)
159
181
  end
160
182
  end
161
183
 
162
184
  class UInt16Type < IntType
185
+ MIN_VALUE = 0
186
+ MAX_VALUE = (2 ** 16) - 1
187
+
163
188
  class << self
164
189
  def singleton
165
190
  @singleton ||= new
@@ -178,12 +203,19 @@ module ArrowFormat
178
203
  :u16
179
204
  end
180
205
 
181
- def build_array(size, validity_buffer, values_buffer)
182
- UInt16Array.new(size, validity_buffer, values_buffer)
206
+ def pack_template
207
+ "S"
208
+ end
209
+
210
+ def build_array(...)
211
+ UInt16Array.new(...)
183
212
  end
184
213
  end
185
214
 
186
215
  class Int32Type < IntType
216
+ MIN_VALUE = -(2 ** 31)
217
+ MAX_VALUE = (2 ** 31) - 1
218
+
187
219
  class << self
188
220
  def singleton
189
221
  @singleton ||= new
@@ -202,12 +234,19 @@ module ArrowFormat
202
234
  :s32
203
235
  end
204
236
 
205
- def build_array(size, validity_buffer, values_buffer)
206
- Int32Array.new(size, validity_buffer, values_buffer)
237
+ def pack_template
238
+ "l"
239
+ end
240
+
241
+ def build_array(...)
242
+ Int32Array.new(...)
207
243
  end
208
244
  end
209
245
 
210
246
  class UInt32Type < IntType
247
+ MIN_VALUE = 0
248
+ MAX_VALUE = (2 ** 32) - 1
249
+
211
250
  class << self
212
251
  def singleton
213
252
  @singleton ||= new
@@ -226,12 +265,19 @@ module ArrowFormat
226
265
  :u32
227
266
  end
228
267
 
229
- def build_array(size, validity_buffer, values_buffer)
230
- UInt32Array.new(size, validity_buffer, values_buffer)
268
+ def pack_template
269
+ "L"
270
+ end
271
+
272
+ def build_array(...)
273
+ UInt32Array.new(...)
231
274
  end
232
275
  end
233
276
 
234
277
  class Int64Type < IntType
278
+ MIN_VALUE = -(2 ** 63)
279
+ MAX_VALUE = (2 ** 63) - 1
280
+
235
281
  class << self
236
282
  def singleton
237
283
  @singleton ||= new
@@ -250,12 +296,19 @@ module ArrowFormat
250
296
  :s64
251
297
  end
252
298
 
253
- def build_array(size, validity_buffer, values_buffer)
254
- Int64Array.new(size, validity_buffer, values_buffer)
299
+ def pack_template
300
+ "q"
301
+ end
302
+
303
+ def build_array(...)
304
+ Int64Array.new(...)
255
305
  end
256
306
  end
257
307
 
258
308
  class UInt64Type < IntType
309
+ MIN_VALUE = 0
310
+ MAX_VALUE = (2 ** 64) - 1
311
+
259
312
  class << self
260
313
  def singleton
261
314
  @singleton ||= new
@@ -274,8 +327,12 @@ module ArrowFormat
274
327
  :u64
275
328
  end
276
329
 
277
- def build_array(size, validity_buffer, values_buffer)
278
- UInt64Array.new(size, validity_buffer, values_buffer)
330
+ def pack_template
331
+ "Q"
332
+ end
333
+
334
+ def build_array(...)
335
+ UInt64Array.new(...)
279
336
  end
280
337
  end
281
338
 
@@ -312,8 +369,12 @@ module ArrowFormat
312
369
  :f32
313
370
  end
314
371
 
315
- def build_array(size, validity_buffer, values_buffer)
316
- Float32Array.new(size, validity_buffer, values_buffer)
372
+ def pack_template
373
+ "f"
374
+ end
375
+
376
+ def build_array(...)
377
+ Float32Array.new(...)
317
378
  end
318
379
  end
319
380
 
@@ -336,8 +397,12 @@ module ArrowFormat
336
397
  :f64
337
398
  end
338
399
 
339
- def build_array(size, validity_buffer, values_buffer)
340
- Float64Array.new(size, validity_buffer, values_buffer)
400
+ def pack_template
401
+ "d"
402
+ end
403
+
404
+ def build_array(...)
405
+ Float64Array.new(...)
341
406
  end
342
407
  end
343
408
 
@@ -377,8 +442,12 @@ module ArrowFormat
377
442
  :s32
378
443
  end
379
444
 
380
- def build_array(size, validity_buffer, values_buffer)
381
- Date32Array.new(size, validity_buffer, values_buffer)
445
+ def pack_template
446
+ "l"
447
+ end
448
+
449
+ def build_array(...)
450
+ Date32Array.new(...)
382
451
  end
383
452
  end
384
453
 
@@ -401,8 +470,12 @@ module ArrowFormat
401
470
  :s64
402
471
  end
403
472
 
404
- def build_array(size, validity_buffer, values_buffer)
405
- Date64Array.new(size, validity_buffer, values_buffer)
473
+ def pack_template
474
+ "q"
475
+ end
476
+
477
+ def build_array(...)
478
+ Date64Array.new(...)
406
479
  end
407
480
  end
408
481
 
@@ -415,6 +488,12 @@ module ArrowFormat
415
488
  @unit = unit
416
489
  end
417
490
 
491
+ def ==(other)
492
+ other.is_a?(self.class) and
493
+ @bit_width == other.bit_width and
494
+ @unit == other.unit
495
+ end
496
+
418
497
  def to_s
419
498
  "#{super}(#{unit})"
420
499
  end
@@ -428,6 +507,20 @@ module ArrowFormat
428
507
  end
429
508
 
430
509
  class Time32Type < TimeType
510
+ class << self
511
+ def try_convert(value)
512
+ case value
513
+ when Symbol
514
+ unit = value
515
+ new(unit)
516
+ when self
517
+ value
518
+ else
519
+ nil
520
+ end
521
+ end
522
+ end
523
+
431
524
  def initialize(unit)
432
525
  super(32, unit)
433
526
  end
@@ -440,12 +533,30 @@ module ArrowFormat
440
533
  :s32
441
534
  end
442
535
 
443
- def build_array(size, validity_buffer, values_buffer)
444
- Time32Array.new(self, size, validity_buffer, values_buffer)
536
+ def pack_template
537
+ "l"
538
+ end
539
+
540
+ def build_array(...)
541
+ Time32Array.new(self, ...)
445
542
  end
446
543
  end
447
544
 
448
545
  class Time64Type < TimeType
546
+ class << self
547
+ def try_convert(value)
548
+ case value
549
+ when Symbol
550
+ unit = value
551
+ new(unit)
552
+ when self
553
+ value
554
+ else
555
+ nil
556
+ end
557
+ end
558
+ end
559
+
449
560
  def initialize(unit)
450
561
  super(64, unit)
451
562
  end
@@ -458,20 +569,47 @@ module ArrowFormat
458
569
  :s64
459
570
  end
460
571
 
461
- def build_array(size, validity_buffer, values_buffer)
462
- Time64Array.new(self, size, validity_buffer, values_buffer)
572
+ def pack_template
573
+ "q"
574
+ end
575
+
576
+ def build_array(...)
577
+ Time64Array.new(self, ...)
463
578
  end
464
579
  end
465
580
 
466
581
  class TimestampType < TemporalType
582
+ class << self
583
+ def try_convert(value)
584
+ case value
585
+ when Symbol
586
+ unit = value
587
+ new(unit)
588
+ when ::Array
589
+ unit, time_zone = value
590
+ new(unit, time_zone)
591
+ when self
592
+ value
593
+ else
594
+ nil
595
+ end
596
+ end
597
+ end
598
+
467
599
  attr_reader :unit
468
600
  attr_reader :time_zone
469
- def initialize(unit, time_zone)
601
+ def initialize(unit, time_zone=nil)
470
602
  super()
471
603
  @unit = unit
472
604
  @time_zone = time_zone
473
605
  end
474
606
 
607
+ def ==(other)
608
+ other.is_a?(self.class) and
609
+ @unit == other.unit and
610
+ @time_zone == other.time_zone
611
+ end
612
+
475
613
  def name
476
614
  "Timestamp"
477
615
  end
@@ -480,8 +618,12 @@ module ArrowFormat
480
618
  :s64
481
619
  end
482
620
 
483
- def build_array(size, validity_buffer, values_buffer)
484
- TimestampArray.new(self, size, validity_buffer, values_buffer)
621
+ def pack_template
622
+ "q"
623
+ end
624
+
625
+ def build_array(...)
626
+ TimestampArray.new(self, ...)
485
627
  end
486
628
 
487
629
  def to_s
@@ -531,8 +673,12 @@ module ArrowFormat
531
673
  :s32
532
674
  end
533
675
 
534
- def build_array(size, validity_buffer, values_buffer)
535
- YearMonthIntervalArray.new(self, size, validity_buffer, values_buffer)
676
+ def pack_template
677
+ "l"
678
+ end
679
+
680
+ def build_array(...)
681
+ YearMonthIntervalArray.new(...)
536
682
  end
537
683
  end
538
684
 
@@ -549,8 +695,12 @@ module ArrowFormat
549
695
  :s32
550
696
  end
551
697
 
552
- def build_array(size, validity_buffer, values_buffer)
553
- DayTimeIntervalArray.new(self, size, validity_buffer, values_buffer)
698
+ def pack_template
699
+ "ll"
700
+ end
701
+
702
+ def build_array(...)
703
+ DayTimeIntervalArray.new(...)
554
704
  end
555
705
  end
556
706
 
@@ -567,21 +717,41 @@ module ArrowFormat
567
717
  @buffer_types ||= [:s32, :s32, :s64]
568
718
  end
569
719
 
570
- def build_array(size, validity_buffer, values_buffer)
571
- MonthDayNanoIntervalArray.new(self,
572
- size,
573
- validity_buffer,
574
- values_buffer)
720
+ def pack_template
721
+ "llq"
722
+ end
723
+
724
+ def build_array(...)
725
+ MonthDayNanoIntervalArray.new(...)
575
726
  end
576
727
  end
577
728
 
578
729
  class DurationType < TemporalType
730
+ class << self
731
+ def try_convert(value)
732
+ case value
733
+ when Symbol
734
+ unit = value
735
+ new(unit)
736
+ when self
737
+ value
738
+ else
739
+ nil
740
+ end
741
+ end
742
+ end
743
+
579
744
  attr_reader :unit
580
745
  def initialize(unit)
581
746
  super()
582
747
  @unit = unit
583
748
  end
584
749
 
750
+ def ==(other)
751
+ other.is_a?(self.class) and
752
+ @unit == other.unit
753
+ end
754
+
585
755
  def name
586
756
  "Duration"
587
757
  end
@@ -590,8 +760,12 @@ module ArrowFormat
590
760
  :s64
591
761
  end
592
762
 
593
- def build_array(size, validity_buffer, values_buffer)
594
- DurationArray.new(self, size, validity_buffer, values_buffer)
763
+ def pack_template
764
+ "q"
765
+ end
766
+
767
+ def build_array(...)
768
+ DurationArray.new(self, ...)
595
769
  end
596
770
 
597
771
  def to_s
@@ -623,15 +797,16 @@ module ArrowFormat
623
797
  :s32 # TODO: big endian support
624
798
  end
625
799
 
800
+ def offset_pack_template
801
+ "l"
802
+ end
803
+
626
804
  def encoding
627
805
  Encoding::ASCII_8BIT
628
806
  end
629
807
 
630
- def build_array(size, validity_buffer, offsets_buffer, values_buffer)
631
- BinaryArray.new(size,
632
- validity_buffer,
633
- offsets_buffer,
634
- values_buffer)
808
+ def build_array(...)
809
+ BinaryArray.new(...)
635
810
  end
636
811
 
637
812
  def to_flatbuffers
@@ -654,15 +829,16 @@ module ArrowFormat
654
829
  :s64 # TODO: big endian support
655
830
  end
656
831
 
832
+ def offset_pack_template
833
+ "q"
834
+ end
835
+
657
836
  def encoding
658
837
  Encoding::ASCII_8BIT
659
838
  end
660
839
 
661
- def build_array(size, validity_buffer, offsets_buffer, values_buffer)
662
- LargeBinaryArray.new(size,
663
- validity_buffer,
664
- offsets_buffer,
665
- values_buffer)
840
+ def build_array(...)
841
+ LargeBinaryArray.new(...)
666
842
  end
667
843
 
668
844
  def to_flatbuffers
@@ -685,12 +861,16 @@ module ArrowFormat
685
861
  :s32 # TODO: big endian support
686
862
  end
687
863
 
864
+ def offset_pack_template
865
+ "l"
866
+ end
867
+
688
868
  def encoding
689
869
  Encoding::UTF_8
690
870
  end
691
871
 
692
- def build_array(size, validity_buffer, offsets_buffer, values_buffer)
693
- UTF8Array.new(size, validity_buffer, offsets_buffer, values_buffer)
872
+ def build_array(...)
873
+ UTF8Array.new(...)
694
874
  end
695
875
 
696
876
  def to_flatbuffers
@@ -713,15 +893,16 @@ module ArrowFormat
713
893
  :s64 # TODO: big endian support
714
894
  end
715
895
 
896
+ def offset_pack_template
897
+ "q"
898
+ end
899
+
716
900
  def encoding
717
901
  Encoding::UTF_8
718
902
  end
719
903
 
720
- def build_array(size, validity_buffer, offsets_buffer, values_buffer)
721
- LargeUTF8Array.new(size,
722
- validity_buffer,
723
- offsets_buffer,
724
- values_buffer)
904
+ def build_array(...)
905
+ LargeUTF8Array.new(...)
725
906
  end
726
907
 
727
908
  def to_flatbuffers
@@ -730,6 +911,20 @@ module ArrowFormat
730
911
  end
731
912
 
732
913
  class FixedSizeBinaryType < Type
914
+ class << self
915
+ def try_convert(value)
916
+ case value
917
+ when Integer
918
+ byte_width = value
919
+ new(byte_width)
920
+ when self
921
+ value
922
+ else
923
+ nil
924
+ end
925
+ end
926
+ end
927
+
733
928
  attr_reader :byte_width
734
929
  def initialize(byte_width)
735
930
  super()
@@ -740,8 +935,8 @@ module ArrowFormat
740
935
  "FixedSizeBinary"
741
936
  end
742
937
 
743
- def build_array(size, validity_buffer, values_buffer)
744
- FixedSizeBinaryArray.new(self, size, validity_buffer, values_buffer)
938
+ def build_array(...)
939
+ FixedSizeBinaryArray.new(self, ...)
745
940
  end
746
941
 
747
942
  def to_s
@@ -786,8 +981,8 @@ module ArrowFormat
786
981
  "Decimal128"
787
982
  end
788
983
 
789
- def build_array(size, validity_buffer, values_buffer)
790
- Decimal128Array.new(self, size, validity_buffer, values_buffer)
984
+ def build_array(...)
985
+ Decimal128Array.new(self, ...)
791
986
  end
792
987
  end
793
988
 
@@ -800,8 +995,8 @@ module ArrowFormat
800
995
  "Decimal256"
801
996
  end
802
997
 
803
- def build_array(size, validity_buffer, values_buffer)
804
- Decimal256Array.new(self, size, validity_buffer, values_buffer)
998
+ def build_array(...)
999
+ Decimal256Array.new(self, ...)
805
1000
  end
806
1001
  end
807
1002
 
@@ -826,8 +1021,12 @@ module ArrowFormat
826
1021
  :s32 # TODO: big endian support
827
1022
  end
828
1023
 
829
- def build_array(size, validity_buffer, offsets_buffer, child)
830
- ListArray.new(self, size, validity_buffer, offsets_buffer, child)
1024
+ def offset_pack_template
1025
+ "l"
1026
+ end
1027
+
1028
+ def build_array(...)
1029
+ ListArray.new(self, ...)
831
1030
  end
832
1031
 
833
1032
  def to_flatbuffers
@@ -844,8 +1043,8 @@ module ArrowFormat
844
1043
  :s64 # TODO: big endian support
845
1044
  end
846
1045
 
847
- def build_array(size, validity_buffer, offsets_buffer, child)
848
- LargeListArray.new(self, size, validity_buffer, offsets_buffer, child)
1046
+ def build_array(...)
1047
+ LargeListArray.new(self, ...)
849
1048
  end
850
1049
 
851
1050
  def to_flatbuffers
@@ -870,8 +1069,8 @@ module ArrowFormat
870
1069
  "#{super}<#{child.name}: #{child.type}>(#{@size})"
871
1070
  end
872
1071
 
873
- def build_array(size, validity_buffer, child)
874
- FixedSizeListArray.new(self, size, validity_buffer, child)
1072
+ def build_array(...)
1073
+ FixedSizeListArray.new(self, ...)
875
1074
  end
876
1075
 
877
1076
  def to_flatbuffers
@@ -892,8 +1091,8 @@ module ArrowFormat
892
1091
  "Struct"
893
1092
  end
894
1093
 
895
- def build_array(size, validity_buffer, children)
896
- StructArray.new(self, size, validity_buffer, children)
1094
+ def build_array(...)
1095
+ StructArray.new(self, ...)
897
1096
  end
898
1097
 
899
1098
  def to_s
@@ -942,8 +1141,8 @@ module ArrowFormat
942
1141
  :s32 # TODO: big endian support
943
1142
  end
944
1143
 
945
- def build_array(size, validity_buffer, offsets_buffer, child)
946
- MapArray.new(self, size, validity_buffer, offsets_buffer, child)
1144
+ def build_array(...)
1145
+ MapArray.new(self, ...)
947
1146
  end
948
1147
 
949
1148
  def to_s
@@ -999,8 +1198,8 @@ module ArrowFormat
999
1198
  :s32
1000
1199
  end
1001
1200
 
1002
- def build_array(size, types_buffer, offsets_buffer, children)
1003
- DenseUnionArray.new(self, size, types_buffer, offsets_buffer, children)
1201
+ def build_array(...)
1202
+ DenseUnionArray.new(self, ...)
1004
1203
  end
1005
1204
  end
1006
1205
 
@@ -1013,8 +1212,8 @@ module ArrowFormat
1013
1212
  "SparseUnion"
1014
1213
  end
1015
1214
 
1016
- def build_array(size, types_buffer, children)
1017
- SparseUnionArray.new(self, size, types_buffer, children)
1215
+ def build_array(...)
1216
+ SparseUnionArray.new(self, ...)
1018
1217
  end
1019
1218
  end
1020
1219
 
@@ -1038,12 +1237,8 @@ module ArrowFormat
1038
1237
  "Dictionary"
1039
1238
  end
1040
1239
 
1041
- def build_array(size, validity_buffer, indices_buffer, dictionaries)
1042
- DictionaryArray.new(self,
1043
- size,
1044
- validity_buffer,
1045
- indices_buffer,
1046
- dictionaries)
1240
+ def build_array(...)
1241
+ DictionaryArray.new(self, ...)
1047
1242
  end
1048
1243
 
1049
1244
  def build_fb_field(fb_field)
@@ -16,7 +16,7 @@
16
16
  # under the License.
17
17
 
18
18
  module ArrowFormat
19
- VERSION = "25.0.0"
19
+ VERSION = "26.0.0"
20
20
 
21
21
  module Version
22
22
  numbers, TAG = VERSION.split("-")