polars-df 0.11.0 → 0.12.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 +16 -0
 - data/Cargo.lock +360 -361
 - data/ext/polars/Cargo.toml +10 -7
 - data/ext/polars/src/batched_csv.rs +1 -1
 - data/ext/polars/src/conversion/any_value.rs +261 -0
 - data/ext/polars/src/conversion/chunked_array.rs +4 -4
 - data/ext/polars/src/conversion/mod.rs +51 -10
 - data/ext/polars/src/dataframe/construction.rs +6 -8
 - data/ext/polars/src/dataframe/general.rs +19 -29
 - data/ext/polars/src/dataframe/io.rs +43 -33
 - data/ext/polars/src/error.rs +26 -4
 - data/ext/polars/src/expr/categorical.rs +0 -10
 - data/ext/polars/src/expr/datetime.rs +4 -12
 - data/ext/polars/src/expr/general.rs +123 -110
 - data/ext/polars/src/expr/mod.rs +2 -2
 - data/ext/polars/src/expr/rolling.rs +17 -9
 - data/ext/polars/src/expr/string.rs +2 -6
 - data/ext/polars/src/functions/eager.rs +10 -10
 - data/ext/polars/src/functions/lazy.rs +21 -21
 - data/ext/polars/src/functions/range.rs +6 -12
 - data/ext/polars/src/interop/numo/to_numo_series.rs +2 -1
 - data/ext/polars/src/lazyframe/mod.rs +81 -98
 - data/ext/polars/src/lib.rs +55 -45
 - data/ext/polars/src/map/dataframe.rs +2 -2
 - data/ext/polars/src/rb_modules.rs +25 -1
 - data/ext/polars/src/series/aggregation.rs +4 -2
 - data/ext/polars/src/series/arithmetic.rs +21 -11
 - data/ext/polars/src/series/construction.rs +56 -38
 - data/ext/polars/src/series/export.rs +1 -1
 - data/ext/polars/src/series/mod.rs +31 -10
 - data/ext/polars/src/sql.rs +3 -1
 - data/lib/polars/array_expr.rb +4 -4
 - data/lib/polars/batched_csv_reader.rb +2 -2
 - data/lib/polars/cat_expr.rb +0 -36
 - data/lib/polars/cat_name_space.rb +0 -37
 - data/lib/polars/data_frame.rb +93 -101
 - data/lib/polars/data_types.rb +1 -1
 - data/lib/polars/date_time_expr.rb +525 -573
 - data/lib/polars/date_time_name_space.rb +263 -464
 - data/lib/polars/dynamic_group_by.rb +3 -3
 - data/lib/polars/exceptions.rb +3 -0
 - data/lib/polars/expr.rb +367 -330
 - data/lib/polars/expr_dispatch.rb +1 -1
 - data/lib/polars/functions/aggregation/horizontal.rb +8 -8
 - data/lib/polars/functions/as_datatype.rb +63 -40
 - data/lib/polars/functions/lazy.rb +63 -14
 - data/lib/polars/functions/lit.rb +1 -1
 - data/lib/polars/functions/range/date_range.rb +18 -77
 - data/lib/polars/functions/range/datetime_range.rb +4 -4
 - data/lib/polars/functions/range/int_range.rb +2 -2
 - data/lib/polars/functions/range/time_range.rb +4 -4
 - data/lib/polars/functions/repeat.rb +1 -1
 - data/lib/polars/functions/whenthen.rb +1 -1
 - data/lib/polars/io/csv.rb +8 -8
 - data/lib/polars/io/ipc.rb +3 -3
 - data/lib/polars/io/json.rb +13 -2
 - data/lib/polars/io/ndjson.rb +15 -4
 - data/lib/polars/io/parquet.rb +5 -4
 - data/lib/polars/lazy_frame.rb +120 -106
 - data/lib/polars/lazy_group_by.rb +1 -1
 - data/lib/polars/list_expr.rb +11 -11
 - data/lib/polars/list_name_space.rb +5 -1
 - data/lib/polars/rolling_group_by.rb +5 -7
 - data/lib/polars/series.rb +105 -189
 - data/lib/polars/string_expr.rb +42 -67
 - data/lib/polars/string_name_space.rb +5 -4
 - data/lib/polars/testing.rb +2 -2
 - data/lib/polars/utils/constants.rb +9 -0
 - data/lib/polars/utils/convert.rb +97 -0
 - data/lib/polars/utils/parse.rb +89 -0
 - data/lib/polars/utils/various.rb +76 -0
 - data/lib/polars/utils/wrap.rb +19 -0
 - data/lib/polars/utils.rb +4 -330
 - data/lib/polars/version.rb +1 -1
 - data/lib/polars/whenthen.rb +6 -6
 - data/lib/polars.rb +11 -0
 - metadata +9 -4
 - data/ext/polars/src/conversion/anyvalue.rs +0 -186
 
    
        data/lib/polars/series.rb
    CHANGED
    
    | 
         @@ -1017,18 +1017,18 @@ module Polars 
     | 
|
| 
       1017 
1017 
     | 
    
         
             
                #   s.rle.struct.unnest
         
     | 
| 
       1018 
1018 
     | 
    
         
             
                #   # =>
         
     | 
| 
       1019 
1019 
     | 
    
         
             
                #   # shape: (6, 2)
         
     | 
| 
       1020 
     | 
    
         
            -
                #   #  
     | 
| 
       1021 
     | 
    
         
            -
                #   # │  
     | 
| 
       1022 
     | 
    
         
            -
                #   # │ --- 
     | 
| 
       1023 
     | 
    
         
            -
                #   # │  
     | 
| 
       1024 
     | 
    
         
            -
                #   #  
     | 
| 
       1025 
     | 
    
         
            -
                #   # │ 2 
     | 
| 
       1026 
     | 
    
         
            -
                #   # │ 1 
     | 
| 
       1027 
     | 
    
         
            -
                #   # │ 1 
     | 
| 
       1028 
     | 
    
         
            -
                #   # │ 1 
     | 
| 
       1029 
     | 
    
         
            -
                #   # │ 1 
     | 
| 
       1030 
     | 
    
         
            -
                #   # │ 2 
     | 
| 
       1031 
     | 
    
         
            -
                #   #  
     | 
| 
      
 1020 
     | 
    
         
            +
                #   # ┌─────┬───────┐
         
     | 
| 
      
 1021 
     | 
    
         
            +
                #   # │ len ┆ value │
         
     | 
| 
      
 1022 
     | 
    
         
            +
                #   # │ --- ┆ ---   │
         
     | 
