Metadata-Version: 2.1
Name: grizzlys
Version: 0.0.1
Summary: Python DataFrames powered by Julia
Author-email: Hadar Sharon <hadar.sharon94@gmail.com>
License: MIT License
        
        Copyright (c) 2024 Hadar Sharon
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Documentation, https://github.com/hadarsharon/grizzlys/wiki
Project-URL: Repository, https://github.com/hadarsharon/grizzlys
Project-URL: Changelog, https://github.com/hadarsharon/grizzlys/releases
Keywords: python,julia,pandas,polars,koalas,data-science,data-engineering,data-analysis,dataframe,dataframes
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: juliacall>=0.9.19

![grizzlys](docs/logos/grizzlys-logo-cubes-with-text.png "grizzlys")

<hr>

<div style="text-align: center;">

[![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&label=Formatter)](https://github.com/charliermarsh/ruff)
[![Linting: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&label=Linter)](https://github.com/charliermarsh/ruff)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)

</div>

# grizzlys: User-friendly Python DataFrames powered by Julia

**grizzlys** is a Python package that provides a native interface on top of Julia's popular
[___DataFrames.jl___](https://github.com/JuliaData/DataFrames.jl) package.

As a user-friendly alternative to existing Python packages such as __pandas__ and __polars__, it is designed to be a
convenient & easy to use DataFrames tool for data analysts, data engineers and data scientists alike, while still
providing high performance and abstractions, thanks to Julia's high-performance computing capabilities.

## Why you might consider using grizzlys

:white_check_mark: You are transitioning into Python from a **Julia** or **R** programming background

:white_check_mark: You are accustomed to working with **Jupyter notebooks** (or a REPL) and performing exploratory data
analysis **(EDA)** on-the-fly

:white_check_mark: You need a quick-and-dirty data wrangling tool that provides readymade **macros** and **convenience
functions** out of the box

:white_check_mark: You work with **statistics** or **linear algebra** often and require a wide range of
statistical/algebraic functions to be well-integrated with your DataFrames

## What is grizzlys (currently) NOT well-suited for

:x: __Larger-than-memory datasets__ - grizzlys' current implementation relies on data being stored in-memory, and therefore
it is not a good choice if you work with datasets that don't fit in your machine's RAM.

For such cases, using [__Polars__](https://github.com/pola-rs/polars) or
[__Dask DataFrames__](https://docs.dask.org/en/stable/dataframe.html) would be a much better choice as of now.

:x: __Lazy Evaluation__ - Similar to the above, grizzlys is currently designed to be fully eager, which means it always
immediately executes your code, as opposed to building a task/computation graph or thereabout and delaying execution
until it's needed.

:x: __Backwards compatibility__ - grizzlys is based on a relatively new programming language in Julia, and is developed
using an advanced version of Python, with little regard to end-of-life versions or any compatibility with Python 2.7,
for example.

You should therefore not rely on grizzlys for integrations with very old code or any other legacy/deprecated tools and
implementations.

:x: __Best-in-class Performance__ - Though Julia is widely considered a very high-performance language (it is actually a
major reason why it's used under the hood here), grizzlys is still a work-in-progress (WIP) and therefore does not
currently aim to compete with, or outperform, other high-performance DataFrame libraries, such as
[__Polars__](https://github.com/pola-rs/polars) (written in Rust) or
[__Modin__](https://github.com/modin-project/modin) (Multi-threaded pandas).

This, of course, might no longer be a limitation in the future, as __grizzlys__ will have undergone optimizations and
maturation.

<hr>

[Go to Top](#grizzlys-user-friendly-python-dataframes-powered-by-julia)
