Sha256: aaf8f9a59861b32d1d2446d44eb11de8bef9fbe0f20cdf4b6fb6eb72b368a18a

Contents?: true

Size: 1.13 KB

Versions: 46

Compression:

Stored size: 1.13 KB

Contents

module Polars
  module Functions
    # Return an expression representing a literal value.
    #
    # @return [Expr]
    def lit(value, dtype: nil, allow_object: nil)
      if value.is_a?(::Time) || value.is_a?(::DateTime)
        time_unit = dtype&.time_unit || "ns"
        time_zone = dtype.&time_zone
        e = lit(Utils.datetime_to_int(value, time_unit)).cast(Datetime.new(time_unit))
        if time_zone
          return e.dt.replace_time_zone(time_zone.to_s)
        else
          return e
        end
      elsif value.is_a?(::Date)
        return lit(::Time.utc(value.year, value.month, value.day)).cast(Date)
      elsif value.is_a?(Polars::Series)
        name = value.name
        value = value._s
        e = Utils.wrap_expr(Plr.lit(value, allow_object))
        if name == ""
          return e
        end
        return e.alias(name)
      elsif (defined?(Numo::NArray) && value.is_a?(Numo::NArray)) || value.is_a?(::Array)
        return lit(Series.new("", value))
      elsif dtype
        return Utils.wrap_expr(Plr.lit(value, allow_object)).cast(dtype)
      end

      Utils.wrap_expr(Plr.lit(value, allow_object))
    end
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
polars-df-0.17.0-x86_64-linux lib/polars/functions/lit.rb
polars-df-0.17.0-x86_64-linux-musl lib/polars/functions/lit.rb
polars-df-0.17.0-x86_64-darwin lib/polars/functions/lit.rb
polars-df-0.17.0-x64-mingw-ucrt lib/polars/functions/lit.rb
polars-df-0.17.0-arm64-darwin lib/polars/functions/lit.rb
polars-df-0.17.0-aarch64-linux lib/polars/functions/lit.rb
polars-df-0.17.0-aarch64-linux-musl lib/polars/functions/lit.rb
polars-df-0.17.0 lib/polars/functions/lit.rb
polars-df-0.16.0-x86_64-linux lib/polars/functions/lit.rb
polars-df-0.16.0-x86_64-linux-musl lib/polars/functions/lit.rb
polars-df-0.16.0-x86_64-darwin lib/polars/functions/lit.rb
polars-df-0.16.0-x64-mingw-ucrt lib/polars/functions/lit.rb
polars-df-0.16.0-arm64-darwin lib/polars/functions/lit.rb
polars-df-0.16.0-aarch64-linux lib/polars/functions/lit.rb
polars-df-0.16.0-aarch64-linux-musl lib/polars/functions/lit.rb
polars-df-0.16.0 lib/polars/functions/lit.rb
polars-df-0.15.0-x86_64-linux lib/polars/functions/lit.rb
polars-df-0.15.0-x86_64-linux-musl lib/polars/functions/lit.rb
polars-df-0.15.0-x86_64-darwin lib/polars/functions/lit.rb
polars-df-0.15.0-x64-mingw-ucrt lib/polars/functions/lit.rb