| 
      
 1023 
     | 
    
         
            +
                #   # │ u32 ┆ i64   │
         
     | 
| 
      
 1024 
     | 
    
         
            +
                #   # ╞═════╪═══════╡
         
     | 
| 
      
 1025 
     | 
    
         
            +
                #   # │ 2   ┆ 1     │
         
     | 
| 
      
 1026 
     | 
    
         
            +
                #   # │ 1   ┆ 2     │
         
     | 
| 
      
 1027 
     | 
    
         
            +
                #   # │ 1   ┆ 1     │
         
     | 
| 
      
 1028 
     | 
    
         
            +
                #   # │ 1   ┆ null  │
         
     | 
| 
      
 1029 
     | 
    
         
            +
                #   # │ 1   ┆ 1     │
         
     | 
| 
      
 1030 
     | 
    
         
            +
                #   # │ 2   ┆ 3     │
         
     | 
| 
      
 1031 
     | 
    
         
            +
                #   # └─────┴───────┘
         
     | 
| 
       1032 
1032 
     | 
    
         
             
                def rle
         
     | 
| 
       1033 
1033 
     | 
    
         
             
                  super
         
     | 
| 
       1034 
1034 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1082,8 +1082,24 @@ module Polars 
     | 
|
| 
       1082 
1082 
     | 
    
         
             
                #   # │ 2   ┆ 2      │
         
     | 
| 
       1083 
1083 
     | 
    
         
             
                #   # │ 3   ┆ 1      │
         
     | 
| 
       1084 
1084 
     | 
    
         
             
                #   # └─────┴────────┘
         
     | 
