polars-df 0.21.1 → 0.22.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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Cargo.lock +55 -48
  4. data/Cargo.toml +3 -0
  5. data/README.md +12 -0
  6. data/ext/polars/Cargo.toml +16 -11
  7. data/ext/polars/src/batched_csv.rs +4 -4
  8. data/ext/polars/src/catalog/unity.rs +96 -94
  9. data/ext/polars/src/conversion/any_value.rs +26 -30
  10. data/ext/polars/src/conversion/chunked_array.rs +32 -28
  11. data/ext/polars/src/conversion/datetime.rs +11 -0
  12. data/ext/polars/src/conversion/mod.rs +217 -32
  13. data/ext/polars/src/dataframe/construction.rs +4 -3
  14. data/ext/polars/src/dataframe/export.rs +17 -15
  15. data/ext/polars/src/dataframe/general.rs +15 -12
  16. data/ext/polars/src/dataframe/io.rs +1 -2
  17. data/ext/polars/src/dataframe/mod.rs +25 -1
  18. data/ext/polars/src/dataframe/serde.rs +23 -8
  19. data/ext/polars/src/exceptions.rs +8 -5
  20. data/ext/polars/src/expr/datatype.rs +4 -4
  21. data/ext/polars/src/expr/datetime.rs +0 -14
  22. data/ext/polars/src/expr/general.rs +3 -10
  23. data/ext/polars/src/expr/list.rs +8 -24
  24. data/ext/polars/src/expr/meta.rs +4 -6
  25. data/ext/polars/src/expr/mod.rs +2 -0
  26. data/ext/polars/src/expr/name.rs +11 -14
  27. data/ext/polars/src/expr/serde.rs +28 -0
  28. data/ext/polars/src/expr/string.rs +5 -10
  29. data/ext/polars/src/file.rs +15 -9
  30. data/ext/polars/src/functions/business.rs +0 -1
  31. data/ext/polars/src/functions/io.rs +7 -4
  32. data/ext/polars/src/functions/lazy.rs +7 -6
  33. data/ext/polars/src/functions/meta.rs +3 -3
  34. data/ext/polars/src/functions/string_cache.rs +3 -3
  35. data/ext/polars/src/interop/arrow/to_ruby.rs +3 -3
  36. data/ext/polars/src/interop/numo/numo_rs.rs +4 -3
  37. data/ext/polars/src/io/mod.rs +6 -0
  38. data/ext/polars/src/lazyframe/general.rs +8 -9
  39. data/ext/polars/src/lazyframe/mod.rs +16 -1
  40. data/ext/polars/src/lazyframe/optflags.rs +58 -0
  41. data/ext/polars/src/lazyframe/serde.rs +27 -3
  42. data/ext/polars/src/lib.rs +142 -9
  43. data/ext/polars/src/map/dataframe.rs +18 -15
  44. data/ext/polars/src/map/lazy.rs +6 -5
  45. data/ext/polars/src/map/series.rs +7 -6
  46. data/ext/polars/src/on_startup.rs +12 -5
  47. data/ext/polars/src/rb_modules.rs +2 -2
  48. data/ext/polars/src/series/aggregation.rs +42 -29
  49. data/ext/polars/src/series/construction.rs +1 -0
  50. data/ext/polars/src/series/export.rs +37 -33
  51. data/ext/polars/src/series/general.rs +70 -31
  52. data/ext/polars/src/series/mod.rs +29 -4
  53. data/lib/polars/array_expr.rb +1 -1
  54. data/lib/polars/data_frame.rb +110 -8
  55. data/lib/polars/data_types.rb +14 -5
  56. data/lib/polars/date_time_expr.rb +1 -1
  57. data/lib/polars/expr.rb +39 -30
  58. data/lib/polars/functions/business.rb +95 -0
  59. data/lib/polars/functions/lazy.rb +1 -1
  60. data/lib/polars/io/iceberg.rb +27 -0
  61. data/lib/polars/io/parquet.rb +7 -4
  62. data/lib/polars/io/scan_options.rb +4 -1
  63. data/lib/polars/lazy_frame.rb +92 -8
  64. data/lib/polars/list_expr.rb +21 -13
  65. data/lib/polars/list_name_space.rb +33 -21
  66. data/lib/polars/meta_expr.rb +25 -0
  67. data/lib/polars/query_opt_flags.rb +50 -0
  68. data/lib/polars/scan_cast_options.rb +20 -1
  69. data/lib/polars/schema.rb +1 -1
  70. data/lib/polars/series.rb +3 -1
  71. data/lib/polars/string_expr.rb +26 -27
  72. data/lib/polars/string_name_space.rb +17 -4
  73. data/lib/polars/utils/serde.rb +17 -0
  74. data/lib/polars/utils/various.rb +4 -0
  75. data/lib/polars/version.rb +1 -1
  76. data/lib/polars.rb +4 -0
  77. metadata +8 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a19860350cc2b97401611c848072bace63f15188d8b43289cca12d6adcf7593c
