polars 0.17.0

DataFrame Library based on Apache Arrow
Documentation
[package]
name = "polars"
version = "0.17.0"
authors = ["ritchie46 <ritchie46@gmail.com>"]
edition = "2018"
license = "MIT"
description = "DataFrame Library based on Apache Arrow"
repository = "https://github.com/pola-rs/polars"
readme = "../README.md"

[features]
rows = ["polars-core/rows"]
simd = ["polars-core/simd"]
avx512 = ["polars-core/avx512"]
docs = ["polars-core/docs"]
temporal = ["polars-core/temporal", "polars-lazy/temporal", "polars-io/temporal"]
random = ["polars-core/random"]
default = ["docs",
    "zip_with",
    "csv-file",
    "temporal",
    "performant",
    "plain_fmt",
    "dtype-slim",
]
ndarray = ["polars-core/ndarray"]
# serde support for dataframes and series
serde = ["polars-core/serde"]
parquet = ["polars-io", "polars-core/parquet", "polars-lazy/parquet", "polars-io/parquet"]
lazy = ["polars-core/lazy", "polars-lazy", "polars-lazy/compile"]
# commented out until UB is fixed
#parallel = ["polars-core/parallel"]

# extra utilities for Utf8Chunked
strings = ["polars-core/strings"]

# support for ObjectChunked<T> (downcastable Series of any type)
object = ["polars-core/object"]

# support for arrows json parsing
json = ["polars-io", "polars-io/json"]

# support for arrows ipc file parsing
ipc = ["polars-io", "polars-io/ipc"]

# support for arrows csv file parsing
csv-file = ["polars-io", "polars-io/csv-file", "polars-lazy/csv-file"]

# ~40% faster chunkedarray creation, but may lead to unexpected panic if iterator incorrectly sets a size_hint
# that fits a TrustedLen iterator.
performant = ["polars-core/performant"]

# Choose one of those features for dataframe formatting.
#   - plain_fmt: less compile times, simpler formatting
#   - pretty_fmt: better looking dataframes for increase compile times
plain_fmt = ["polars-core/plain_fmt"]
pretty_fmt = ["polars-core/pretty_fmt"]

# features
# resample operation on DataFrame
pivot = ["polars-core/pivot"]
# resample operation on DataFrame
downsample = ["polars-core/downsample"]
# sort by multiple columns
sort_multiple = ["polars-core/sort_multiple"]

# extra operations
is_in = ["polars-core/is_in", "polars-lazy/is_in"]
zip_with = ["polars-core/zip_with"]
round_series = ["polars-core/round_series", "polars-lazy/round_series"]
checked_arithmetic = ["polars-core/checked_arithmetic"]
repeat_by = ["polars-core/repeat_by", "polars-lazy/repeat_by"]
is_first = ["polars-core/is_first", "polars-lazy/is_first"]
is_last = ["polars-core/is_last"]
asof_join = ["polars-core/asof_join", "polars-lazy/asof_join"]
cross_join = ["polars-core/cross_join", "polars-lazy/cross_join"]
dot_product = ["polars-core/dot_product", "polars-lazy/dot_product"]
concat_str = ["polars-core/concat_str", "polars-lazy/concat_str"]
row_hash = ["polars-core/row_hash"]
reinterpret = ["polars-core/reinterpret"]
decompress = ["polars-io/decompress"]
decompress-fast = ["polars-io/decompress-fast"]
mode = ["polars-core/mode", "polars-lazy/mode"]
take_opt_iter = ["polars-core/take_opt_iter"]
extract_jsonpath = ["polars-core/extract_jsonpath", "polars-core/strings"]
groupby_list = ["polars-core/groupby_list"]
lazy_regex = ["polars-lazy/regex"]
cum_agg = ["polars-core/cum_agg", "polars-core/cum_agg"]
rolling_window = ["polars-core/rolling_window", "polars-lazy/rolling_window"]
interpolate = ["polars-core/interpolate", "polars-lazy/interpolate"]
list = ["polars-core/list", "polars-lazy/list"]
rank = ["polars-core/rank", "polars-lazy/rank"]
diff = ["polars-core/diff", "polars-lazy/diff"]
moment = ["polars-core/moment", "polars-lazy/moment"]
arange = ["polars-lazy/arange"]
true_div = ["polars-lazy/true_div"]

# don't use this
private = ["polars-lazy/private"]

# all opt-in datatypes
dtype-full = [
    "dtype-date",
    "dtype-datetime",
    "dtype-time",
    "dtype-i8",
    "dtype-i16",
    "dtype-u8",
    "dtype-u16",
    "dtype-categorical",
]

# sensible minimal set of opt-in datatypes
dtype-slim = [
    "dtype-date",
    "dtype-datetime",
]

# opt-in datatypes for Series
dtype-date = ["polars-core/dtype-date", "polars-lazy/dtype-date", "polars-io/dtype-date"]
dtype-datetime= ["polars-core/dtype-datetime", "polars-lazy/dtype-datetime", "polars-io/dtype-datetime"]
dtype-time= ["polars-core/dtype-time", "polars-io/dtype-time"]
dtype-i8 = ["polars-core/dtype-i8", "polars-lazy/dtype-i8"]
dtype-i16 = ["polars-core/dtype-i16", "polars-lazy/dtype-i16"]
dtype-u8 = ["polars-core/dtype-u8", "polars-lazy/dtype-u8"]
dtype-u16 = ["polars-core/dtype-u16", "polars-lazy/dtype-u16"]
dtype-categorical = ["polars-core/dtype-categorical"]

docs-selection = [
    "csv-file",
    "json",
    "parquet",
    "ipc",
    "dtype-full",
    "pivot",
    "is_in",
    "sort_multiple",
    "rows",
    "docs",
    "strings",
    "object",
    "lazy",
    "temporal",
    "random",
    "zip_with",
    "round_series",
    "checked_arithmetic",
    "ndarray",
    "downsample",
    "repeat_by",
    "is_first",
    "is_last",
    "asof_join",
    "cross_join",
    "concat_str",
    "decompress",
    "mode",
    "take_opt_iter",
    "extract_jsonpath",
    "cum_agg",
    "rolling_window",
    "interpolate",
    "diff",
    "rank",
    "list",
    "arange"
]

[dependencies]
polars-core = {version = "0.17.0", path = "./polars-core", features= ["docs", "private"], default-features = false}
polars-io = {version = "0.17.0", path = "./polars-io", features = ["private"], default-features = false, optional=true}
polars-lazy = {version = "0.17.0", path = "./polars-lazy", features=["private"], default-features = false, optional=true}

[dev-dependencies]
criterion = "0.3"
lazy_static = "1.4"
rand = "0.8"
ahash = "0.7"

# see: https://bheisler.github.io/criterion.rs/book/faq.html
[lib]
bench = false

[[bench]]
name = "csv"
harness = false

[[bench]]
name = "groupby"
harness = false

[[bench]]
name = "collect"
harness = false

[[bench]]
name = "take"
harness = false

[package.metadata.docs.rs]
# not all because arrow 4.3 does not compile with simd
#all-features = true
features = ["docs-selection"]
# defines the configuration attribute `docsrs`
rustdoc-args = ["--cfg", "docsrs"]