| 
       1085 
     | 
    
         
            -
                def value_counts( 
     | 
| 
       1086 
     | 
    
         
            -
                   
     | 
| 
      
 1085 
     | 
    
         
            +
                def value_counts(
         
     | 
| 
      
 1086 
     | 
    
         
            +
                  sort: false,
         
     | 
| 
      
 1087 
     | 
    
         
            +
                  parallel: false,
         
     | 
| 
      
 1088 
     | 
    
         
            +
                  name: nil,
         
     | 
| 
      
 1089 
     | 
    
         
            +
                  normalize: false
         
     | 
| 
      
 1090 
     | 
    
         
            +
                )
         
     | 
| 
      
 1091 
     | 
    
         
            +
                  if name.nil?
         
     | 
| 
      
 1092 
     | 
    
         
            +
                    if normalize
         
     | 
| 
      
 1093 
     | 
    
         
            +
                      name = "proportion"
         
     | 
| 
      
 1094 
     | 
    
         
            +
                    else
         
     | 
| 
      
 1095 
     | 
    
         
            +
                      name = "count"
         
     | 
| 
      
 1096 
     | 
    
         
            +
                    end
         
     | 
| 
      
 1097 
     | 
    
         
            +
                  end
         
     | 
| 
      
 1098 
     | 
    
         
            +
                  DataFrame._from_rbdf(
         
     | 
| 
      
 1099 
     | 
    
         
            +
                    self._s.value_counts(
         
     | 
| 
      
 1100 
     | 
    
         
            +
                      sort, parallel, name, normalize
         
     | 
| 
      
 1101 
     | 
    
         
            +
                    )
         
     | 
| 
      
 1102 
     | 
    
         
            +
                  )
         
     | 
| 
       1087 
1103 
     | 
    
         
             
                end
         
     | 
| 
       1088 
1104 
     | 
    
         | 
| 
       1089 
1105 
     | 
    
         
             
                # Return a count of the unique values in the order of appearance.
         
     | 
| 
         @@ -1362,7 +1378,7 @@ module Polars 
     | 
|
| 
       1362 
1378 
     | 
    
         
             
                #   #         2
         
     | 
| 
       1363 
1379 
     | 
    
         
             
                #   # ]
         
     | 
| 
       1364 
1380 
     | 
    
         
             
                def limit(n = 10)
         
     | 
| 
       1365 
     | 
    
         
            -
                  to_frame.select( 
     | 
| 
      
 1381 
     | 
    
         
            +
                  to_frame.select(F.col(name).limit(n)).to_series
         
     | 
| 
       1366 
1382 
     | 
    
         
             
                end
         
     | 
| 
       1367 
1383 
     | 
    
         | 
| 
       1368 
1384 
     | 
    
         
             
                # Get a slice of this Series.
         
     | 
| 
         @@ -1386,7 +1402,7 @@ module Polars 
     | 
|
| 
       1386 
1402 
     | 
    
         
             
                #   #         3
         
     | 
| 
       1387 
1403 
     | 
    
         
             
                #   # ]
         
     | 
| 
       1388 
1404 
     | 
    
         
             
                def slice(offset, length = nil)
         
     | 
| 
       1389 
     | 
    
         
            -
                   
     | 
| 
      
 1405 
     | 
    
         
            +
                  self.class._from_rbseries(_s.slice(offset, length))
         
     | 
| 
       1390 
1406 
     | 
    
         
             
                end
         
     | 
| 
       1391 
1407 
     | 
    
         | 
| 
       1392 
1408 
     | 
    
         
             
                # Append a Series to this one.
         
     | 
| 
         @@ -1494,7 +1510,7 @@ module Polars 
     | 
|
| 
       1494 
1510 
     | 
    
         
             
                #   #         2
         
     | 
| 
       1495 
1511 
     | 
    
         
             
                #   # ]
         
     | 
| 
       1496 
1512 
     | 
    
         
             
                def head(n = 10)
         
     | 
| 
       1497 
     | 
    
         
            -
                  to_frame.select( 
     | 
| 
      
 1513 
     | 
    
         
            +
                  to_frame.select(F.col(name).head(n)).to_series
         
     | 
| 
       1498 
1514 
     | 
    
         
             
                end
         
     | 
| 
       1499 
1515 
     | 
    
         | 
| 
       1500 
1516 
     | 
    
         
             
                # Get the last `n` rows.
         
     | 
| 
         @@ -1515,7 +1531,7 @@ module Polars 
     | 
|
| 
       1515 
1531 
     | 
    
         
             
                #   #         3
         
     | 
| 
       1516 
1532 
     | 
    
         
             
                #   # ]
         
     | 
| 
       1517 
1533 
     | 
    
         
             
                def tail(n = 10)
         
     | 
| 
       1518 
     | 
    
         
            -
                  to_frame.select( 
     | 
| 
      
 1534 
     | 
    
         
            +
                  to_frame.select(F.col(name).tail(n)).to_series
         
     | 
| 
       1519 
1535 
     | 
    
         
             
                end
         
     | 
| 
       1520 
1536 
     | 
    
         | 
| 
       1521 
1537 
     | 
    
         
             
                # Take every nth value in the Series and return as new Series.
         
     | 
| 
         @@ -1594,7 +1610,7 @@ module Polars 
     | 
|
| 
       1594 
1610 
     | 
    
         
             
                #   #         4
         
     | 
| 
       1595 
1611 
     | 
    
         
             
                #   #         3
         
     | 
| 
       1596 
1612 
     | 
    
         
             
                #   # ]
         
     | 
| 
       1597 
     | 
    
         
            -
                def top_k(k: 5 
     | 
| 
      
 1613 
     | 
    
         
            +
                def top_k(k: 5)
         
     | 
| 
       1598 
1614 
     | 
    
         
             
                  super
         
     | 
| 
       1599 
1615 
     | 
    
         
             
                end
         
     | 
| 
       1600 
1616 
     | 
    
         | 
| 
         @@ -1616,7 +1632,7 @@ module Polars 
     | 
|
| 
       1616 
1632 
     | 
    
         
             
                #   #         2
         
     | 
| 
       1617 
1633 
     | 
    
         
             
                #   #         3
         
     | 
| 
       1618 
1634 
     | 
    
         
             
                #   # ]
         
     | 
| 
       1619 
     | 
    
         
            -
                def bottom_k(k: 5 
     | 
| 
      
 1635 
     | 
    
         
            +
                def bottom_k(k: 5)
         
     | 
| 
       1620 
1636 
     | 
    
         
             
                  super
         
     | 
| 
       1621 
1637 
     | 
    
         
             
                end
         
     | 
| 
       1622 
1638 
     | 
    
         | 
| 
         @@ -2054,11 +2070,12 @@ module Polars 
     | 
|
| 
       2054 
2070 
     | 
    
         
             
                #
         
     | 
| 
       2055 
2071 
     | 
    
         
             
                # @param other [Series]
         
     | 
| 
       2056 
2072 
     | 
    
         
             
                #   Series to compare with.
         
     | 
| 
      
 2073 
     | 
    
         
            +
                # @param strict [Boolean]
         
     | 
| 
      
 2074 
     | 
    
         
            +
                #   Require data types to match.
         
     | 
| 
      
 2075 
     | 
    
         
            +
                # @param check_names [Boolean]
         
     | 
| 
      
 2076 
     | 
    
         
            +
                #   Require names to match.
         
     | 
| 
       2057 
2077 
     | 
    
         
             
                # @param null_equal [Boolean]
         
     | 
| 
       2058 
2078 
     | 
    
         
             
                #   Consider null values as equal.
         
     | 
| 
       2059 
     | 
    
         
            -
                # @param strict [Boolean]
         
     | 
| 
       2060 
     | 
    
         
            -
                #   Don't allow different numerical dtypes, e.g. comparing `:u32` with a
         
     | 
| 
       2061 
     | 
    
         
            -
                #   `:i64` will return `false`.
         
     | 
| 
       2062 
2079 
     | 
    
         
             
                #
         
     | 
| 
       2063 
2080 
     | 
    
         
             
                # @return [Boolean]
         
     | 
| 
       2064 
2081 
     | 
    
         
             
                #
         
     | 
| 
         @@ -2069,8 +2086,8 @@ module Polars 
     | 
|
| 
       2069 
2086 
     | 
    
         
             
                #   # => true
         
     | 
| 
       2070 
2087 
     | 
    
         
             
                #   s.equals(s2)
         
     | 
| 
       2071 
2088 
     | 
    
         
             
                #   # => false
         
     | 
| 
       2072 
     | 
    
         
            -
                def equals(other,  
     | 
| 
       2073 
     | 
    
         
            -
                  _s.equals(other._s,  
     | 
| 
      
 2089 
     | 
    
         
            +
                def equals(other, strict: false, check_names: false, null_equal: false)
         
     | 
| 
      
 2090 
     | 
    
         
            +
                  _s.equals(other._s, strict, check_names, null_equal)
         
     | 
| 
       2074 
2091 
     | 
    
         
             
                end
         
     | 
| 
       2075 
2092 
     | 
    
         
             
                alias_method :series_equal, :equals
         
     | 
| 
       2076 
2093 
     | 
    
         | 
| 
         @@ -3004,16 +3021,7 @@ module Polars 
     | 
|
| 
       3004 
3021 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3005 
3022 
     | 
    
         
             
                  center: false
         
     | 
| 
       3006 
3023 
     | 
    
         
             
                )
         
     | 
| 
       3007 
     | 
    
         
            -
                   
     | 
| 
       3008 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3009 
     | 
    
         
            -
                      Polars.col(name).rolling_min(
         
     | 
| 
       3010 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3011 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3012 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3013 
     | 
    
         
            -
                        center: center
         
     | 
| 
       3014 
     | 
    
         
            -
                      )
         
     | 
| 
       3015 
     | 
    
         
            -
                    )
         
     | 
| 
       3016 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3024 
     | 
    
         
            +
                  super
         
     | 
| 
       3017 
3025 
     | 
    
         
             
                end
         
     | 
| 
       3018 
3026 
     | 
    
         | 
| 
       3019 
3027 
     | 
    
         
             
                # Apply a rolling max (moving max) over the values in this array.
         
     | 
| 
         @@ -3054,16 +3062,7 @@ module Polars 
     | 
|
| 
       3054 
3062 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3055 
3063 
     | 
    
         
             
                  center: false
         
     | 
| 
       3056 
3064 
     | 
    
         
             
                )
         
     | 
| 
       3057 
     | 
    
         
            -
                   
     | 
| 
       3058 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3059 
     | 
    
         
            -
                      Polars.col(name).rolling_max(
         
     | 
| 
       3060 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3061 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3062 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3063 
     | 
    
         
            -
                        center: center
         
     | 
| 
       3064 
     | 
    
         
            -
                      )
         
     | 
| 
       3065 
     | 
    
         
            -
                    )
         
     | 
| 
       3066 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3065 
     | 
    
         
            +
                  super
         
     | 
| 
       3067 
3066 
     | 
    
         
             
                end
         
     | 
| 
       3068 
3067 
     | 
    
         | 
| 
       3069 
3068 
     | 
    
         
             
                # Apply a rolling mean (moving mean) over the values in this array.
         
     | 
| 
         @@ -3104,16 +3103,7 @@ module Polars 
     | 
|
| 
       3104 
3103 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3105 
3104 
     | 
    
         
             
                  center: false
         
     | 
| 
       3106 
3105 
     | 
    
         
             
                )
         
     | 
| 
       3107 
     | 
    
         
            -
                   
     | 
| 
       3108 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3109 
     | 
    
         
            -
                      Polars.col(name).rolling_mean(
         
     | 
| 
       3110 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3111 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3112 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3113 
     | 
    
         
            -
                        center: center
         
     | 
| 
       3114 
     | 
    
         
            -
                      )
         
     | 
| 
       3115 
     | 
    
         
            -
                    )
         
     | 
| 
       3116 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3106 
     | 
    
         
            +
                  super
         
     | 
| 
       3117 
3107 
     | 
    
         
             
                end
         
     | 
| 
       3118 
3108 
     | 
    
         | 
| 
       3119 
3109 
     | 
    
         
             
                # Apply a rolling sum (moving sum) over the values in this array.
         
     | 
| 
         @@ -3154,16 +3144,7 @@ module Polars 
     | 
|
| 
       3154 
3144 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3155 
3145 
     | 
    
         
             
                  center: false
         
     | 
| 
       3156 
3146 
     | 
    
         
             
                )
         
     | 
| 
       3157 
     | 
    
         
            -
                   
     | 
| 
       3158 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3159 
     | 
    
         
            -
                      Polars.col(name).rolling_sum(
         
     | 
| 
       3160 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3161 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3162 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3163 
     | 
    
         
            -
                        center: center
         
     | 
| 
       3164 
     | 
    
         
            -
                      )
         
     | 
| 
       3165 
     | 
    
         
            -
                    )
         
     | 