4
- data.tar.gz: 01565f74f8b41286214c22e2016f45e0da05a8c9ce610f7cb3dd3616292f185b
3
+ metadata.gz: 225a0dc5806c01028a0396ec9c3d80ad4e8f9a3ba1bdab56e2d7d411359fd8c9
4
+ data.tar.gz: 0bda1b15982994b8f77d3f825d8cc38b76c07c0b84a61f90d5d8a6b8b7c02d12
5
5
  SHA512:
6
- metadata.gz: 391989a65c5a2c5b96ad05f9b9f0553c97153133a3f522ea8d77173b6f9fb3e9ca3838f453a2a750b158a8f0b86a0ffad62468789f84a993e16005342d6a8b14
7
- data.tar.gz: cf846b8cfcd4f44085a583b133f935f636764f1a440dcf4cd3c98b52a510066036b8565cb8ac1089f5cdb433c4dcab05b9325772d97e3d48ad7ebd1de9aeadd8
6
+ metadata.gz: dc667bf994b41a30c69cdd8c1100cde6873d2e507a96369f236c5116fb690e052d0aba1e53b9a92b9dc306a1548daa7243842a6ad1fb47613e157fdecd91476e
7
+ data.tar.gz: 4c0512c04227e19fdc0de6850b3d92b1a08fe049d2cd88003d068e00b143a61c942b2d99cbf3ef11d38965487bcb686f60003e7a8ca3062e966366e0148edef0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 0.22.0 (2025-09-17)
2
+
3
+ - Updated Polars to 0.51.0
4
+ - Added `serialize` and `deserialize` methods to `DataFrame`
5
+ - Added `storage_options` and `retries` options to `sink_ipc` method
6
+ - Added `business_day_count` method to `Polars`
7
+ - Added experimental support for Iceberg
8
+ - Added experimental `cast_options` option to `scan_parquet` method
9
+ - Changed `read_parquet_schema` method to return `Schema`
10
+ - Fixed `Object` type
11
+
1
12
  ## 0.21.1 (2025-08-18)
2
13
 
3
14
  - Added `read_parquet_metadata` method to `Polars`
