polars-df 0.19.0 → 0.20.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Cargo.lock +60 -175
- data/ext/polars/Cargo.toml +7 -7
- data/ext/polars/src/expr/general.rs +14 -27
- data/ext/polars/src/expr/list.rs +10 -19
- data/ext/polars/src/expr/meta.rs +18 -7
- data/ext/polars/src/expr/string.rs +0 -1
- data/ext/polars/src/file.rs +1 -1
- data/ext/polars/src/functions/range.rs +14 -10
- data/ext/polars/src/lazyframe/general.rs +1 -1
- data/ext/polars/src/lib.rs +6 -6
- data/lib/polars/expr.rb +14 -8
- data/lib/polars/functions/eager.rb +1 -1
- data/lib/polars/list_expr.rb +9 -10
- data/lib/polars/list_name_space.rb +1 -7
- data/lib/polars/meta_expr.rb +7 -7
- data/lib/polars/series.rb +12 -8
- data/lib/polars/string_name_space.rb +1 -1
- data/lib/polars/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 295370395ca08f7b31cdfde5f0fa2c205fda98673a5f97cad38548c5b3c8761c
|
4
|
+
data.tar.gz: 4a7792e590e68b0771fbd27ab7323e089b0b73f99b1eb5ae1ce4d3a08312b1e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e25f15b0b0deaaa5ab561b35e491b644b8bb7b51640f4d6bd6fd12c6c229d35fcac72a2f52f15754563da055d22c77e8a27b83b3c3efd8807f4c7d5840767ea0
|
7
|
+
data.tar.gz: e2e140a524076cf966aa3e977e300390ed47f06b89e5110da8e321067053b387e3e8212b9d10d402e117333ac41d4ae22f0691ca7554c9d98211e461f1e59b14
|
data/CHANGELOG.md
CHANGED
data/Cargo.lock
CHANGED
@@ -266,6 +266,12 @@ dependencies = [
|
|
266
266
|
"generic-array",
|
267
267
|
]
|
268
268
|
|
269
|
+
[[package]]
|
270
|
+
name = "boxcar"
|
271
|
+
version = "0.2.13"
|
272
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
273
|
+
checksum = "26c4925bc979b677330a8c7fe7a8c94af2dbb4a2d37b4a20a80d884400f46baa"
|
274
|
+
|
269
275
|
[[package]]
|
270
276
|
name = "brotli"
|
271
277
|
version = "7.0.0"
|
@@ -608,18 +614,6 @@ dependencies = [
|
|
608
614
|
"serde",
|
609
615
|
]
|
610
616
|
|
611
|
-
[[package]]
|
612
|
-
name = "enum_dispatch"
|
613
|
-
version = "0.3.13"
|
614
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
615
|
-
checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
|
616
|
-
dependencies = [
|
617
|
-
"once_cell",
|
618
|
-
"proc-macro2",
|
619
|
-
"quote",
|
620
|
-
"syn",
|
621
|
-
]
|
622
|
-
|
623
617
|
[[package]]
|
624
618
|
name = "equivalent"
|
625
619
|
version = "1.0.2"
|
@@ -1055,7 +1049,7 @@ dependencies = [
|
|
1055
1049
|
"js-sys",
|
1056
1050
|
"log",
|
1057
1051
|
"wasm-bindgen",
|
1058
|
-
"windows-core
|
1052
|
+
"windows-core",
|
1059
1053
|
]
|
1060
1054
|
|
1061
1055
|
[[package]]
|
@@ -1506,15 +1500,6 @@ dependencies = [
|
|
1506
1500
|
"chrono",
|
1507
1501
|
]
|
1508
1502
|
|
1509
|
-
[[package]]
|
1510
|
-
name = "ntapi"
|
1511
|
-
version = "0.4.1"
|
1512
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1513
|
-
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
|
1514
|
-
dependencies = [
|
1515
|
-
"winapi",
|
1516
|
-
]
|
1517
|
-
|
1518
1503
|
[[package]]
|
1519
1504
|
name = "num-traits"
|
1520
1505
|
version = "0.2.19"
|
@@ -1692,16 +1677,17 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
|
1692
1677
|
|
1693
1678
|
[[package]]
|
1694
1679
|
name = "planus"
|
1695
|
-
version = "
|
1680
|
+
version = "1.1.1"
|
1696
1681
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1697
|
-
checksum = "
|
1682
|
+
checksum = "3daf8e3d4b712abe1d690838f6e29fb76b76ea19589c4afa39ec30e12f62af71"
|
1698
1683
|
dependencies = [
|
1699
1684
|
"array-init-cursor",
|
1685
|
+
"hashbrown 0.15.3",
|
1700
1686
|
]
|
1701
1687
|
|
1702
1688
|
[[package]]
|
1703
1689
|
name = "polars"
|
1704
|
-
version = "0.
|
1690
|
+
version = "0.20.0"
|
1705
1691
|
dependencies = [
|
1706
1692
|
"ahash",
|
1707
1693
|
"bytes",
|
@@ -1711,7 +1697,7 @@ dependencies = [
|
|
1711
1697
|
"magnus",
|
1712
1698
|
"mimalloc",
|
1713
1699
|
"num-traits",
|
1714
|
-
"polars 0.
|
1700
|
+
"polars 0.49.1",
|
1715
1701
|
"polars-arrow",
|
1716
1702
|
"polars-core",
|
1717
1703
|
"polars-parquet",
|
@@ -1724,9 +1710,9 @@ dependencies = [
|
|
1724
1710
|
|
1725
1711
|
[[package]]
|
1726
1712
|
name = "polars"
|
1727
|
-
version = "0.
|
1713
|
+
version = "0.49.1"
|
1728
1714
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1729
|
-
checksum = "
|
1715
|
+
checksum = "443824f43bca39b178353d6c09e4b44e115b21f107a5654d5f980d20b432a303"
|
1730
1716
|
dependencies = [
|
1731
1717
|
"getrandom 0.2.16",
|
1732
1718
|
"polars-arrow",
|
@@ -1745,9 +1731,9 @@ dependencies = [
|
|
1745
1731
|
|
1746
1732
|
[[package]]
|
1747
1733
|
name = "polars-arrow"
|
1748
|
-
version = "0.
|
1734
|
+
version = "0.49.1"
|
1749
1735
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1750
|
-
checksum = "
|
1736
|
+
checksum = "809c5340e9e6c16eee5a07585161bae99f903f53af7402075efec23ee75fce5b"
|
1751
1737
|
dependencies = [
|
1752
1738
|
"atoi_simd",
|
1753
1739
|
"avro-schema",
|
@@ -1777,9 +1763,9 @@ dependencies = [
|
|
1777
1763
|
|
1778
1764
|
[[package]]
|
1779
1765
|
name = "polars-arrow-format"
|
1780
|
-
version = "0.
|
1766
|
+
version = "0.2.0"
|
1781
1767
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1782
|
-
checksum = "
|
1768
|
+
checksum = "863c04c514be005eced7db7053e20d49f7e7a58048a282fa52dfea1fd5434e78"
|
1783
1769
|
dependencies = [
|
1784
1770
|
"planus",
|
1785
1771
|
"serde",
|
@@ -1787,9 +1773,9 @@ dependencies = [
|
|
1787
1773
|
|
1788
1774
|
[[package]]
|
1789
1775
|
name = "polars-compute"
|
1790
|
-
version = "0.
|
1776
|
+
version = "0.49.1"
|
1791
1777
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1792
|
-
checksum = "
|
1778
|
+
checksum = "8b8802ff2cccea01a845ea8267a7600e495747ed109035bb5020c33eb8717ff4"
|
1793
1779
|
dependencies = [
|
1794
1780
|
"atoi_simd",
|
1795
1781
|
"bytemuck",
|
@@ -1813,11 +1799,12 @@ dependencies = [
|
|
1813
1799
|
|
1814
1800
|
[[package]]
|
1815
1801
|
name = "polars-core"
|
1816
|
-
version = "0.
|
1802
|
+
version = "0.49.1"
|
1817
1803
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1818
|
-
checksum = "
|
1804
|
+
checksum = "3fc3c99d7000be1be11665e1e260b93dc3b927342b9da3b53d9a1ac264e4343d"
|
1819
1805
|
dependencies = [
|
1820
1806
|
"bitflags",
|
1807
|
+
"boxcar",
|
1821
1808
|
"bytemuck",
|
1822
1809
|
"chrono",
|
1823
1810
|
"chrono-tz",
|
@@ -1841,15 +1828,16 @@ dependencies = [
|
|
1841
1828
|
"serde",
|
1842
1829
|
"serde_json",
|
1843
1830
|
"strum_macros",
|
1831
|
+
"uuid",
|
1844
1832
|
"version_check",
|
1845
1833
|
"xxhash-rust",
|
1846
1834
|
]
|
1847
1835
|
|
1848
1836
|
[[package]]
|
1849
1837
|
name = "polars-error"
|
1850
|
-
version = "0.
|
1838
|
+
version = "0.49.1"
|
1851
1839
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1852
|
-
checksum = "
|
1840
|
+
checksum = "1397c17712e61a55fdd45c033a69f0451fde2973ff2609c22e363e21d68f11ef"
|
1853
1841
|
dependencies = [
|
1854
1842
|
"avro-schema",
|
1855
1843
|
"object_store",
|
@@ -1862,9 +1850,9 @@ dependencies = [
|
|
1862
1850
|
|
1863
1851
|
[[package]]
|
1864
1852
|
name = "polars-expr"
|
1865
|
-
version = "0.
|
1853
|
+
version = "0.49.1"
|
1866
1854
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1867
|
-
checksum = "
|
1855
|
+
checksum = "33d3aa6722c9a3e0b721ec2bcdc4affd9e50e4cb606cd81bb94535a9a5a6ade9"
|
1868
1856
|
dependencies = [
|
1869
1857
|
"bitflags",
|
1870
1858
|
"hashbrown 0.15.3",
|
@@ -1885,9 +1873,9 @@ dependencies = [
|
|
1885
1873
|
|
1886
1874
|
[[package]]
|
1887
1875
|
name = "polars-io"
|
1888
|
-
version = "0.
|
1876
|
+
version = "0.49.1"
|
1889
1877
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1890
|
-
checksum = "
|
1878
|
+
checksum = "1a632d442a99821250a8fa66f7d488bf5ee98e5f515e65256b12956cb81fc110"
|
1891
1879
|
dependencies = [
|
1892
1880
|
"async-trait",
|
1893
1881
|
"atoi_simd",
|
@@ -1930,9 +1918,9 @@ dependencies = [
|
|
1930
1918
|
|
1931
1919
|
[[package]]
|
1932
1920
|
name = "polars-json"
|
1933
|
-
version = "0.
|
1921
|
+
version = "0.49.1"
|
1934
1922
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1935
|
-
checksum = "
|
1923
|
+
checksum = "cd891735404ebb9d6ace066cfb4b8f6edb321bc841d354a0d917a3a1f2d1ca5b"
|
1936
1924
|
dependencies = [
|
1937
1925
|
"chrono",
|
1938
1926
|
"chrono-tz",
|
@@ -1952,9 +1940,9 @@ dependencies = [
|
|
1952
1940
|
|
1953
1941
|
[[package]]
|
1954
1942
|
name = "polars-lazy"
|
1955
|
-
version = "0.
|
1943
|
+
version = "0.49.1"
|
1956
1944
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1957
|
-
checksum = "
|
1945
|
+
checksum = "f4ed0c87bdc8820447a38ae8efdb5a51a5a93e8bd528cffb05d05cf1145e4161"
|
1958
1946
|
dependencies = [
|
1959
1947
|
"bitflags",
|
1960
1948
|
"chrono",
|
@@ -1969,7 +1957,6 @@ dependencies = [
|
|
1969
1957
|
"polars-json",
|
1970
1958
|
"polars-mem-engine",
|
1971
1959
|
"polars-ops",
|
1972
|
-
"polars-pipe",
|
1973
1960
|
"polars-plan",
|
1974
1961
|
"polars-stream",
|
1975
1962
|
"polars-time",
|
@@ -1981,9 +1968,9 @@ dependencies = [
|
|
1981
1968
|
|
1982
1969
|
[[package]]
|
1983
1970
|
name = "polars-mem-engine"
|
1984
|
-
version = "0.
|
1971
|
+
version = "0.49.1"
|
1985
1972
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
1986
|
-
checksum = "
|
1973
|
+
checksum = "675294ddf9174029e48caa4e59b0665ea64bfb784a366b197690895a6ed65c68"
|
1987
1974
|
dependencies = [
|
1988
1975
|
"futures",
|
1989
1976
|
"memmap2",
|
@@ -2004,9 +1991,9 @@ dependencies = [
|
|
2004
1991
|
|
2005
1992
|
[[package]]
|
2006
1993
|
name = "polars-ops"
|
2007
|
-
version = "0.
|
1994
|
+
version = "0.49.1"
|
2008
1995
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2009
|
-
checksum = "
|
1996
|
+
checksum = "1eb4db68956f857c52eeda072d87644a7b42eac41d55073af94dfac8441af6cf"
|
2010
1997
|
dependencies = [
|
2011
1998
|
"aho-corasick",
|
2012
1999
|
"argminmax",
|
@@ -2044,9 +2031,9 @@ dependencies = [
|
|
2044
2031
|
|
2045
2032
|
[[package]]
|
2046
2033
|
name = "polars-parquet"
|
2047
|
-
version = "0.
|
2034
|
+
version = "0.49.1"
|
2048
2035
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2049
|
-
checksum = "
|
2036
|
+
checksum = "7c849c10edd9511ccd4ec4130e283ee3a8b3bb48a7d74ac6354c1c20add81065"
|
2050
2037
|
dependencies = [
|
2051
2038
|
"async-stream",
|
2052
2039
|
"base64",
|
@@ -2080,38 +2067,11 @@ dependencies = [
|
|
2080
2067
|
"futures",
|
2081
2068
|
]
|
2082
2069
|
|
2083
|
-
[[package]]
|
2084
|
-
name = "polars-pipe"
|
2085
|
-
version = "0.48.0"
|
2086
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2087
|
-
checksum = "7c6f2cf43fc3ad2eba7e49864a6e3fbe5d221ed9f5de216164124c974804518c"
|
2088
|
-
dependencies = [
|
2089
|
-
"crossbeam-channel",
|
2090
|
-
"crossbeam-queue",
|
2091
|
-
"enum_dispatch",
|
2092
|
-
"futures",
|
2093
|
-
"hashbrown 0.15.3",
|
2094
|
-
"num-traits",
|
2095
|
-
"polars-arrow",
|
2096
|
-
"polars-compute",
|
2097
|
-
"polars-core",
|
2098
|
-
"polars-expr",
|
2099
|
-
"polars-io",
|
2100
|
-
"polars-ops",
|
2101
|
-
"polars-plan",
|
2102
|
-
"polars-row",
|
2103
|
-
"polars-utils",
|
2104
|
-
"rayon",
|
2105
|
-
"tokio",
|
2106
|
-
"uuid",
|
2107
|
-
"version_check",
|
2108
|
-
]
|
2109
|
-
|
2110
2070
|
[[package]]
|
2111
2071
|
name = "polars-plan"
|
2112
|
-
version = "0.
|
2072
|
+
version = "0.49.1"
|
2113
2073
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2114
|
-
checksum = "
|
2074
|
+
checksum = "71fb4412c42bf637c2c02a617381c682ed425d9c8e4bd1fcb85cf352ed2a67c6"
|
2115
2075
|
dependencies = [
|
2116
2076
|
"bitflags",
|
2117
2077
|
"bytemuck",
|
@@ -2143,9 +2103,9 @@ dependencies = [
|
|
2143
2103
|
|
2144
2104
|
[[package]]
|
2145
2105
|
name = "polars-row"
|
2146
|
-
version = "0.
|
2106
|
+
version = "0.49.1"
|
2147
2107
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2148
|
-
checksum = "
|
2108
|
+
checksum = "08fb77ac1d37340d9cfe57cf58000cf3d9cce429e10d25066952c6145c684cc0"
|
2149
2109
|
dependencies = [
|
2150
2110
|
"bitflags",
|
2151
2111
|
"bytemuck",
|
@@ -2157,9 +2117,9 @@ dependencies = [
|
|
2157
2117
|
|
2158
2118
|
[[package]]
|
2159
2119
|
name = "polars-schema"
|
2160
|
-
version = "0.
|
2120
|
+
version = "0.49.1"
|
2161
2121
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2162
|
-
checksum = "
|
2122
|
+
checksum = "ada7c7e2fbbeffbdd67628cd8a89f02b0a8d21c71d34e297e2463a7c17575203"
|
2163
2123
|
dependencies = [
|
2164
2124
|
"indexmap",
|
2165
2125
|
"polars-error",
|
@@ -2170,9 +2130,9 @@ dependencies = [
|
|
2170
2130
|
|
2171
2131
|
[[package]]
|
2172
2132
|
name = "polars-sql"
|
2173
|
-
version = "0.
|
2133
|
+
version = "0.49.1"
|
2174
2134
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2175
|
-
checksum = "
|
2135
|
+
checksum = "4a8e512b1f05ffda9963fe8f6a7c62dcba86be85218bc033ecdad2802cc1b1a0"
|
2176
2136
|
dependencies = [
|
2177
2137
|
"bitflags",
|
2178
2138
|
"hex",
|
@@ -2191,9 +2151,9 @@ dependencies = [
|
|
2191
2151
|
|
2192
2152
|
[[package]]
|
2193
2153
|
name = "polars-stream"
|
2194
|
-
version = "0.
|
2154
|
+
version = "0.49.1"
|
2195
2155
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2196
|
-
checksum = "
|
2156
|
+
checksum = "5b0a02d8050acd9b64ed7e36c5bc96f6d4f46a940220f9c0e34c96b51f830f8c"
|
2197
2157
|
dependencies = [
|
2198
2158
|
"async-channel",
|
2199
2159
|
"async-trait",
|
@@ -2228,9 +2188,9 @@ dependencies = [
|
|
2228
2188
|
|
2229
2189
|
[[package]]
|
2230
2190
|
name = "polars-time"
|
2231
|
-
version = "0.
|
2191
|
+
version = "0.49.1"
|
2232
2192
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2233
|
-
checksum = "
|
2193
|
+
checksum = "72e84a30110880ffede8d93c085fc429ab1b8bf1acf3d6d489143dd34be374c4"
|
2234
2194
|
dependencies = [
|
2235
2195
|
"atoi_simd",
|
2236
2196
|
"bytemuck",
|
@@ -2252,9 +2212,9 @@ dependencies = [
|
|
2252
2212
|
|
2253
2213
|
[[package]]
|
2254
2214
|
name = "polars-utils"
|
2255
|
-
version = "0.
|
2215
|
+
version = "0.49.1"
|
2256
2216
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2257
|
-
checksum = "
|
2217
|
+
checksum = "a05e033960552c47fc35afe14d5af5b29696acc97ae5d3c585ebc33c246cc15f"
|
2258
2218
|
dependencies = [
|
2259
2219
|
"bincode",
|
2260
2220
|
"bytemuck",
|
@@ -2274,11 +2234,9 @@ dependencies = [
|
|
2274
2234
|
"regex",
|
2275
2235
|
"rmp-serde",
|
2276
2236
|
"serde",
|
2277
|
-
"serde_ignored",
|
2278
2237
|
"serde_json",
|
2279
2238
|
"slotmap",
|
2280
2239
|
"stacker",
|
2281
|
-
"sysinfo",
|
2282
2240
|
"version_check",
|
2283
2241
|
]
|
2284
2242
|
|
@@ -2877,15 +2835,6 @@ dependencies = [
|
|
2877
2835
|
"syn",
|
2878
2836
|
]
|
2879
2837
|
|
2880
|
-
[[package]]
|
2881
|
-
name = "serde_ignored"
|
2882
|
-
version = "0.1.12"
|
2883
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2884
|
-
checksum = "b516445dac1e3535b6d658a7b528d771153dfb272ed4180ca4617a20550365ff"
|
2885
|
-
dependencies = [
|
2886
|
-
"serde",
|
2887
|
-
]
|
2888
|
-
|
2889
2838
|
[[package]]
|
2890
2839
|
name = "serde_json"
|
2891
2840
|
version = "1.0.140"
|
@@ -3125,19 +3074,6 @@ dependencies = [
|
|
3125
3074
|
"syn",
|
3126
3075
|
]
|
3127
3076
|
|
3128
|
-
[[package]]
|
3129
|
-
name = "sysinfo"
|
3130
|
-
version = "0.33.1"
|
3131
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3132
|
-
checksum = "4fc858248ea01b66f19d8e8a6d55f41deaf91e9d495246fd01368d99935c6c01"
|
3133
|
-
dependencies = [
|
3134
|
-
"core-foundation-sys",
|
3135
|
-
"libc",
|
3136
|
-
"memchr",
|
3137
|
-
"ntapi",
|
3138
|
-
"windows",
|
3139
|
-
]
|
3140
|
-
|
3141
3077
|
[[package]]
|
3142
3078
|
name = "thiserror"
|
3143
3079
|
version = "2.0.12"
|
@@ -3369,6 +3305,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3369
3305
|
checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
|
3370
3306
|
dependencies = [
|
3371
3307
|
"getrandom 0.3.3",
|
3308
|
+
"js-sys",
|
3309
|
+
"wasm-bindgen",
|
3372
3310
|
]
|
3373
3311
|
|
3374
3312
|
[[package]]
|
@@ -3558,52 +3496,19 @@ version = "0.4.0"
|
|
3558
3496
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3559
3497
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
3560
3498
|
|
3561
|
-
[[package]]
|
3562
|
-
name = "windows"
|
3563
|
-
version = "0.57.0"
|
3564
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3565
|
-
checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
|
3566
|
-
dependencies = [
|
3567
|
-
"windows-core 0.57.0",
|
3568
|
-
"windows-targets 0.52.6",
|
3569
|
-
]
|
3570
|
-
|
3571
|
-
[[package]]
|
3572
|
-
name = "windows-core"
|
3573
|
-
version = "0.57.0"
|
3574
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3575
|
-
checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
|
3576
|
-
dependencies = [
|
3577
|
-
"windows-implement 0.57.0",
|
3578
|
-
"windows-interface 0.57.0",
|
3579
|
-
"windows-result 0.1.2",
|
3580
|
-
"windows-targets 0.52.6",
|
3581
|
-
]
|
3582
|
-
|
3583
3499
|
[[package]]
|
3584
3500
|
name = "windows-core"
|
3585
3501
|
version = "0.61.2"
|
3586
3502
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3587
3503
|
checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
|
3588
3504
|
dependencies = [
|
3589
|
-
"windows-implement
|
3590
|
-
"windows-interface
|
3505
|
+
"windows-implement",
|
3506
|
+
"windows-interface",
|
3591
3507
|
"windows-link",
|
3592
|
-
"windows-result
|
3508
|
+
"windows-result",
|
3593
3509
|
"windows-strings 0.4.2",
|
3594
3510
|
]
|
3595
3511
|
|
3596
|
-
[[package]]
|
3597
|
-
name = "windows-implement"
|
3598
|
-
version = "0.57.0"
|
3599
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3600
|
-
checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
|
3601
|
-
dependencies = [
|
3602
|
-
"proc-macro2",
|
3603
|
-
"quote",
|
3604
|
-
"syn",
|
3605
|
-
]
|
3606
|
-
|
3607
3512
|
[[package]]
|
3608
3513
|
name = "windows-implement"
|
3609
3514
|
version = "0.60.0"
|
@@ -3615,17 +3520,6 @@ dependencies = [
|
|
3615
3520
|
"syn",
|
3616
3521
|
]
|
3617
3522
|
|
3618
|
-
[[package]]
|
3619
|
-
name = "windows-interface"
|
3620
|
-
version = "0.57.0"
|
3621
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3622
|
-
checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
|
3623
|
-
dependencies = [
|
3624
|
-
"proc-macro2",
|
3625
|
-
"quote",
|
3626
|
-
"syn",
|
3627
|
-
]
|
3628
|
-
|
3629
3523
|
[[package]]
|
3630
3524
|
name = "windows-interface"
|
3631
3525
|
version = "0.59.1"
|
@@ -3649,20 +3543,11 @@ version = "0.4.0"
|
|
3649
3543
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3650
3544
|
checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3"
|
3651
3545
|
dependencies = [
|
3652
|
-
"windows-result
|
3546
|
+
"windows-result",
|
3653
3547
|
"windows-strings 0.3.1",
|
3654
3548
|
"windows-targets 0.53.0",
|
3655
3549
|
]
|
3656
3550
|
|
3657
|
-
[[package]]
|
3658
|
-
name = "windows-result"
|
3659
|
-
version = "0.1.2"
|
3660
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
3661
|
-
checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
|
3662
|
-
dependencies = [
|
3663
|
-
"windows-targets 0.52.6",
|
3664
|
-
]
|
3665
|
-
|
3666
3551
|
[[package]]
|
3667
3552
|
name = "windows-result"
|
3668
3553
|
version = "0.3.4"
|
data/ext/polars/Cargo.toml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
[package]
|
2
2
|
name = "polars"
|
3
|
-
version = "0.
|
3
|
+
version = "0.20.0"
|
4
4
|
license = "MIT"
|
5
5
|
authors = ["Andrew Kane <andrew@ankane.org>"]
|
6
6
|
edition = "2021"
|
@@ -12,22 +12,22 @@ crate-type = ["cdylib"]
|
|
12
12
|
|
13
13
|
[dependencies]
|
14
14
|
ahash = "0.8"
|
15
|
-
arrow = { package = "polars-arrow", version = "=0.
|
15
|
+
arrow = { package = "polars-arrow", version = "=0.49.1" }
|
16
16
|
bytes = "1"
|
17
17
|
chrono = "0.4"
|
18
18
|
either = "1.8"
|
19
19
|
magnus = "0.7"
|
20
20
|
num-traits = "0.2"
|
21
|
-
polars-core = "=0.
|
22
|
-
polars-plan = "=0.
|
23
|
-
polars-parquet = "=0.
|
24
|
-
polars-utils = "=0.
|
21
|
+
polars-core = "=0.49.1"
|
22
|
+
polars-plan = "=0.49.1"
|
23
|
+
polars-parquet = "=0.49.1"
|
24
|
+
polars-utils = "=0.49.1"
|
25
25
|
rayon = "1.9"
|
26
26
|
regex = "1"
|
27
27
|
serde_json = "1"
|
28
28
|
|
29
29
|
[dependencies.polars]
|
30
|
-
version = "=0.
|
30
|
+
version = "=0.49.1"
|
31
31
|
features = [
|
32
32
|
"abs",
|
33
33
|
"approx_unique",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
use std::ops::Neg;
|
2
2
|
|
3
|
-
use magnus::{
|
3
|
+
use magnus::{RArray, Value};
|
4
4
|
use polars::lazy::dsl;
|
5
5
|
use polars::prelude::*;
|
6
6
|
use polars::series::ops::NullBehavior;
|
@@ -331,10 +331,15 @@ impl RbExpr {
|
|
331
331
|
self.inner.clone().arg_min().into()
|
332
332
|
}
|
333
333
|
|
334
|
-
pub fn search_sorted(
|
334
|
+
pub fn search_sorted(
|
335
|
+
&self,
|
336
|
+
element: &Self,
|
337
|
+
side: Wrap<SearchSortedSide>,
|
338
|
+
descending: bool,
|
339
|
+
) -> Self {
|
335
340
|
self.inner
|
336
341
|
.clone()
|
337
|
-
.search_sorted(element.inner.clone(), side.0)
|
342
|
+
.search_sorted(element.inner.clone(), side.0, descending)
|
338
343
|
.into()
|
339
344
|
}
|
340
345
|
|
@@ -389,16 +394,8 @@ impl RbExpr {
|
|
389
394
|
strategy: String,
|
390
395
|
limit: FillNullLimit,
|
391
396
|
) -> RbResult<Self> {
|
392
|
-
let
|
393
|
-
Ok(self
|
394
|
-
.inner
|
395
|
-
.clone()
|
396
|
-
.apply(
|
397
|
-
move |s| s.fill_null(strat).map(Some),
|
398
|
-
GetOutput::same_type(),
|
399
|
-
)
|
400
|
-
.with_fmt("fill_null_with_strategy")
|
401
|
-
.into())
|
397
|
+
let strategy = parse_fill_null_strategy(&strategy, limit)?;
|
398
|
+
Ok(self.inner.clone().fill_null_with_strategy(strategy).into())
|
402
399
|
}
|
403
400
|
|
404
401
|
pub fn fill_nan(&self, expr: &Self) -> Self {
|
@@ -678,10 +675,10 @@ impl RbExpr {
|
|
678
675
|
self.inner.clone().upper_bound().into()
|
679
676
|
}
|
680
677
|
|
681
|
-
pub fn cumulative_eval(&self, expr: &Self,
|
678
|
+
pub fn cumulative_eval(&self, expr: &Self, min_samples: usize) -> Self {
|
682
679
|
self.inner
|
683
680
|
.clone()
|
684
|
-
.cumulative_eval(expr.inner.clone(),
|
681
|
+
.cumulative_eval(expr.inner.clone(), min_samples)
|
685
682
|
.into()
|
686
683
|
}
|
687
684
|
|
@@ -807,20 +804,10 @@ impl RbExpr {
|
|
807
804
|
self.inner.clone().ewm_var(options).into()
|
808
805
|
}
|
809
806
|
|
810
|
-
pub fn extend_constant(&self, value:
|
811
|
-
let value = value.into_value();
|
812
|
-
let value = Opaque::from(value);
|
807
|
+
pub fn extend_constant(&self, value: &Self, n: &Self) -> Self {
|
813
808
|
self.inner
|
814
809
|
.clone()
|
815
|
-
.
|
816
|
-
move |s| {
|
817
|
-
let value = Ruby::get().unwrap().get_inner(value);
|
818
|
-
let value = Wrap::<AnyValue>::try_convert(value).unwrap().0;
|
819
|
-
s.extend_constant(value, n).map(Some)
|
820
|
-
},
|
821
|
-
GetOutput::same_type(),
|
822
|
-
)
|
823
|
-
.with_fmt("extend")
|
810
|
+
.extend_constant(value.inner.clone(), n.inner.clone())
|
824
811
|
.into()
|
825
812
|
}
|
826
813
|
|
data/ext/polars/src/expr/list.rs
CHANGED
@@ -43,12 +43,8 @@ impl RbExpr {
|
|
43
43
|
Ok(self.inner.clone().list().diff(n, null_behavior.0).into())
|
44
44
|
}
|
45
45
|
|
46
|
-
pub fn list_eval(&self, expr: &RbExpr
|
47
|
-
self.inner
|
48
|
-
.clone()
|
49
|
-
.list()
|
50
|
-
.eval(expr.inner.clone(), parallel)
|
51
|
-
.into()
|
46
|
+
pub fn list_eval(&self, expr: &RbExpr) -> Self {
|
47
|
+
self.inner.clone().list().eval(expr.inner.clone()).into()
|
52
48
|
}
|
53
49
|
|
54
50
|
pub fn list_get(&self, index: &RbExpr, null_on_oob: bool) -> Self {
|
@@ -76,12 +72,7 @@ impl RbExpr {
|
|
76
72
|
}
|
77
73
|
|
78
74
|
pub fn list_mean(&self) -> Self {
|
79
|
-
self.inner
|
80
|
-
.clone()
|
81
|
-
.list()
|
82
|
-
.mean()
|
83
|
-
.with_fmt("list.mean")
|
84
|
-
.into()
|
75
|
+
self.inner.clone().list().mean().into()
|
85
76
|
}
|
86
77
|
|
87
78
|
pub fn list_min(&self) -> Self {
|
@@ -116,20 +107,20 @@ impl RbExpr {
|
|
116
107
|
self.inner.clone().list().tail(n.inner.clone()).into()
|
117
108
|
}
|
118
109
|
|
119
|
-
pub fn list_sort(&self,
|
110
|
+
pub fn list_sort(&self, descending: bool, nulls_last: bool) -> Self {
|
120
111
|
self.inner
|
121
112
|
.clone()
|
122
113
|
.list()
|
123
|
-
.sort(
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
114
|
+
.sort(
|
115
|
+
SortOptions::default()
|
116
|
+
.with_order_descending(descending)
|
117
|
+
.with_nulls_last(nulls_last),
|
118
|
+
)
|
128
119
|
.into()
|
129
120
|
}
|
130
121
|
|
131
122
|
pub fn list_sum(&self) -> Self {
|
132
|
-
self.inner.clone().list().sum().
|
123
|
+
self.inner.clone().list().sum().into()
|
133
124
|
}
|
134
125
|
|
135
126
|
pub fn list_drop_nulls(&self) -> Self {
|
data/ext/polars/src/expr/meta.rs
CHANGED
@@ -1,14 +1,21 @@
|
|
1
1
|
use magnus::RArray;
|
2
|
+
use polars::prelude::Schema;
|
2
3
|
|
3
|
-
use crate::{RbExpr, RbPolarsErr, RbResult};
|
4
|
+
use crate::{RbExpr, RbPolarsErr, RbResult, Wrap};
|
4
5
|
|
5
6
|
impl RbExpr {
|
6
7
|
pub fn meta_eq(&self, other: &RbExpr) -> bool {
|
7
8
|
self.inner == other.inner
|
8
9
|
}
|
9
10
|
|
10
|
-
pub fn meta_pop(&self) -> RbResult<RArray> {
|
11
|
-
let
|
11
|
+
pub fn meta_pop(&self, schema: Option<Wrap<Schema>>) -> RbResult<RArray> {
|
12
|
+
let schema = schema.as_ref().map(|s| &s.0);
|
13
|
+
let exprs = self
|
14
|
+
.inner
|
15
|
+
.clone()
|
16
|
+
.meta()
|
17
|
+
.pop(schema)
|
18
|
+
.map_err(RbPolarsErr::from)?;
|
12
19
|
Ok(RArray::from_iter(
|
13
20
|
exprs.iter().map(|e| RbExpr::from(e.clone())),
|
14
21
|
))
|
@@ -84,17 +91,21 @@ impl RbExpr {
|
|
84
91
|
self.inner.clone().meta()._into_selector().into()
|
85
92
|
}
|
86
93
|
|
87
|
-
fn compute_tree_format(
|
94
|
+
fn compute_tree_format(
|
95
|
+
&self,
|
96
|
+
display_as_dot: bool,
|
97
|
+
schema: Option<Wrap<Schema>>,
|
98
|
+
) -> RbResult<String> {
|
88
99
|
let e = self
|
89
100
|
.inner
|
90
101
|
.clone()
|
91
102
|
.meta()
|
92
|
-
.into_tree_formatter(display_as_dot)
|
103
|
+
.into_tree_formatter(display_as_dot, schema.as_ref().map(|s| &s.0))
|
93
104
|
.map_err(RbPolarsErr::from)?;
|
94
105
|
Ok(format!("{e}"))
|
95
106
|
}
|
96
107
|
|
97
|
-
pub fn meta_tree_format(&self) -> RbResult<String> {
|
98
|
-
self.compute_tree_format(false)
|
108
|
+
pub fn meta_tree_format(&self, schema: Option<Wrap<Schema>>) -> RbResult<String> {
|
109
|
+
self.compute_tree_format(false, schema)
|
99
110
|
}
|
100
111
|
}
|
data/ext/polars/src/file.rs
CHANGED
@@ -93,7 +93,7 @@ impl RbFileLikeObject {
|
|
93
93
|
|
94
94
|
/// Extracts a string repr from, and returns an IO error to send back to rust.
|
95
95
|
fn rberr_to_io_err(e: Error) -> io::Error {
|
96
|
-
io::Error::
|
96
|
+
io::Error::other(e.to_string())
|
97
97
|
}
|
98
98
|
|
99
99
|
impl Read for RbFileLikeObject {
|
@@ -3,7 +3,7 @@ use polars_core::datatypes::{TimeUnit, TimeZone};
|
|
3
3
|
|
4
4
|
use crate::conversion::Wrap;
|
5
5
|
use crate::prelude::*;
|
6
|
-
use crate::RbExpr;
|
6
|
+
use crate::{RbExpr, RbResult};
|
7
7
|
|
8
8
|
pub fn int_range(start: &RbExpr, end: &RbExpr, step: i64, dtype: Wrap<DataType>) -> RbExpr {
|
9
9
|
let start = start.inner.clone();
|
@@ -12,16 +12,20 @@ pub fn int_range(start: &RbExpr, end: &RbExpr, step: i64, dtype: Wrap<DataType>)
|
|
12
12
|
dsl::int_range(start, end, step, dtype).into()
|
13
13
|
}
|
14
14
|
|
15
|
-
pub fn int_ranges(
|
15
|
+
pub fn int_ranges(
|
16
|
+
start: &RbExpr,
|
17
|
+
end: &RbExpr,
|
18
|
+
step: &RbExpr,
|
19
|
+
dtype: Wrap<DataType>,
|
20
|
+
) -> RbResult<RbExpr> {
|
16
21
|
let dtype = dtype.0;
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
result.into()
|
22
|
+
Ok(dsl::int_ranges(
|
23
|
+
start.inner.clone(),
|
24
|
+
end.inner.clone(),
|
25
|
+
step.inner.clone(),
|
26
|
+
dtype,
|
27
|
+
)
|
28
|
+
.into())
|
25
29
|
}
|
26
30
|
|
27
31
|
pub fn date_range(
|
@@ -305,7 +305,7 @@ impl RbLazyFrame {
|
|
305
305
|
.with_predicate_pushdown(predicate_pushdown)
|
306
306
|
.with_simplify_expr(simplify_expr)
|
307
307
|
.with_slice_pushdown(slice_pushdown)
|
308
|
-
.
|
308
|
+
.with_new_streaming(allow_streaming)
|
309
309
|
._with_eager(_eager)
|
310
310
|
.with_projection_pushdown(projection_pushdown);
|
311
311
|
|
data/ext/polars/src/lib.rs
CHANGED
@@ -217,7 +217,7 @@ fn init(ruby: &Ruby) -> RbResult<()> {
|
|
217
217
|
class.define_method("peak_max", method!(RbExpr::peak_max, 0))?;
|
218
218
|
class.define_method("arg_max", method!(RbExpr::arg_max, 0))?;
|
219
219
|
class.define_method("arg_min", method!(RbExpr::arg_min, 0))?;
|
220
|
-
class.define_method("search_sorted", method!(RbExpr::search_sorted,
|
220
|
+
class.define_method("search_sorted", method!(RbExpr::search_sorted, 3))?;
|
221
221
|
class.define_method("gather", method!(RbExpr::gather, 1))?;
|
222
222
|
class.define_method("get", method!(RbExpr::get, 1))?;
|
223
223
|
class.define_method("sort_by", method!(RbExpr::sort_by, 5))?;
|
@@ -464,7 +464,7 @@ fn init(ruby: &Ruby) -> RbResult<()> {
|
|
464
464
|
class.define_method("list_to_array", method!(RbExpr::list_to_array, 1))?;
|
465
465
|
class.define_method("list_mean", method!(RbExpr::list_mean, 0))?;
|
466
466
|
class.define_method("list_tail", method!(RbExpr::list_tail, 1))?;
|
467
|
-
class.define_method("list_sort", method!(RbExpr::list_sort,
|
467
|
+
class.define_method("list_sort", method!(RbExpr::list_sort, 2))?;
|
468
468
|
class.define_method("list_reverse", method!(RbExpr::list_reverse, 0))?;
|
469
469
|
class.define_method("list_unique", method!(RbExpr::list_unique, 1))?;
|
470
470
|
class.define_method("list_get", method!(RbExpr::list_get, 2))?;
|
@@ -476,8 +476,8 @@ fn init(ruby: &Ruby) -> RbResult<()> {
|
|
476
476
|
class.define_method("list_diff", method!(RbExpr::list_diff, 2))?;
|
477
477
|
class.define_method("list_shift", method!(RbExpr::list_shift, 1))?;
|
478
478
|
class.define_method("list_slice", method!(RbExpr::list_slice, 2))?;
|
479
|
-
class.define_method("list_eval", method!(RbExpr::list_eval,
|
480
|
-
class.define_method("cumulative_eval", method!(RbExpr::cumulative_eval,
|
479
|
+
class.define_method("list_eval", method!(RbExpr::list_eval, 1))?;
|
480
|
+
class.define_method("cumulative_eval", method!(RbExpr::cumulative_eval, 2))?;
|
481
481
|
class.define_method("list_to_struct", method!(RbExpr::list_to_struct, 3))?;
|
482
482
|
class.define_method("rank", method!(RbExpr::rank, 3))?;
|
483
483
|
class.define_method("diff", method!(RbExpr::diff, 2))?;
|
@@ -520,7 +520,7 @@ fn init(ruby: &Ruby) -> RbResult<()> {
|
|
520
520
|
class.define_method("replace_strict", method!(RbExpr::replace_strict, 4))?;
|
521
521
|
|
522
522
|
// meta
|
523
|
-
class.define_method("meta_pop", method!(RbExpr::meta_pop,
|
523
|
+
class.define_method("meta_pop", method!(RbExpr::meta_pop, 1))?;
|
524
524
|
class.define_method("meta_eq", method!(RbExpr::meta_eq, 1))?;
|
525
525
|
class.define_method("meta_roots", method!(RbExpr::meta_root_names, 0))?;
|
526
526
|
class.define_method("meta_output_name", method!(RbExpr::meta_output_name, 0))?;
|
@@ -538,7 +538,7 @@ fn init(ruby: &Ruby) -> RbResult<()> {
|
|
538
538
|
class.define_method("_meta_selector_sub", method!(RbExpr::_meta_selector_sub, 1))?;
|
539
539
|
class.define_method("_meta_selector_and", method!(RbExpr::_meta_selector_and, 1))?;
|
540
540
|
class.define_method("_meta_as_selector", method!(RbExpr::_meta_as_selector, 0))?;
|
541
|
-
class.define_method("meta_tree_format", method!(RbExpr::meta_tree_format,
|
541
|
+
class.define_method("meta_tree_format", method!(RbExpr::meta_tree_format, 1))?;
|
542
542
|
|
543
543
|
// name
|
544
544
|
class.define_method("name_keep", method!(RbExpr::name_keep, 0))?;
|
data/lib/polars/expr.rb
CHANGED
@@ -1512,6 +1512,13 @@ module Polars
|
|
1512
1512
|
#
|
1513
1513
|
# @param element [Object]
|
1514
1514
|
# Expression or scalar value.
|
1515
|
+
# @param side ['any', 'left', 'right']
|
1516
|
+
# If 'any', the index of the first suitable location found is given.
|
1517
|
+
# If 'left', the index of the leftmost suitable location found is given.
|
1518
|
+
# If 'right', return the rightmost suitable location found is given.
|
1519
|
+
# @param descending [Boolean]
|
1520
|
+
# Boolean indicating whether the values are descending or not (they
|
1521
|
+
# are required to be sorted either way).
|
1515
1522
|
#
|
1516
1523
|
# @return [Expr]
|
1517
1524
|
#
|
@@ -1537,9 +1544,9 @@ module Polars
|
|
1537
1544
|
# # ╞══════╪═══════╪═════╡
|
1538
1545
|
# # │ 0 ┆ 2 ┆ 4 │
|
1539
1546
|
# # └──────┴───────┴─────┘
|
1540
|
-
def search_sorted(element, side: "any")
|
1547
|
+
def search_sorted(element, side: "any", descending: false)
|
1541
1548
|
element = Utils.parse_into_expression(element, str_as_lit: false)
|
1542
|
-
_from_rbexpr(_rbexpr.search_sorted(element, side))
|
1549
|
+
_from_rbexpr(_rbexpr.search_sorted(element, side, descending))
|
1543
1550
|
end
|
1544
1551
|
|
1545
1552
|
# Sort this column by the ordering of another column, or multiple other columns.
|
@@ -6651,6 +6658,8 @@ module Polars
|
|
6651
6658
|
# # │ 99 │
|
6652
6659
|
# # └────────┘
|
6653
6660
|
def extend_constant(value, n)
|
6661
|
+
value = Utils.parse_into_expression(value, str_as_lit: true)
|
6662
|
+
n = Utils.parse_into_expression(n)
|
6654
6663
|
_from_rbexpr(_rbexpr.extend_constant(value, n))
|
6655
6664
|
end
|
6656
6665
|
|
@@ -6814,9 +6823,6 @@ module Polars
|
|
6814
6823
|
# @param min_periods [Integer]
|
6815
6824
|
# Number of valid values there should be in the window before the expression
|
6816
6825
|
# is evaluated. valid values = `length - null_count`
|
6817
|
-
# @param parallel [Boolean]
|
6818
|
-
# Run in parallel. Don't do this in a group by or another operation that
|
6819
|
-
# already has much parallelization.
|
6820
6826
|
#
|
6821
6827
|
# @return [Expr]
|
6822
6828
|
#
|
@@ -6850,9 +6856,9 @@ module Polars
|
|
6850
6856
|
# # │ -15 │
|
6851
6857
|
# # │ -24 │
|
6852
6858
|
# # └────────┘
|
6853
|
-
def cumulative_eval(expr, min_periods: 1
|
6859
|
+
def cumulative_eval(expr, min_periods: 1)
|
6854
6860
|
_from_rbexpr(
|
6855
|
-
_rbexpr.cumulative_eval(expr._rbexpr, min_periods
|
6861
|
+
_rbexpr.cumulative_eval(expr._rbexpr, min_periods)
|
6856
6862
|
)
|
6857
6863
|
end
|
6858
6864
|
|
@@ -7117,7 +7123,7 @@ module Polars
|
|
7117
7123
|
# Accepts expression input. Sequences are parsed as Series,
|
7118
7124
|
# other non-expression inputs are parsed as literals.
|
7119
7125
|
# Also accepts a mapping of values to their replacement as syntactic sugar for
|
7120
|
-
# `replace_all(old: Series.new(mapping.keys), new:
|
7126
|
+
# `replace_all(old: Series.new(mapping.keys), new: Series.new(mapping.values))`.
|
7121
7127
|
# @param new [Object]
|
7122
7128
|
# Value or sequence of values to replace by.
|
7123
7129
|
# Accepts expression input. Sequences are parsed as Series,
|
@@ -206,7 +206,7 @@ module Polars
|
|
206
206
|
end
|
207
207
|
end
|
208
208
|
|
209
|
-
# Align a sequence of frames using the
|
209
|
+
# Align a sequence of frames using the unique values from one or more columns as a key.
|
210
210
|
#
|
211
211
|
# Frames that do not contain the given key values have rows injected (with nulls
|
212
212
|
# filling the non-key columns), and each resulting frame is sorted by the key.
|
data/lib/polars/list_expr.rb
CHANGED
@@ -245,6 +245,11 @@ module Polars
|
|
245
245
|
|
246
246
|
# Sort the arrays in the list.
|
247
247
|
#
|
248
|
+
# @param reverse [Boolean]
|
249
|
+
# Sort in descending order.
|
250
|
+
# @param nulls_last [Boolean]
|
251
|
+
# Place null values last.
|
252
|
+
#
|
248
253
|
# @return [Expr]
|
249
254
|
#
|
250
255
|
# @example
|
@@ -264,8 +269,8 @@ module Polars
|
|
264
269
|
# # │ [1, 2, 3] │
|
265
270
|
# # │ [1, 2, 9] │
|
266
271
|
# # └───────────┘
|
267
|
-
def sort(reverse: false)
|
268
|
-
Utils.wrap_expr(_rbexpr.list_sort(reverse))
|
272
|
+
def sort(reverse: false, nulls_last: false)
|
273
|
+
Utils.wrap_expr(_rbexpr.list_sort(reverse, nulls_last))
|
269
274
|
end
|
270
275
|
|
271
276
|
# Reverse the arrays in the list.
|
@@ -758,12 +763,6 @@ module Polars
|
|
758
763
|
# @param expr [Expr]
|
759
764
|
# Expression to run. Note that you can select an element with `Polars.first`, or
|
760
765
|
# `Polars.col`
|
761
|
-
# @param parallel [Boolean]
|
762
|
-
# Run all expression parallel. Don't activate this blindly.
|
763
|
-
# Parallelism is worth it if there is enough work to do per thread.
|
764
|
-
#
|
765
|
-
# This likely should not be use in the group by context, because we already
|
766
|
-
# parallel execution per group
|
767
766
|
#
|
768
767
|
# @return [Expr]
|
769
768
|
#
|
@@ -783,8 +782,8 @@ module Polars
|
|
783
782
|
# # │ 8 ┆ 5 ┆ [2.0, 1.0] │
|
784
783
|
# # │ 3 ┆ 2 ┆ [2.0, 1.0] │
|
785
784
|
# # └─────┴─────┴────────────┘
|
786
|
-
def eval(expr
|
787
|
-
Utils.wrap_expr(_rbexpr.list_eval(expr._rbexpr
|
785
|
+
def eval(expr)
|
786
|
+
Utils.wrap_expr(_rbexpr.list_eval(expr._rbexpr))
|
788
787
|
end
|
789
788
|
end
|
790
789
|
end
|
@@ -586,12 +586,6 @@ module Polars
|
|
586
586
|
# @param expr [Expr]
|
587
587
|
# Expression to run. Note that you can select an element with `Polars.first`, or
|
588
588
|
# `Polars.col`
|
589
|
-
# @param parallel [Boolean]
|
590
|
-
# Run all expression parallel. Don't activate this blindly.
|
591
|
-
# Parallelism is worth it if there is enough work to do per thread.
|
592
|
-
#
|
593
|
-
# This likely should not be use in the group by context, because we already
|
594
|
-
# parallel execution per group
|
595
589
|
#
|
596
590
|
# @return [Series]
|
597
591
|
#
|
@@ -611,7 +605,7 @@ module Polars
|
|
611
605
|
# # │ 8 ┆ 5 ┆ [2.0, 1.0] │
|
612
606
|
# # │ 3 ┆ 2 ┆ [2.0, 1.0] │
|
613
607
|
# # └─────┴─────┴────────────┘
|
614
|
-
def eval(expr
|
608
|
+
def eval(expr)
|
615
609
|
super
|
616
610
|
end
|
617
611
|
end
|
data/lib/polars/meta_expr.rb
CHANGED
@@ -125,14 +125,14 @@ module Polars
|
|
125
125
|
# @return [Array]
|
126
126
|
#
|
127
127
|
# @example
|
128
|
-
# e = Polars.col("foo").
|
128
|
+
# e = Polars.col("foo") + Polars.col("bar")
|
129
129
|
# first = e.meta.pop[0]
|
130
|
-
# _ = first.meta == Polars.col("foo")
|
131
|
-
# # => true
|
132
130
|
# _ = first.meta == Polars.col("bar")
|
131
|
+
# # => true
|
132
|
+
# _ = first.meta == Polars.col("foo")
|
133
133
|
# # => false
|
134
|
-
def pop
|
135
|
-
_rbexpr.meta_pop.map { |e| Utils.wrap_expr(e) }
|
134
|
+
def pop(schema: nil)
|
135
|
+
_rbexpr.meta_pop(schema).map { |e| Utils.wrap_expr(e) }
|
136
136
|
end
|
137
137
|
|
138
138
|
# Get a list with the root column name.
|
@@ -209,8 +209,8 @@ module Polars
|
|
209
209
|
# @example
|
210
210
|
# e = (Polars.col("foo") * Polars.col("bar")).sum.over(Polars.col("ham")) / 2
|
211
211
|
# e.meta.tree_format(return_as_string: true)
|
212
|
-
def tree_format(return_as_string: false)
|
213
|
-
s = _rbexpr.meta_tree_format
|
212
|
+
def tree_format(return_as_string: false, schema: nil)
|
213
|
+
s = _rbexpr.meta_tree_format(schema)
|
214
214
|
if return_as_string
|
215
215
|
s
|
216
216
|
else
|
data/lib/polars/series.rb
CHANGED
@@ -1321,9 +1321,6 @@ module Polars
|
|
1321
1321
|
# @param min_periods [Integer]
|
1322
1322
|
# Number of valid values there should be in the window before the expression
|
1323
1323
|
# is evaluated. valid values = `length - null_count`
|
1324
|
-
# @param parallel [Boolean]
|
1325
|
-
# Run in parallel. Don't do this in a group by or another operation that
|
1326
|
-
# already has much parallelization.
|
1327
1324
|
#
|
1328
1325
|
# @return [Series]
|
1329
1326
|
#
|
@@ -1348,7 +1345,7 @@ module Polars
|
|
1348
1345
|
# # -15
|
1349
1346
|
# # -24
|
1350
1347
|
# # ]
|
1351
|
-
def cumulative_eval(expr, min_periods: 1
|
1348
|
+
def cumulative_eval(expr, min_periods: 1)
|
1352
1349
|
super
|
1353
1350
|
end
|
1354
1351
|
|
@@ -1879,6 +1876,13 @@ module Polars
|
|
1879
1876
|
#
|
1880
1877
|
# @param element [Object]
|
1881
1878
|
# Expression or scalar value.
|
1879
|
+
# @param side ['any', 'left', 'right']
|
1880
|
+
# If 'any', the index of the first suitable location found is given.
|
1881
|
+
# If 'left', the index of the leftmost suitable location found is given.
|
1882
|
+
# If 'right', return the rightmost suitable location found is given.
|
1883
|
+
# @param descending [Boolean]
|
1884
|
+
# Boolean indicating whether the values are descending or not (they
|
1885
|
+
# are required to be sorted either way).
|
1882
1886
|
#
|
1883
1887
|
# @return [Integer]
|
1884
1888
|
#
|
@@ -1927,12 +1931,12 @@ module Polars
|
|
1927
1931
|
# # 5
|
1928
1932
|
# # 6
|
1929
1933
|
# # ]
|
1930
|
-
def search_sorted(element, side: "any")
|
1934
|
+
def search_sorted(element, side: "any", descending: false)
|
1931
1935
|
if element.is_a?(Integer) || element.is_a?(Float)
|
1932
|
-
return Polars.select(Polars.lit(self).search_sorted(element, side: side)).item
|
1936
|
+
return Polars.select(Polars.lit(self).search_sorted(element, side: side, descending: descending)).item
|
1933
1937
|
end
|
1934
1938
|
element = Series.new(element)
|
1935
|
-
Polars.select(Polars.lit(self).search_sorted(element, side: side)).to_series
|
1939
|
+
Polars.select(Polars.lit(self).search_sorted(element, side: side, descending: descending)).to_series
|
1936
1940
|
end
|
1937
1941
|
|
1938
1942
|
# Get unique elements in series.
|
@@ -4366,7 +4370,7 @@ module Polars
|
|
4366
4370
|
# # 99
|
4367
4371
|
# # ]
|
4368
4372
|
def extend_constant(value, n)
|
4369
|
-
|
4373
|
+
super
|
4370
4374
|
end
|
4371
4375
|
|
4372
4376
|
# Flags the Series as sorted.
|
@@ -120,7 +120,7 @@ module Polars
|
|
120
120
|
# Parse a Series of dtype Utf8 to a Date/Datetime Series.
|
121
121
|
#
|
122
122
|
# @param datatype [Symbol]
|
123
|
-
# `:date`, `:
|
123
|
+
# `:date`, `:datetime`, or `:time`.
|
124
124
|
# @param fmt [String]
|
125
125
|
# Format to use, refer to the
|
126
126
|
# [chrono strftime documentation](https://docs.rs/chrono/latest/chrono/format/strftime/index.html)
|
data/lib/polars/version.rb
CHANGED