| 
       3166 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3147 
     | 
    
         
            +
                  super
         
     | 
| 
       3167 
3148 
     | 
    
         
             
                end
         
     | 
| 
       3168 
3149 
     | 
    
         | 
| 
       3169 
3150 
     | 
    
         
             
                # Compute a rolling std dev.
         
     | 
| 
         @@ -3204,21 +3185,9 @@ module Polars 
     | 
|
| 
       3204 
3185 
     | 
    
         
             
                  weights: nil,
         
     | 
| 
       3205 
3186 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3206 
3187 
     | 
    
         
             
                  center: false,
         
     | 
| 
       3207 
     | 
    
         
            -
                  ddof: 1 
     | 
| 
       3208 
     | 
    
         
            -
                  warn_if_unsorted: true
         
     | 
| 
      
 3188 
     | 
    
         
            +
                  ddof: 1
         
     | 
| 
       3209 
3189 
     | 
    
         
             
                )
         
     | 
| 
       3210 
     | 
    
         
            -
                   
     | 
| 
       3211 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3212 
     | 
    
         
            -
                      Polars.col(name).rolling_std(
         
     | 
| 
       3213 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3214 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3215 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3216 
     | 
    
         
            -
                        center: center,
         
     | 
| 
       3217 
     | 
    
         
            -
                        ddof: ddof,
         
     | 
| 
       3218 
     | 
    
         
            -
                        warn_if_unsorted: warn_if_unsorted
         
     | 
| 
       3219 
     | 
    
         
            -
                      )
         
     | 
| 
       3220 
     | 
    
         
            -
                    )
         
     | 
| 
       3221 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3190 
     | 
    
         
            +
                  super
         
     | 
| 
       3222 
3191 
     | 
    
         
             
                end
         
     | 
| 
       3223 
3192 
     | 
    
         | 
| 
       3224 
3193 
     | 
    
         
             
                # Compute a rolling variance.
         
     | 
| 
         @@ -3259,21 +3228,9 @@ module Polars 
     | 
|
| 
       3259 
3228 
     | 
    
         
             
                  weights: nil,
         
     | 
| 
       3260 
3229 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3261 
3230 
     | 
    
         
             
                  center: false,
         
     | 
| 
       3262 
     | 
    
         
            -
                  ddof: 1 
     | 
| 
       3263 
     | 
    
         
            -
                  warn_if_unsorted: true
         
     | 
| 
      
 3231 
     | 
    
         
            +
                  ddof: 1
         
     | 
| 
       3264 
3232 
     | 
    
         
             
                )
         
     | 
| 
       3265 
     | 
    
         
            -
                   
     | 
| 
       3266 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3267 
     | 
    
         
            -
                      Polars.col(name).rolling_var(
         
     | 
| 
       3268 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3269 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3270 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3271 
     | 
    
         
            -
                        center: center,
         
     | 
| 
       3272 
     | 
    
         
            -
                        ddof: ddof,
         
     | 
| 
       3273 
     | 
    
         
            -
                        warn_if_unsorted: warn_if_unsorted
         
     | 
| 
       3274 
     | 
    
         
            -
                      )
         
     | 
| 
       3275 
     | 
    
         
            -
                    )
         
     | 
| 
       3276 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3233 
     | 
    
         
            +
                  super
         
     | 
| 
       3277 
3234 
     | 
    
         
             
                end
         
     | 
| 
       3278 
3235 
     | 
    
         | 
| 
       3279 
3236 
     | 
    
         
             
                # def rolling_apply
         
     | 
| 
         @@ -3312,24 +3269,9 @@ module Polars 
     | 
|
| 
       3312 
3269 
     | 
    
         
             
                  window_size,
         
     | 
| 
       3313 
3270 
     | 
    
         
             
                  weights: nil,
         
     | 
| 
       3314 
3271 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3315 
     | 
    
         
            -
                  center: false 
     | 
| 
       3316 
     | 
    
         
            -
                  warn_if_unsorted: true
         
     | 
| 
      
 3272 
     | 
    
         
            +
                  center: false
         
     | 
| 
       3317 
3273 
     | 
    
         
             
                )
         
     | 
| 
       3318 
     | 
    
         
            -
                   
     | 
| 
       3319 
     | 
    
         
            -
                    min_periods = window_size
         
     | 
| 
       3320 
     | 
    
         
            -
                  end
         
     | 
| 
       3321 
     | 
    
         
            -
             
     | 
| 
       3322 
     | 
    
         
            -
                  to_frame
         
     | 
| 
       3323 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3324 
     | 
    
         
            -
                      Polars.col(name).rolling_median(
         
     | 
| 
       3325 
     | 
    
         
            -
                        window_size,
         
     | 
| 
       3326 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3327 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3328 
     | 
    
         
            -
                        center: center,
         
     | 
| 
       3329 
     | 
    
         
            -
                        warn_if_unsorted: warn_if_unsorted
         
     | 
| 
       3330 
     | 
    
         
            -
                      )
         
     | 