data/Cargo.lock CHANGED
@@ -1391,8 +1391,9 @@ dependencies = [
1391
1391
 
1392
1392
  [[package]]
1393
1393
  name = "magnus"
1394
- version = "0.7.1"
1395
- source = "git+https://github.com/matsadler/magnus.git?rev=4125ee2ab5a405d17aa6d7503961c1ecdbe499ef#4125ee2ab5a405d17aa6d7503961c1ecdbe499ef"
1394
+ version = "0.8.1"
1395
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1396
+ checksum = "bd2ac6e71886be00ac34db92aa732c793c5107c95191805b9a1c7e70e6d342e0"
1396
1397
  dependencies = [
1397
1398
  "chrono",
1398
1399
  "magnus-macros",
@@ -1403,8 +1404,9 @@ dependencies = [
1403
1404
 
1404
1405
  [[package]]
1405
1406
  name = "magnus-macros"
1406
- version = "0.6.0"
1407
- source = "git+https://github.com/matsadler/magnus.git?rev=4125ee2ab5a405d17aa6d7503961c1ecdbe499ef#4125ee2ab5a405d17aa6d7503961c1ecdbe499ef"
1407
+ version = "0.8.0"
1408
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1409
+ checksum = "47607461fd8e1513cb4f2076c197d8092d921a1ea75bd08af97398f593751892"
1408
1410
  dependencies = [
1409
1411
  "proc-macro2",
1410
1412
  "quote",
@@ -1654,7 +1656,7 @@ dependencies = [
1654
1656
 
1655
1657
  [[package]]
1656
1658
  name = "polars"
1657
- version = "0.21.1"
1659
+ version = "0.22.0"
1658
1660
  dependencies = [
1659
1661
  "ahash",
1660
1662
  "bytes",
@@ -1664,10 +1666,11 @@ dependencies = [
1664
1666
  "magnus",
1665
1667
  "mimalloc",
1666
1668
  "num-traits",
1667
- "polars 0.50.0",
1669
+ "polars 0.51.0",
1668
1670
  "polars-arrow",
1669
1671
  "polars-core",
1670
1672
  "polars-dtype",
1673
+ "polars-error",
1671
1674
  "polars-io",
1672
1675
  "polars-lazy",
1673
1676
  "polars-parquet",
@@ -1680,9 +1683,9 @@ dependencies = [
1680
1683
 
1681
1684
  [[package]]
1682
1685
  name = "polars"
1683
- version = "0.50.0"
1686
+ version = "0.51.0"
1684
1687
  source = "registry+https://github.com/rust-lang/crates.io-index"
1685
- checksum = "fde57577c2b4b823d85617c2c95c11fcdc649e68467030e321e573800524946c"
1688
+ checksum = "a5f7feb5d56b954e691dff22a8b2d78d77433dcc93c35fe21c3777fdc121b697"
1686
1689
  dependencies = [
1687
1690
  "getrandom 0.2.16",
1688
1691
  "getrandom 0.3.3",
@@ -1702,9 +1705,9 @@ dependencies = [
1702
1705
 
1703
1706
  [[package]]
1704
1707
  name = "polars-arrow"
1705
- version = "0.50.0"
1708
+ version = "0.51.0"
1706
1709
  source = "registry+https://github.com/rust-lang/crates.io-index"
1707
- checksum = "29f705dc037eb0a4213554a19320f13c02095c63bdd5e9e7f960817fa29b7b8d"
1710
+ checksum = "32b4fed2343961b3eea3db2cee165540c3e1ad9d5782350cc55a9e76cf440148"
1708
1711
  dependencies = [
1709
1712
  "atoi_simd",
1710
1713
  "avro-schema",
@@ -1745,9 +1748,9 @@ dependencies = [
1745
1748
 
1746
1749
  [[package]]
1747
1750
  name = "polars-compute"
1748
- version = "0.50.0"
1751
+ version = "0.51.0"
1749
1752
  source = "registry+https://github.com/rust-lang/crates.io-index"
1750
- checksum = "896f4efdf1292121df34d6214fd32e634ce9aa5f3739519b3ccd9c11bda75d2a"
1753
+ checksum = "138785beda4e4a90a025219f09d0d15a671b2be9091513ede58e05db6ad4413f"
1751
1754
  dependencies = [
1752
1755
  "atoi_simd",
1753
1756
  "bytemuck",
@@ -1771,9 +1774,9 @@ dependencies = [
1771
1774
 
1772
1775
  [[package]]
1773
1776
  name = "polars-core"
1774
- version = "0.50.0"
1777
+ version = "0.51.0"
1775
1778
  source = "registry+https://github.com/rust-lang/crates.io-index"
1776
- checksum = "11e2c54762ac17a039552033d81779b58619b832aa4f36ebc3395f9aa8bce083"
1779
+ checksum = "e77b1f08ef6dbb032bb1d0d3365464be950df9905f6827a95b24c4ca5518901d"
1777
1780
  dependencies = [
1778
1781
  "bitflags",
1779
1782
  "boxcar",
@@ -1807,9 +1810,9 @@ dependencies = [
1807
1810
 
1808
1811
  [[package]]
1809
1812
  name = "polars-dtype"
1810
- version = "0.50.0"
1813
+ version = "0.51.0"
1811
1814
  source = "registry+https://github.com/rust-lang/crates.io-index"
1812
- checksum = "6bdc47854d72f3df098a06b984de4105ca5030123445d3edef27502e6034019a"
1815
+ checksum = "89c43d0ea57168be4546c4d8064479ed8b29a9c79c31a0c7c367ee734b9b7158"
1813
1816
  dependencies = [
1814
1817
  "boxcar",
1815
1818
  "hashbrown",
@@ -1822,9 +1825,9 @@ dependencies = [
1822
1825
 
1823
1826
  [[package]]
1824
1827
  name = "polars-error"
1825
- version = "0.50.0"
1828
+ version = "0.51.0"
1826
1829
  source = "registry+https://github.com/rust-lang/crates.io-index"
1827
- checksum = "24d0fe86ef36dfa5c9e0b9833effd2e42cd64054b862fe40a243a635ecf62771"
1830
+ checksum = "b9cb5d98f59f8b94673ee391840440ad9f0d2170afced95fc98aa86f895563c0"
1828
1831
  dependencies = [
1829
1832
  "avro-schema",
1830
1833
  "object_store",
@@ -1837,9 +1840,9 @@ dependencies = [
1837
1840
 
1838
1841
  [[package]]
1839
1842
  name = "polars-expr"
1840
- version = "0.50.0"
1843
+ version = "0.51.0"
1841
1844
  source = "registry+https://github.com/rust-lang/crates.io-index"
1842
- checksum = "98212e4899b5432f2b89f2f33c665240f8882cf757e7a5d18cf7b03ba80cdc1e"
1845
+ checksum = "343931b818cf136349135ba11dbc18c27683b52c3477b1ba8ca606cf5ab1965c"
1843
1846
  dependencies = [
1844
1847
  "bitflags",
1845
1848
  "hashbrown",
@@ -1860,9 +1863,9 @@ dependencies = [
1860
1863
 
1861
1864
  [[package]]
1862
1865
  name = "polars-io"
1863
- version = "0.50.0"
1866
+ version = "0.51.0"
1864
1867
  source = "registry+https://github.com/rust-lang/crates.io-index"
1865
- checksum = "cba1a01ed61ec1ba3f3f7d1a7c4ad61cb7ece4bfd606d5d52bfa1384ce707109"
1868
+ checksum = "10388c64b8155122488229a881d1c6f4fdc393bc988e764ab51b182fcb2307e4"
1866
1869
  dependencies = [
1867
1870
  "async-trait",
1868
1871
  "atoi_simd",
@@ -1909,9 +1912,9 @@ dependencies = [
1909
1912
 
1910
1913
  [[package]]
1911
1914
  name = "polars-json"
1912
- version = "0.50.0"
1915
+ version = "0.51.0"
1913
1916
  source = "registry+https://github.com/rust-lang/crates.io-index"
1914
- checksum = "9d546be779c0f2e87870538deb87ca6d90910ba09cb867409c87ed5c13518b5d"
1917
+ checksum = "b26d1a04292a82183c8eba94fdf1584f200bfac5ac2f4a6c5652c8c8ed3bb41c"
1915
1918
  dependencies = [
1916
1919
  "chrono",
1917
1920
  "chrono-tz",
@@ -1931,9 +1934,9 @@ dependencies = [
1931
1934
 
1932
1935
  [[package]]
1933
1936
  name = "polars-lazy"
1934
- version = "0.50.0"
1937
+ version = "0.51.0"
1935
1938
  source = "registry+https://github.com/rust-lang/crates.io-index"
1936
- checksum = "1aa4dbd41c7508735c3e8c2607aef39679d89298b53f1462710fc3f95b6c5cbd"
1939
+ checksum = "0fb6e2c6c2fa4ea0c660df1c06cf56960c81e7c2683877995bae3d4e3d408147"
1937
1940
  dependencies = [
1938
1941
  "bitflags",
1939
1942
  "chrono",
@@ -1959,9 +1962,9 @@ dependencies = [
1959
1962
 
1960
1963
  [[package]]
1961
1964
  name = "polars-mem-engine"
1962
- version = "0.50.0"
1965
+ version = "0.51.0"
1963
1966
  source = "registry+https://github.com/rust-lang/crates.io-index"
1964
- checksum = "712491f22624672d1c97a0f1faca93645ce749aa497c04dd67914738872474e1"
1967
+ checksum = "20a856e98e253587c28d8132a5e7e5a75cb2c44731ca090f1481d45f1d123771"
1965
1968
  dependencies = [
1966
1969
  "futures",
1967
1970
  "memmap2",
@@ -1982,9 +1985,9 @@ dependencies = [
1982
1985
 
1983
1986
  [[package]]
1984
1987
  name = "polars-ops"
1985
- version = "0.50.0"
1988
+ version = "0.51.0"
1986
1989
  source = "registry+https://github.com/rust-lang/crates.io-index"
1987
- checksum = "7c433eb8eb4d5767504a6a145df286e503307d773dc92a085b9cabc6eaaafb01"
1990
+ checksum = "acf6062173fdc9ba05775548beb66e76643a148d9aeadc9984ed712bc4babd76"
1988
1991
  dependencies = [
1989
1992
  "aho-corasick",
1990
1993
  "argminmax",
@@ -2022,9 +2025,9 @@ dependencies = [
2022
2025
 
2023
2026
  [[package]]
2024
2027
  name = "polars-parquet"
2025
- version = "0.50.0"
2028
+ version = "0.51.0"
2026
2029
  source = "registry+https://github.com/rust-lang/crates.io-index"
2027
- checksum = "6efe8ffb9207c3d50d47ee9b5ee750beb889e7cffd2b61291766c74a020ee51d"
2030
+ checksum = "cc1d769180dec070df0dc4b89299b364bf2cfe32b218ecc4ddd8f1a49ae60669"
2028
2031
  dependencies = [
2029
2032
  "async-stream",
2030
2033
  "base64",
@@ -2060,9 +2063,9 @@ dependencies = [
2060
2063
 
2061
2064
  [[package]]
2062
2065
  name = "polars-plan"
2063
- version = "0.50.0"
2066
+ version = "0.51.0"
2064
2067
  source = "registry+https://github.com/rust-lang/crates.io-index"
2065
- checksum = "2219ff36b304d0543185773cf182c49eca4f558403fb33c464b7688cd4f178d2"
2068
+ checksum = "1cd3a2e33ae4484fe407ab2d2ba5684f0889d1ccf3ad6b844103c03638e6d0a0"
2066
2069
  dependencies = [
2067
2070
  "bitflags",
2068
2071
  "bytemuck",
@@ -2096,9 +2099,9 @@ dependencies = [
2096
2099
 
2097
2100
  [[package]]
2098
2101
  name = "polars-row"
2099
- version = "0.50.0"
2102
+ version = "0.51.0"
2100
2103
  source = "registry+https://github.com/rust-lang/crates.io-index"
2101
- checksum = "1eb03bbe6518a9a50fbe2f0d587f6634cf33f1e485657ef3db2bfab997fbc7a4"
2104
+ checksum = "18734f17e0e348724df3ae65f3ee744c681117c04b041cac969dfceb05edabc0"
2102
2105
  dependencies = [
2103
2106
  "bitflags",
2104
2107
  "bytemuck",
@@ -2111,9 +2114,9 @@ dependencies = [
2111
2114
 
2112
2115
  [[package]]
2113
2116
  name = "polars-schema"
2114
- version = "0.50.0"
2117
+ version = "0.51.0"
2115
2118
  source = "registry+https://github.com/rust-lang/crates.io-index"
2116
- checksum = "4b2daa5d628c4aa56deed967cc64fd24c9f62a919c8aaaf2b77b1457f8684f98"
2119
+ checksum = "8e6c1ab13e04d5167661a9854ed1ea0482b2ed9b8a0f1118dabed7cd994a85e3"
2117
2120
  dependencies = [
2118
2121
  "indexmap",
2119
2122
  "polars-error",
@@ -2124,9 +2127,9 @@ dependencies = [
2124
2127
 
2125
2128
  [[package]]
2126
2129
  name = "polars-sql"
2127
- version = "0.50.0"
2130
+ version = "0.51.0"
2128
2131
  source = "registry+https://github.com/rust-lang/crates.io-index"
2129
- checksum = "f9021d46eb864c2bd944a51676c24c17eaa9e5fe755be464a50827179e6dcb8d"
2132
+ checksum = "c4e7766da02cc1d464994404d3e88a7a0ccd4933df3627c325480fbd9bbc0a11"
2130
2133
  dependencies = [
2131
2134
  "bitflags",
2132
2135
  "hex",
@@ -2145,9 +2148,9 @@ dependencies = [
2145
2148
 
2146
2149
  [[package]]
2147
2150
  name = "polars-stream"
2148
- version = "0.50.0"
2151
+ version = "0.51.0"
2149
2152
  source = "registry+https://github.com/rust-lang/crates.io-index"
2150
- checksum = "22323af55f0f2f9f9d64d65a5b0277b8dfa45300e4f6ba8d96e30817059c433e"
2153
+ checksum = "31f6c6ca1ea01f9dea424d167e4f33f5ec44cd67fbfac9efd40575ed20521f14"
2151
2154
  dependencies = [
2152
2155
  "async-channel",
2153
2156
  "async-trait",
@@ -2177,14 +2180,15 @@ dependencies = [
2177
2180
  "recursive",
2178
2181
  "slotmap",
2179
2182
  "tokio",
2183
+ "tokio-util",
2180
2184
  "version_check",
2181
2185
  ]
2182
2186
 
2183
2187
  [[package]]
2184
2188
  name = "polars-time"
2185
- version = "0.50.0"
2189
+ version = "0.51.0"
2186
2190
  source = "registry+https://github.com/rust-lang/crates.io-index"
2187
- checksum = "954b926cf121787c9fd2cf274b66ed85be46ab425405d0c5a1830c885c78b259"
2191
+ checksum = "f6a3a6e279a7a984a0b83715660f9e880590c6129ec2104396bfa710bcd76dee"
2188
2192
  dependencies = [
2189
2193
  "atoi_simd",
2190
2194
  "bytemuck",
@@ -2206,14 +2210,15 @@ dependencies = [
2206
2210
 
2207
2211
  [[package]]
2208
2212
  name = "polars-utils"
2209
- version = "0.50.0"
2213
+ version = "0.51.0"
2210
2214
  source = "registry+https://github.com/rust-lang/crates.io-index"
2211
- checksum = "846a868e172550e4a3a465d7cdddee06377ccd0ea863cd49afd6f903078e0cff"
2215
+ checksum = "57b267021b0e5422d7fbc70fd79e51b9f9a8466c585779373a18b0199e973f29"
2212
2216
  dependencies = [
2213
2217
  "bincode",
2214
2218
  "bytemuck",
2215
2219
  "bytes",
2216
2220
  "compact_str",
2221
+ "either",
2217
2222
  "flate2",
2218
2223
  "foldhash",
2219
2224
  "hashbrown",
@@ -2446,9 +2451,9 @@ dependencies = [
2446
2451
 
2447
2452
  [[package]]
2448
2453
  name = "rb-sys-env"
2449
- version = "0.1.2"
2454
+ version = "0.2.2"
2450
2455
  source = "registry+https://github.com/rust-lang/crates.io-index"
2451
- checksum = "a35802679f07360454b418a5d1735c89716bde01d35b1560fc953c1415a0b3bb"
2456
+ checksum = "08f8d2924cf136a1315e2b4c7460a39f62ef11ee5d522df9b2750fab55b868b6"
2452
2457
 
2453
2458
  [[package]]
2454
2459
  name = "recursive"
@@ -3158,6 +3163,8 @@ dependencies = [
3158
3163
  "bytes",
3159
3164
  "futures-core",
3160
3165
  "futures-sink",
3166
+ "futures-util",
3167
+ "hashbrown",
3161
3168
  "pin-project-lite",
3162
3169
  "tokio",
3163
3170
  ]
data/Cargo.toml CHANGED
@@ -4,3 +4,6 @@ resolver = "2"
4
4
 
5
5
  [profile.release]
6
6
  strip = true
7
+
8
+ [profile.dev]
9
+ strip = true
data/README.md CHANGED
@@ -88,6 +88,12 @@ From Avro
88
88
  Polars.read_avro("file.avro")
89
89
  ```
90
90
 
91
+ From Iceberg (requires [iceberg](https://github.com/ankane/iceberg-ruby)) [experimental]
92
+
93
+ ```ruby
94
+ Polars.scan_iceberg(table)
95
+ ```
96
+
91
97
  From Delta Lake (requires [deltalake-rb](https://github.com/ankane/delta-ruby)) [experimental]
92
98
 
93
99
  ```ruby
@@ -365,6 +371,12 @@ Avro
365
371
  df.write_avro("file.avro")
366
372
  ```
367
373
 
374
+ Iceberg [experimental]
375
+
376
+ ```ruby
377
+ df.write_iceberg(table, mode: "append")
378
+ ```
379
+
368
380
  Delta Lake [experimental]
369
381
 
370
382
  ```ruby
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "polars"
3
- version = "0.21.1"
3
+ version = "0.22.0"
4
4
  license = "MIT"
5
5
  authors = ["Andrew Kane <andrew@ankane.org>"]
6
6
  edition = "2024"
@@ -12,25 +12,26 @@ crate-type = ["cdylib"]
12
12
 
13
13
  [dependencies]
14
14
  ahash = "0.8"
15
- arrow = { package = "polars-arrow", version = "=0.50.0" }
15
+ arrow = { package = "polars-arrow", version = "=0.51.0" }
16
16
  bytes = "1"
17
17
  chrono = "0.4"
18
18
  either = "1.8"
19
- magnus = { git = "https://github.com/matsadler/magnus.git", rev = "4125ee2ab5a405d17aa6d7503961c1ecdbe499ef", features = ["chrono"] }
19
+ magnus = { version = "0.8", features = ["chrono"] }
20
20
  num-traits = "0.2"
21
- polars-core = "=0.50.0"
22
- polars-dtype = "=0.50.0"
23
- polars-io = "=0.50.0"
24
- polars-lazy = { version = "=0.50.0", features = ["catalog"] }
25
- polars-plan = "=0.50.0"
26
- polars-parquet = "=0.50.0"
27
- polars-utils = "=0.50.0"
21
+ polars-core = "=0.51.0"
22
+ polars-dtype = "=0.51.0"
23
+ polars-error = "=0.51.0"
24
+ polars-io = "=0.51.0"
25
+ polars-lazy = { version = "=0.51.0", features = ["catalog"] }
26
+ polars-plan = "=0.51.0"
27
+ polars-parquet = "=0.51.0"
28
+ polars-utils = "=0.51.0"
28
29
  rayon = "1.9"
29
30
  regex = "1"
30
31
  serde_json = "1"
31
32
 
32
33
  [dependencies.polars]
33
- version = "=0.50.0"
34
+ version = "=0.51.0"
34
35
  features = [
35
36
  "abs",
36
37
  "approx_unique",
@@ -141,3 +142,7 @@ jemallocator = { version = "0.5", features = ["disable_initial_exec_tls"] }
141
142
 
142
143
  [target.'cfg(not(any(target_os = "linux", target_os = "windows")))'.dependencies]
143
144
  mimalloc = { version = "0.1", default-features = false }
145
+
146
+ [features]
147
+ default = []
148
+ serialize_binary = []
@@ -2,7 +2,7 @@ use std::cell::RefCell;
2
2
  use std::path::PathBuf;
3
3
  use std::sync::Mutex;
4
4
 
5
- use magnus::{RArray, Value, prelude::*};
5
+ use magnus::{RArray, Ruby, Value, prelude::*};
6
6
  use polars::io::RowIndex;
7
7
  use polars::io::csv::read::OwnedBatchedCsvReader;
8
8
  use polars::io::mmap::MmapBytesReader;
@@ -124,8 +124,8 @@ impl RbBatchedCsv {
124
124
  })
125
125
  }
126
126
 
127
- pub fn next_batches(&self, n: usize) -> RbResult<Option<RArray>> {
128
- let reader = &self.reader;
127
+ pub fn next_batches(ruby: &Ruby, rb_self: &Self, n: usize) -> RbResult<Option<RArray>> {
128
+ let reader = &rb_self.reader;
129
129
  let batches = reader
130
130
  .borrow()
131
131
  .lock()
@@ -133,6 +133,6 @@ impl RbBatchedCsv {
133
133
  .next_batches(n)
134
134
  .map_err(RbPolarsErr::from)?;
135
135
 
136
- Ok(batches.map(|batches| RArray::from_iter(batches.into_iter().map(RbDataFrame::from))))
136
+ Ok(batches.map(|batches| ruby.ary_from_iter(batches.into_iter().map(RbDataFrame::from))))
137
137
  }
138
138
  }