polars-df 0.16.0-x86_64-linux → 0.17.0-x86_64-linux
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/Cargo.lock +222 -229
- data/LICENSE-THIRD-PARTY.txt +1501 -2133
- data/LICENSE.txt +1 -1
- data/README.md +2 -2
- data/lib/polars/3.2/polars.so +0 -0
- data/lib/polars/3.3/polars.so +0 -0
- data/lib/polars/3.4/polars.so +0 -0
- data/lib/polars/data_frame.rb +17 -17
- data/lib/polars/data_types.rb +4 -0
- data/lib/polars/lazy_frame.rb +14 -2
- data/lib/polars/series.rb +6 -1
- data/lib/polars/version.rb +1 -1
- metadata +2 -2
data/LICENSE.txt
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
Copyright (c) 2020 Ritchie Vink
|
2
|
-
Copyright (c) 2022-
|
2
|
+
Copyright (c) 2022-2025 Andrew Kane
|
3
3
|
Some portions Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
data/README.md
CHANGED
@@ -88,7 +88,7 @@ From Avro
|
|
88
88
|
Polars.read_avro("file.avro")
|
89
89
|
```
|
90
90
|
|
91
|
-
From Delta Lake (requires [deltalake-rb](https://github.com/ankane/delta-ruby)) [experimental
|
91
|
+
From Delta Lake (requires [deltalake-rb](https://github.com/ankane/delta-ruby)) [experimental]
|
92
92
|
|
93
93
|
```ruby
|
94
94
|
Polars.read_delta("./table")
|
@@ -365,7 +365,7 @@ Avro
|
|
365
365
|
df.write_avro("file.avro")
|
366
366
|
```
|
367
367
|
|
368
|
-
Delta Lake [experimental
|
368
|
+
Delta Lake [experimental]
|
369
369
|
|
370
370
|
```ruby
|
371
371
|
df.write_delta("./table")
|
data/lib/polars/3.2/polars.so
CHANGED
Binary file
|
data/lib/polars/3.3/polars.so
CHANGED
Binary file
|
data/lib/polars/3.4/polars.so
CHANGED
Binary file
|
data/lib/polars/data_frame.rb
CHANGED
@@ -604,10 +604,6 @@ module Polars
|
|
604
604
|
#
|
605
605
|
# @param file [String]
|
606
606
|
# File path to which the result should be written.
|
607
|
-
# @param pretty [Boolean]
|
608
|
-
# Pretty serialize json.
|
609
|
-
# @param row_oriented [Boolean]
|
610
|
-
# Write to row oriented json. This is slower, but more common.
|
611
607
|
#
|
612
608
|
# @return [nil]
|
613
609
|
#
|
@@ -619,16 +615,8 @@ module Polars
|
|
619
615
|
# }
|
620
616
|
# )
|
621
617
|
# df.write_json
|
622
|
-
# # => "{\"columns\":[{\"name\":\"foo\",\"datatype\":\"Int64\",\"bit_settings\":\"\",\"values\":[1,2,3]},{\"name\":\"bar\",\"datatype\":\"Int64\",\"bit_settings\":\"\",\"values\":[6,7,8]}]}"
|
623
|
-
#
|
624
|
-
# @example
|
625
|
-
# df.write_json(row_oriented: true)
|
626
618
|
# # => "[{\"foo\":1,\"bar\":6},{\"foo\":2,\"bar\":7},{\"foo\":3,\"bar\":8}]"
|
627
|
-
def write_json(
|
628
|
-
file = nil,
|
629
|
-
pretty: false,
|
630
|
-
row_oriented: false
|
631
|
-
)
|
619
|
+
def write_json(file = nil)
|
632
620
|
if Utils.pathlike?(file)
|
633
621
|
file = Utils.normalize_filepath(file)
|
634
622
|
end
|
@@ -636,7 +624,7 @@ module Polars
|
|
636
624
|
if file.nil? || to_string_io
|
637
625
|
buf = StringIO.new
|
638
626
|
buf.set_encoding(Encoding::BINARY)
|
639
|
-
_df.write_json(buf
|
627
|
+
_df.write_json(buf)
|
640
628
|
json_bytes = buf.string
|
641
629
|
|
642
630
|
json_str = json_bytes.force_encoding(Encoding::UTF_8)
|
@@ -646,7 +634,7 @@ module Polars
|
|
646
634
|
return json_str
|
647
635
|
end
|
648
636
|
else
|
649
|
-
_df.write_json(file
|
637
|
+
_df.write_json(file)
|
650
638
|
end
|
651
639
|
nil
|
652
640
|
end
|
@@ -2294,6 +2282,14 @@ module Polars
|
|
2294
2282
|
# keys are within this distance. If an asof join is done on columns of dtype
|
2295
2283
|
# "Date", "Datetime", "Duration" or "Time" you use the following string
|
2296
2284
|
# language:
|
2285
|
+
# @param allow_exact_matches [Boolean]
|
2286
|
+
# Whether exact matches are valid join predicates.
|
2287
|
+
# - If true, allow matching with the same `on` value (i.e. less-than-or-equal-to / greater-than-or-equal-to).
|
2288
|
+
# - If false, don't match the same `on` value (i.e., strictly less-than / strictly greater-than).
|
2289
|
+
# @param check_sortedness [Boolean]
|
2290
|
+
# Check the sortedness of the asof keys. If the keys are not sorted Polars
|
2291
|
+
# will error, or in case of 'by' argument raise a warning. This might become
|
2292
|
+
# a hard error in the future.
|
2297
2293
|
#
|
2298
2294
|
# - 1ns (1 nanosecond)
|
2299
2295
|
# - 1us (1 microsecond)
|
@@ -2375,7 +2371,9 @@ module Polars
|
|
2375
2371
|
tolerance: nil,
|
2376
2372
|
allow_parallel: true,
|
2377
2373
|
force_parallel: false,
|
2378
|
-
coalesce: true
|
2374
|
+
coalesce: true,
|
2375
|
+
allow_exact_matches: true,
|
2376
|
+
check_sortedness: true
|
2379
2377
|
)
|
2380
2378
|
lazy
|
2381
2379
|
.join_asof(
|
@@ -2391,7 +2389,9 @@ module Polars
|
|
2391
2389
|
tolerance: tolerance,
|
2392
2390
|
allow_parallel: allow_parallel,
|
2393
2391
|
force_parallel: force_parallel,
|
2394
|
-
coalesce: coalesce
|
2392
|
+
coalesce: coalesce,
|
2393
|
+
allow_exact_matches: allow_exact_matches,
|
2394
|
+
check_sortedness: check_sortedness
|
2395
2395
|
)
|
2396
2396
|
.collect(no_optimization: true)
|
2397
2397
|
end
|
data/lib/polars/data_types.rb
CHANGED
data/lib/polars/lazy_frame.rb
CHANGED
@@ -1616,6 +1616,14 @@ module Polars
|
|
1616
1616
|
# - true: -> Always coalesce join columns.
|
1617
1617
|
# - false: -> Never coalesce join columns.
|
1618
1618
|
# Note that joining on any other expressions than `col` will turn off coalescing.
|
1619
|
+
# @param allow_exact_matches [Boolean]
|
1620
|
+
# Whether exact matches are valid join predicates.
|
1621
|
+
# - If true, allow matching with the same `on` value (i.e. less-than-or-equal-to / greater-than-or-equal-to).
|
1622
|
+
# - If false, don't match the same `on` value (i.e., strictly less-than / strictly greater-than).
|
1623
|
+
# @param check_sortedness [Boolean]
|
1624
|
+
# Check the sortedness of the asof keys. If the keys are not sorted Polars
|
1625
|
+
# will error, or in case of 'by' argument raise a warning. This might become
|
1626
|
+
# a hard error in the future.
|
1619
1627
|
#
|
1620
1628
|
# @return [LazyFrame]
|
1621
1629
|
#
|
@@ -1815,7 +1823,9 @@ module Polars
|
|
1815
1823
|
tolerance: nil,
|
1816
1824
|
allow_parallel: true,
|
1817
1825
|
force_parallel: false,
|
1818
|
-
coalesce: true
|
1826
|
+
coalesce: true,
|
1827
|
+
allow_exact_matches: true,
|
1828
|
+
check_sortedness: true
|
1819
1829
|
)
|
1820
1830
|
if !other.is_a?(LazyFrame)
|
1821
1831
|
raise ArgumentError, "Expected a `LazyFrame` as join table, got #{other.class.name}"
|
@@ -1871,7 +1881,9 @@ module Polars
|
|
1871
1881
|
strategy,
|
1872
1882
|
tolerance_num,
|
1873
1883
|
tolerance_str,
|
1874
|
-
coalesce
|
1884
|
+
coalesce,
|
1885
|
+
allow_exact_matches,
|
1886
|
+
check_sortedness
|
1875
1887
|
)
|
1876
1888
|
)
|
1877
1889
|
end
|
data/lib/polars/series.rb
CHANGED
@@ -4696,7 +4696,12 @@ module Polars
|
|
4696
4696
|
end
|
4697
4697
|
|
4698
4698
|
constructor = polars_type_to_constructor(dtype)
|
4699
|
-
rbseries =
|
4699
|
+
rbseries =
|
4700
|
+
if dtype == Array
|
4701
|
+
constructor.call(name, values, strict)
|
4702
|
+
else
|
4703
|
+
construct_series_with_fallbacks(constructor, name, values, dtype, strict: strict)
|
4704
|
+
end
|
4700
4705
|
|
4701
4706
|
base_type = dtype.is_a?(DataType) ? dtype.class : dtype
|
4702
4707
|
if [Date, Datetime, Duration, Time, Categorical, Boolean, Enum, Decimal].include?(base_type)
|
data/lib/polars/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polars-df
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: x86_64-linux
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bigdecimal
|