| 
       3331 
     | 
    
         
            -
                    )
         
     | 
| 
       3332 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3274 
     | 
    
         
            +
                  super
         
     | 
| 
       3333 
3275 
     | 
    
         
             
                end
         
     | 
| 
       3334 
3276 
     | 
    
         | 
| 
       3335 
3277 
     | 
    
         
             
                # Compute a rolling quantile.
         
     | 
| 
         @@ -3385,26 +3327,9 @@ module Polars 
     | 
|
| 
       3385 
3327 
     | 
    
         
             
                  window_size: 2,
         
     | 
| 
       3386 
3328 
     | 
    
         
             
                  weights: nil,
         
     | 
| 
       3387 
3329 
     | 
    
         
             
                  min_periods: nil,
         
     | 
| 
       3388 
     | 
    
         
            -
                  center: false 
     | 
| 
       3389 
     | 
    
         
            -
                  warn_if_unsorted: true
         
     | 
| 
      
 3330 
     | 
    
         
            +
                  center: false
         
     | 
| 
       3390 
3331 
     | 
    
         
             
                )
         
     | 
| 
       3391 
     | 
    
         
            -
                   
     | 
| 
       3392 
     | 
    
         
            -
                    min_periods = window_size
         
     | 
| 
       3393 
     | 
    
         
            -
                  end
         
     | 
| 
       3394 
     | 
    
         
            -
             
     | 
| 
       3395 
     | 
    
         
            -
                  to_frame
         
     | 
| 
       3396 
     | 
    
         
            -
                    .select(
         
     | 
| 
       3397 
     | 
    
         
            -
                      Polars.col(name).rolling_quantile(
         
     | 
| 
       3398 
     | 
    
         
            -
                        quantile,
         
     | 
| 
       3399 
     | 
    
         
            -
                        interpolation: interpolation,
         
     | 
| 
       3400 
     | 
    
         
            -
                        window_size: window_size,
         
     | 
| 
       3401 
     | 
    
         
            -
                        weights: weights,
         
     | 
| 
       3402 
     | 
    
         
            -
                        min_periods: min_periods,
         
     | 
| 
       3403 
     | 
    
         
            -
                        center: center,
         
     | 
| 
       3404 
     | 
    
         
            -
                        warn_if_unsorted: warn_if_unsorted
         
     | 
| 
       3405 
     | 
    
         
            -
                      )
         
     | 
| 
       3406 
     | 
    
         
            -
                    )
         
     | 
| 
       3407 
     | 
    
         
            -
                    .to_series
         
     | 
| 
      
 3332 
     | 
    
         
            +
                  super
         
     | 
| 
       3408 
3333 
     | 
    
         
             
                end
         
     | 
| 
       3409 
3334 
     | 
    
         | 
| 
       3410 
3335 
     | 
    
         
             
                # Compute a rolling skew.
         
     | 
| 
         @@ -3806,7 +3731,7 @@ module Polars 
     | 
|
| 
       3806 
3731 
     | 
    
         
             
                #   #         null
         
     | 
| 
       3807 
3732 
     | 
    
         
             
                #   #         10
         
     | 
| 
       3808 
3733 
     | 
    
         
             
                #   # ]
         
     | 
| 
       3809 
     | 
    
         
            -
                def clip(min_val, max_val)
         
     | 
| 
      
 3734 
     | 
    
         
            +
                def clip(min_val = nil, max_val = nil)
         
     | 
| 
       3810 
3735 
     | 
    
         
             
                  super
         
     | 
| 
       3811 
3736 
     | 
    
         
             
                end
         
     | 
| 
       3812 
3737 
     | 
    
         | 
| 
         @@ -3883,33 +3808,20 @@ module Polars 
     | 
|
| 
       3883 
3808 
     | 
    
         
             
                #   #         200
         
     | 
| 
       3884 
3809 
     | 
    
         
             
                #   # ]
         
     | 
| 
       3885 
3810 
     | 
    
         
             
                #
         
     | 
| 
       3886 
     | 
    
         
            -
                # @example Passing a mapping with replacements is also supported as syntactic sugar. 
     | 
| 
      
 3811 
     | 
    
         
            +
                # @example Passing a mapping with replacements is also supported as syntactic sugar.
         
     | 
| 
       3887 
3812 
     | 
    
         
             
                #   mapping = {2 => 100, 3 => 200}
         
     | 
| 
       3888 
     | 
    
         
            -
                #   s.replace(mapping 
     | 
| 
      
 3813 
     | 
    
         
            +
                #   s.replace(mapping)
         
     | 
| 
       3889 
3814 
     | 
    
         
             
                #   # =>
         
     | 
| 
       3890 
3815 
     | 
    
         
             
                #   # shape: (4,)
         
     | 
| 
       3891 
3816 
     | 
    
         
             
                #   # Series: '' [i64]
         
     | 
| 
       3892 
3817 
     | 
    
         
             
                #   # [
         
     | 
| 
       3893 
     | 
    
         
            -
                #   #          
     | 
| 
      
 3818 
     | 
    
         
            +
                #   #         1
         
     | 
| 
       3894 
3819 
     | 
    
         
             
                #   #         100
         
     | 
| 
       3895 
3820 
     | 
    
         
             
                #   #         100
         
     | 
| 
       3896 
3821 
     | 
    
         
             
                #   #         200
         
     | 
| 
       3897 
3822 
     | 
    
         
             
                #   # ]
         
     | 
| 
       3898 
3823 
     | 
    
         
             
                #
         
     | 
| 
       3899 
     | 
    
         
            -
                # @example The  
     | 
| 
       3900 
     | 
    
         
            -
                #   default = Polars::Series.new([2.5, 5.0, 7.5, 10.0])
         
     | 
| 
       3901 
     | 
    
         
            -
                #   s.replace(2, 100, default: default)
         
     | 
| 
       3902 
     | 
    
         
            -
                #   # =>
         
     | 
| 
       3903 
     | 
    
         
            -
                #   # shape: (4,)
         
     | 
| 
       3904 
     | 
    
         
            -
                #   # Series: '' [f64]
         
     | 
| 
       3905 
     | 
    
         
            -
                #   # [
         
     | 
| 
       3906 
     | 
    
         
            -
                #   #         2.5
         
     | 
| 
       3907 
     | 
    
         
            -
                #   #         100.0
         
     | 
