lib/polars/utils.rb in polars-df-0.1.3 vs lib/polars/utils.rb in polars-df-0.1.4

- old
+ new

@@ -35,9 +35,37 @@ else raise ArgumentError, "tu must be one of {{'ns', 'us', 'ms'}}, got #{tu}" end end + def self._to_ruby_datetime(value, dtype, tu: "ns", tz: nil) + if dtype == :date + # days to seconds + # important to create from utc. Not doing this leads + # to inconsistencies dependent on the timezone you are in. + Time.at(value * 86400).utc.to_date + # TODO fix dtype + elsif dtype.to_s.start_with?("datetime[") + if tz.nil? || tz == "" + if tu == "ns" + raise Todo + elsif tu == "us" + dt = Time.at(value / 1000000, value % 1000000, :usec).utc + elsif tu == "ms" + raise Todo + else + raise ArgumentError, "tu must be one of {{'ns', 'us', 'ms'}}, got #{tu}" + end + else + raise Todo + end + + dt + else + raise NotImplementedError + end + end + def self.selection_to_rbexpr_list(exprs) if exprs.is_a?(String) || exprs.is_a?(Expr) || exprs.is_a?(Series) exprs = [exprs] end