Sha256: 059d5657d7af26887d1e0f618f06ccf8ceb742a42a5a7deda9785ca9645a51dd
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
use magnus::{RHash, Value}; use crate::conversion::Wrap; use crate::file::get_file_like; use crate::prelude::DataType; use crate::{RbPolarsErr, RbResult}; pub fn read_ipc_schema(rb_f: Value) -> RbResult<Value> { use polars_core::export::arrow::io::ipc::read::read_file_metadata; let mut r = get_file_like(rb_f, false)?; let metadata = read_file_metadata(&mut r).map_err(RbPolarsErr::arrow)?; let dict = RHash::new(); for field in metadata.schema.fields { let dt: Wrap<DataType> = Wrap((&field.data_type).into()); dict.aset(field.name, dt)?; } Ok(dict.into()) } pub fn read_parquet_schema(rb_f: Value) -> RbResult<Value> { use polars_core::export::arrow::io::parquet::read::{infer_schema, read_metadata}; let mut r = get_file_like(rb_f, false)?; let metadata = read_metadata(&mut r).map_err(RbPolarsErr::arrow)?; let arrow_schema = infer_schema(&metadata).map_err(RbPolarsErr::arrow)?; let dict = RHash::new(); for field in arrow_schema.fields { let dt: Wrap<DataType> = Wrap((&field.data_type).into()); dict.aset(field.name, dt)?; } Ok(dict.into()) }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
polars-df-0.6.0 | ext/polars/src/functions/io.rs |
polars-df-0.5.0 | ext/polars/src/functions/io.rs |