| 
       3908 
     | 
    
         
            -
                #   #         100.0
         
     | 
| 
       3909 
     | 
    
         
            -
                #   #         10.0
         
     | 
| 
       3910 
     | 
    
         
            -
                #   # ]
         
     | 
| 
       3911 
     | 
    
         
            -
                #
         
     | 
| 
       3912 
     | 
    
         
            -
                # @example Replacing by values of a different data type sets the return type based on a combination of the `new` data type and either the original data type or the default data type if it was set.
         
     | 
| 
      
 3824 
     | 
    
         
            +
                # @example The original data type is preserved when replacing by values of a different data type.
         
     | 
| 
       3913 
3825 
     | 
    
         
             
                #   s = Polars::Series.new(["x", "y", "z"])
         
     | 
| 
       3914 
3826 
     | 
    
         
             
                #   mapping = {"x" => 1, "y" => 2, "z" => 3}
         
     | 
| 
       3915 
3827 
     | 
    
         
             
                #   s.replace(mapping)
         
     | 
| 
         @@ -3921,28 +3833,6 @@ module Polars 
     | 
|
| 
       3921 
3833 
     | 
    
         
             
                #   #         "2"
         
     | 
| 
       3922 
3834 
     | 
    
         
             
                #   #         "3"
         
     | 
| 
       3923 
3835 
     | 
    
         
             
                #   # ]
         
     | 
| 
       3924 
     | 
    
         
            -
                #
         
     | 
| 
       3925 
     | 
    
         
            -
                # @example
         
     | 
| 
       3926 
     | 
    
         
            -
                #   s.replace(mapping, default: nil)
         
     | 
| 
       3927 
     | 
    
         
            -
                #   # =>
         
     | 
| 
       3928 
     | 
    
         
            -
                #   # shape: (3,)
         
     | 
| 
       3929 
     | 
    
         
            -
                #   # Series: '' [i64]
         
     | 
| 
       3930 
     | 
    
         
            -
                #   # [
         
     | 
| 
       3931 
     | 
    
         
            -
                #   #         1
         
     | 
| 
       3932 
     | 
    
         
            -
                #   #         2
         
     | 
| 
       3933 
     | 
    
         
            -
                #   #         3
         
     | 
| 
       3934 
     | 
    
         
            -
                #   # ]
         
     | 
| 
       3935 
     | 
    
         
            -
                #
         
     | 
| 
       3936 
     | 
    
         
            -
                # @example Set the `return_dtype` parameter to control the resulting data type directly.
         
     | 
| 
       3937 
     | 
    
         
            -
                #   s.replace(mapping, return_dtype: Polars::UInt8)
         
     | 
| 
       3938 
     | 
    
         
            -
                #   # =>
         
     | 
| 
       3939 
     | 
    
         
            -
                #   # shape: (3,)
         
     | 
| 
       3940 
     | 
    
         
            -
                #   # Series: '' [u8]
         
     | 
| 
       3941 
     | 
    
         
            -
                #   # [
         
     | 
| 
       3942 
     | 
    
         
            -
                #   #         1
         
     | 
| 
       3943 
     | 
    
         
            -
                #   #         2
         
     | 
| 
       3944 
     | 
    
         
            -
                #   #         3
         
     | 
| 
       3945 
     | 
    
         
            -
                #   # ]
         
     | 
| 
       3946 
3836 
     | 
    
         
             
                def replace(old, new = Expr::NO_DEFAULT, default: Expr::NO_DEFAULT, return_dtype: nil)
         
     | 
| 
       3947 
3837 
     | 
    
         
             
                  super
         
     | 
| 
       3948 
3838 
     | 
    
         
             
                end
         
     | 
| 
         @@ -3989,7 +3879,8 @@ module Polars 
     | 
|
| 
       3989 
3879 
     | 
    
         
             
                  half_life: nil,
         
     | 
| 
       3990 
3880 
     | 
    
         
             
                  alpha: nil,
         
     | 
| 
       3991 
3881 
     | 
    
         
             
                  adjust: true,
         
     | 
| 
       3992 
     | 
    
         
            -
                  min_periods: 1
         
     | 
| 
      
 3882 
     | 
    
         
            +
                  min_periods: 1,
         
     | 
| 
      
 3883 
     | 
    
         
            +
                  ignore_nulls: true
         
     | 
| 
       3993 
3884 
     | 
    
         
             
                )
         
     | 
| 
       3994 
3885 
     | 
    
         
             
                  super
         
     | 
| 
       3995 
3886 
     | 
    
         
             
                end
         
     | 
| 
         @@ -4004,7 +3895,8 @@ module Polars 
     | 
|
| 
       4004 
3895 
     | 
    
         
             
                  alpha: nil,
         
     | 
| 
       4005 
3896 
     | 
    
         
             
                  adjust: true,
         
     | 
| 
       4006 
3897 
     | 
    
         
             
                  bias: false,
         
     | 
| 
       4007 
     | 
    
         
            -
                  min_periods: 1
         
     | 
| 
      
 3898 
     | 
    
         
            +
                  min_periods: 1,
         
     | 
| 
      
 3899 
     | 
    
         
            +
                  ignore_nulls: true
         
     | 
| 
       4008 
3900 
     | 
    
         
             
                )
         
     | 
| 
       4009 
3901 
     | 
    
         
             
                  super
         
     | 
| 
       4010 
3902 
     | 
    
         
             
                end
         
     | 
| 
         @@ -4019,7 +3911,8 @@ module Polars 
     | 
|
| 
       4019 
3911 
     | 
    
         
             
                  alpha: nil,
         
     | 
| 
       4020 
3912 
     | 
    
         
             
                  adjust: true,
         
     | 
| 
       4021 
3913 
     | 
    
         
             
                  bias: false,
         
     | 
| 
       4022 
     | 
    
         
            -
                  min_periods: 1
         
     | 
| 
      
 3914 
     | 
    
         
            +
                  min_periods: 1,
         
     | 
| 
      
 3915 
     | 
    
         
            +
                  ignore_nulls: true
         
     | 
| 
       4023 
3916 
     | 
    
         
             
                )
         
     | 
| 
       4024 
3917 
     | 
    
         
             
                  super
         
     | 
| 
       4025 
3918 
     | 
    
         
             
                end
         
     | 
| 
         @@ -4218,12 +4111,12 @@ module Polars 
     | 
|
| 
       4218 
4111 
     | 
    
         
             
                  end
         
     | 
| 
       4219 
4112 
     | 
    
         | 
| 
       4220 
4113 
     | 
    
         
             
                  if other.is_a?(::Time) && dtype.is_a?(Datetime)
         
     | 
| 
       4221 
     | 
    
         
            -
                    ts = Utils. 
     | 
| 
      
 4114 
     | 
    
         
            +
                    ts = Utils.datetime_to_int(other, time_unit)
         
     | 
| 
       4222 
4115 
     | 
    
         
             
                    f = ffi_func("#{op}_<>", Int64, _s)
         
     | 
| 
       4223 
4116 
     | 
    
         
             
                    fail if f.nil?
         
     | 
| 
       4224 
4117 
     | 
    
         
             
                    return Utils.wrap_s(f.call(ts))
         
     | 
| 
       4225 
4118 
     | 
    
         
             
                  elsif other.is_a?(::Date) && dtype == Date
         
     | 
| 
       4226 
     | 
    
         
            -
                    d = Utils. 
     | 
| 
      
 4119 
     | 
    
         
            +
                    d = Utils.date_to_int(other)
         
     | 
| 
       4227 
4120 
     | 
    
         
             
                    f = ffi_func("#{op}_<>", Int32, _s)
         
     | 
| 
       4228 
4121 
     | 
    
         
             
                    fail if f.nil?
         
     | 
| 
       4229 
4122 
     | 
    
         
             
                    return Utils.wrap_s(f.call(d))
         
     | 
| 
         @@ -4309,10 +4202,18 @@ module Polars 
     | 
|
| 
       4309 
4202 
     | 
    
         
             
                      # TODO improve performance
         
     | 
| 
       4310 
4203 
     | 
    
         
             
                      constructor.call(name, values.to_a, strict)
         
     | 
| 
       4311 
4204 
     | 
    
         
             
                    end
         
     | 
| 
       4312 
     | 
    
         
            -
                  elsif values.shape. 
     | 
| 
      
 4205 
     | 
    
         
            +
                  elsif values.shape.sum == 0
         
     | 
| 
       4313 
4206 
     | 
    
         
             
                    raise Todo
         
     | 
| 
       4314 
4207 
     | 
    
         
             
                  else
         
     | 
| 
       4315 
     | 
    
         
            -
                     
     | 
| 
      
 4208 
     | 
    
         
            +
                    original_shape = values.shape
         
     | 
| 
      
 4209 
     | 
    
         
            +
                    values = values.reshape(original_shape.inject(&:*))
         
     | 
| 
      
 4210 
     | 
    
         
            +
                    rb_s = numo_to_rbseries(
         
     | 
| 
      
 4211 
     | 
    
         
            +
                      name,
         
     | 
| 
      
 4212 
     | 
    
         
            +
                      values,
         
     | 
| 
      
 4213 
     | 
    
         
            +
                      strict: strict,
         
     | 
| 
      
 4214 
     | 
    
         
            +
                      nan_to_null: nan_to_null
         
     | 
| 
      
 4215 
     | 
    
         
            +
                    )
         
     | 
| 
      
 4216 
     | 
    
         
            +
                    Utils.wrap_s(rb_s).reshape(original_shape)._s
         
     | 
| 
       4316 
4217 
     | 
    
         
             
                  end
         
     | 
| 
       4317 
4218 
     | 
    
         
             
                end
         
     | 
| 
       4318 
4219 
     | 
    
         | 
| 
         @@ -4362,6 +4263,8 @@ module Polars 
     | 
|
| 
       4362 
4263 
     | 
    
         
             
                    end
         
     | 
| 
       4363 
4264 
     | 
    
         | 
| 
       4364 
4265 
     | 
    
         
             
                    constructor = polars_type_to_constructor(dtype)
         
     | 
| 
      
 4266 
     | 
    
         
            +
                    # TODO remove
         
     | 
| 
      
 4267 
     | 
    
         
            +
                    strict = false if dtype == Decimal
         
     | 
| 
       4365 
4268 
     | 
    
         
             
                    rbseries = constructor.call(name, values, strict)
         
     | 
| 
       4366 
4269 
     | 
    
         | 
| 
       4367 
4270 
     | 
    
         
             
                    base_type = dtype.is_a?(DataType) ? dtype.class : dtype
         
     | 
| 
         @@ -4370,11 +4273,11 @@ module Polars 
     | 
|
| 
       4370 
4273 
     | 
    
         
             
                        rbseries = rbseries.cast(dtype, true)
         
     | 
| 
       4371 
4274 
     | 
    
         
             
                      end
         
     | 
| 
       4372 
4275 
     | 
    
         
             
                    end
         
     | 
| 
       4373 
     | 
    
         
            -
                     
     | 
| 
      
 4276 
     | 
    
         
            +
                    rbseries
         
     | 
| 
       4374 
4277 
     | 
    
         
             
                  elsif dtype == Struct
         
     | 
| 
       4375 
4278 
     | 
    
         
             
                    struct_schema = dtype.is_a?(Struct) ? dtype.to_schema : nil
         
     | 
| 
       4376 
4279 
     | 
    
         
             
                    empty = {}
         
     | 
| 
       4377 
     | 
    
         
            -
                     
     | 
| 
      
 4280 
     | 
    
         
            +
                    DataFrame.sequence_to_rbdf(
         
     | 
| 
       4378 
4281 
     | 
    
         
             
                      values.map { |v| v.nil? ? empty : v },
         
     | 
| 
       4379 
4282 
     | 
    
         
             
                      schema: struct_schema,
         
     | 
| 
       4380 
4283 
     | 
    
         
             
                      orient: "row",
         
     | 
| 
         @@ -4399,13 +4302,13 @@ module Polars 
     | 
|
| 
       4399 
4302 
     | 
    
         
             
                      # TODO
         
     | 
| 
       4400 
4303 
     | 
    
         
             
                      time_unit = nil
         
     | 
| 
       4401 
4304 
     | 
    
         | 
| 
       4402 
     | 
    
         
            -
                      rb_series = RbSeries. 
     | 
| 
      
 4305 
     | 
    
         
            +
                      rb_series = RbSeries.new_from_any_values(name, values, strict)
         
     | 
| 
       4403 
4306 
     | 
    
         
             
                      if time_unit.nil?
         
     | 
| 
       4404 
4307 
     | 
    
         
             
                        s = Utils.wrap_s(rb_series)
         
     | 
| 
       4405 
4308 
     | 
    
         
             
                      else
         
     | 
| 
       4406 
4309 
     | 
    
         
             
                        s = Utils.wrap_s(rb_series).dt.cast_time_unit(time_unit)
         
     | 
| 
       4407 
4310 
     | 
    
         
             
                      end
         
     | 
| 
       4408 
     | 
    
         
            -
                       
     | 
| 
      
 4311 
     | 
    
         
            +
                      s._s
         
     | 
| 
       4409 
4312 
     | 
    
         
             
                    elsif defined?(Numo::NArray) && value.is_a?(Numo::NArray) && value.shape.length == 1
         
     | 
| 
       4410 
4313 
     | 
    
         
             
                      raise Todo
         
     | 
| 
       4411 
4314 
     | 
    
         
             
                    elsif ruby_dtype == ::Array
         
     | 
| 
         @@ -4419,11 +4322,11 @@ module Polars 
     | 
|
| 
       4419 
4322 
     | 
    
         
             
                        end
         
     | 
| 
       4420 
4323 
     | 
    
         
             
                        return srs
         
     | 
| 
       4421 
4324 
     | 
    
         
             
                      end
         
     | 
| 
       4422 
     | 
    
         
            -
                       
     | 
| 
      
 4325 
     | 
    
         
            +
                      sequence_from_anyvalue_or_object(name, values)
         
     | 
| 
       4423 
4326 
     | 
    
         
             
                    elsif ruby_dtype == Series
         
     | 
| 
       4424 
     | 
    
         
            -
                       
     | 
| 
      
 4327 
     | 
    
         
            +
                      RbSeries.new_series_list(name, values.map(&:_s), strict)
         
     | 
| 
       4425 
4328 
     | 
    
         
             
                    elsif ruby_dtype == RbSeries
         
     | 
| 
       4426 
     | 
    
         
            -
                       
     | 
| 
      
 4329 
     | 
    
         
            +
                      RbSeries.new_series_list(name, values, strict)
         
     | 
| 
       4427 
4330 
     | 
    
         
             
                    else
         
     | 
| 
       4428 
4331 
     | 
    
         
             
                      constructor =
         
     | 
| 
       4429 
4332 
     | 
    
         
             
                        if value.is_a?(::String)
         
     | 
| 
         @@ -4438,13 +4341,26 @@ module Polars 
     | 
|
| 
       4438 
4341 
     | 
    
         
             
                        else
         
     | 
| 
       4439 
4342 
     | 
    
         
             
                          rb_type_to_constructor(value.class)
         
     | 
| 
       4440 
4343 
     | 
    
         
             
                        end
         
     | 
| 
       4441 
     | 
    
         
            -
             
     | 
| 
      
 4344 
     | 
    
         
            +
             
     | 
| 
      
 4345 
     | 
    
         
            +
                      construct_series_with_fallbacks(constructor, name, values, dtype, strict: strict)
         
     | 
| 
      
 4346 
     | 
    
         
            +
                    end
         
     | 
| 
      
 4347 
     | 
    
         
            +
                  end
         
     | 
| 
      
 4348 
     | 
    
         
            +
                end
         
     | 
| 
      
 4349 
     | 
    
         
            +
             
     | 
| 
      
 4350 
     | 
    
         
            +
                def construct_series_with_fallbacks(constructor, name, values, dtype, strict:)
         
     | 
| 
      
 4351 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 4352 
     | 
    
         
            +
                    constructor.call(name, values, strict)
         
     | 
| 
      
 4353 
     | 
    
         
            +
                  rescue
         
     | 
| 
      
 4354 
     | 
    
         
            +
                    if dtype.nil?
         
     | 
| 
      
 4355 
     | 
    
         
            +
                      RbSeries.new_from_any_values(name, values, strict)
         
     | 
| 
      
 4356 
     | 
    
         
            +
                    else
         
     | 
| 
      
 4357 
     | 
    
         
            +
                      RbSeries.new_from_any_values_and_dtype(name, values, dtype, strict)
         
     | 
| 
       4442 
4358 
     | 
    
         
             
                    end
         
     | 
| 
       4443 
4359 
     | 
    
         
             
                  end
         
     | 
| 
       4444 
4360 
     | 
    
         
             
                end
         
     | 
| 
       4445 
4361 
     | 
    
         | 
| 
       4446 
4362 
     | 
    
         
             
                def sequence_from_anyvalue_or_object(name, values)
         
     | 
| 
       4447 
     | 
    
         
            -
                  RbSeries. 
     | 
| 
      
 4363 
     | 
    
         
            +
                  RbSeries.new_from_any_values(name, values, true)
         
     | 
| 
       4448 
4364 
     | 
    
         
             
                rescue
         
     | 
| 
       4449 
4365 
     | 
    
         
             
                  RbSeries.new_object(name, values, false)
         
     | 
| 
       4450 
4366 
     | 
    
         
             
                end
         
     | 
| 
         @@ -4461,10 +4377,10 @@ module Polars 
     | 
|
| 
       4461 
4377 
     | 
    
         
             
                  UInt32 => RbSeries.method(:new_opt_u32),
         
     | 
| 
       4462 
4378 
     | 
    
         
             
                  UInt64 => RbSeries.method(:new_opt_u64),
         
     | 
| 
       4463 
4379 
     | 
    
         
             
                  Decimal => RbSeries.method(:new_decimal),
         
     | 
| 
       4464 
     | 
    
         
            -
                  Date => RbSeries.method(: 
     | 
| 
       4465 
     | 
    
         
            -
                  Datetime => RbSeries.method(: 
     | 
| 
       4466 
     | 
    
         
            -
                  Duration => RbSeries.method(: 
     | 
| 
       4467 
     | 
    
         
            -
                  Time => RbSeries.method(: 
     | 
| 
      
 4380 
     | 
    
         
            +
                  Date => RbSeries.method(:new_from_any_values),
         
     | 
| 
      
 4381 
     | 
    
         
            +
                  Datetime => RbSeries.method(:new_from_any_values),
         
     | 
| 
      
 4382 
     | 
    
         
            +
                  Duration => RbSeries.method(:new_from_any_values),
         
     | 
| 
      
 4383 
     | 
    
         
            +
                  Time => RbSeries.method(:new_from_any_values),
         
     | 
| 
       4468 
4384 
     | 
    
         
             
                  Boolean => RbSeries.method(:new_opt_bool),
         
     | 
| 
       4469 
4385 
     | 
    
         
             
                  Utf8 => RbSeries.method(:new_str),
         
     | 
| 
       4470 
4386 
     | 
    
         
             
                  Object => RbSeries.method(:new_object),
         
     |