done
This commit is contained in:
@ -0,0 +1 @@
|
||||
uv
|
293
lib/python3.11/site-packages/narwhals-2.3.0.dist-info/METADATA
Normal file
293
lib/python3.11/site-packages/narwhals-2.3.0.dist-info/METADATA
Normal file
@ -0,0 +1,293 @@
|
||||
Metadata-Version: 2.4
|
||||
Name: narwhals
|
||||
Version: 2.3.0
|
||||
Summary: Extremely lightweight compatibility layer between dataframe libraries
|
||||
Project-URL: Homepage, https://github.com/narwhals-dev/narwhals
|
||||
Project-URL: Documentation, https://narwhals-dev.github.io/narwhals/
|
||||
Project-URL: Repository, https://github.com/narwhals-dev/narwhals
|
||||
Project-URL: Bug Tracker, https://github.com/narwhals-dev/narwhals/issues
|
||||
Author-email: Marco Gorelli <hello_narwhals@proton.me>
|
||||
License-File: LICENSE.md
|
||||
Keywords: cudf,dask,dataframes,interoperability,modin,pandas,polars,pyarrow
|
||||
Classifier: License :: OSI Approved :: MIT License
|
||||
Classifier: Operating System :: OS Independent
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Typing :: Typed
|
||||
Requires-Python: >=3.9
|
||||
Provides-Extra: cudf
|
||||
Requires-Dist: cudf>=24.10.0; extra == 'cudf'
|
||||
Provides-Extra: dask
|
||||
Requires-Dist: dask[dataframe]>=2024.8; extra == 'dask'
|
||||
Provides-Extra: duckdb
|
||||
Requires-Dist: duckdb>=1.0; extra == 'duckdb'
|
||||
Provides-Extra: ibis
|
||||
Requires-Dist: ibis-framework>=6.0.0; extra == 'ibis'
|
||||
Requires-Dist: packaging; extra == 'ibis'
|
||||
Requires-Dist: pyarrow-hotfix; extra == 'ibis'
|
||||
Requires-Dist: rich; extra == 'ibis'
|
||||
Provides-Extra: modin
|
||||
Requires-Dist: modin; extra == 'modin'
|
||||
Provides-Extra: pandas
|
||||
Requires-Dist: pandas>=1.1.3; extra == 'pandas'
|
||||
Provides-Extra: polars
|
||||
Requires-Dist: polars>=0.20.4; extra == 'polars'
|
||||
Provides-Extra: pyarrow
|
||||
Requires-Dist: pyarrow>=13.0.0; extra == 'pyarrow'
|
||||
Provides-Extra: pyspark
|
||||
Requires-Dist: pyspark>=3.5.0; extra == 'pyspark'
|
||||
Provides-Extra: pyspark-connect
|
||||
Requires-Dist: pyspark[connect]>=3.5.0; extra == 'pyspark-connect'
|
||||
Provides-Extra: sqlframe
|
||||
Requires-Dist: sqlframe!=3.39.3,>=3.22.0; extra == 'sqlframe'
|
||||
Description-Content-Type: text/markdown
|
||||
|
||||
# Narwhals
|
||||
|
||||
<h1 align="center">
|
||||
<img
|
||||
width="400"
|
||||
alt="narwhals_small"
|
||||
src="https://github.com/user-attachments/assets/968545af-ea0f-48bb-8377-144e93f7abf8">
|
||||
</h1>
|
||||
|
||||
[](https://badge.fury.io/py/narwhals)
|
||||
[](https://pepy.tech/project/narwhals)
|
||||
[](https://peps.python.org/pep-0740/)
|
||||
[](https://pypi.org/project/narwhals)
|
||||
|
||||
Extremely lightweight and extensible compatibility layer between dataframe libraries!
|
||||
|
||||
- **Full API support**: cuDF, Modin, pandas, Polars, PyArrow.
|
||||
- **Lazy-only support**: Dask, DuckDB, Ibis, PySpark, SQLFrame. Work in progress: Daft.
|
||||
|
||||
Seamlessly support all, without depending on any!
|
||||
|
||||
- ✅ **Just use** [a subset of **the Polars API**](https://narwhals-dev.github.io/narwhals/api-reference/), no need to learn anything new
|
||||
- ✅ **Zero dependencies**, Narwhals only uses what
|
||||
the user passes in so your library can stay lightweight
|
||||
- ✅ Separate **lazy** and eager APIs, use **expressions**
|
||||
- ✅ Support pandas' complicated type system and index, without
|
||||
either getting in the way
|
||||
- ✅ **100% branch coverage**, tested against pandas and Polars nightly builds
|
||||
- ✅ **Negligible overhead**, see [overhead](https://narwhals-dev.github.io/narwhals/overhead/)
|
||||
- ✅ Let your IDE help you thanks to **full static typing**, see [typing](https://narwhals-dev.github.io/narwhals/api-reference/typing/)
|
||||
- ✅ **Perfect backwards compatibility policy**,
|
||||
see [stable api](https://narwhals-dev.github.io/narwhals/backcompat/) for how to opt-in
|
||||
|
||||
Get started!
|
||||
|
||||
- [Read the documentation](https://narwhals-dev.github.io/narwhals/)
|
||||
- [Chat with us on Discord!](https://discord.gg/V3PqtB4VA4)
|
||||
- [Join our community call](https://calendar.google.com/calendar/embed?src=27ff6dc5f598c1d94c1f6e627a1aaae680e2fac88f848bda1f2c7946ae74d5ab%40group.calendar.google.com)
|
||||
- [Read the contributing guide](https://github.com/narwhals-dev/narwhals/blob/main/CONTRIBUTING.md)
|
||||
|
||||
<details>
|
||||
<summary>Table of contents</summary>
|
||||
|
||||
- [Narwhals](#narwhals)
|
||||
- [Installation](#installation)
|
||||
- [Usage](#usage)
|
||||
- [Example](#example)
|
||||
- [Scope](#scope)
|
||||
- [Roadmap](#roadmap)
|
||||
- [Used by](#used-by)
|
||||
- [Sponsors and institutional partners](#sponsors-and-institutional-partners)
|
||||
- [Appears on](#appears-on)
|
||||
- [Why "Narwhals"?](#why-narwhals)
|
||||
|
||||
</details>
|
||||
|
||||
## Installation
|
||||
|
||||
- pip (recommended, as it's the most up-to-date)
|
||||
```
|
||||
pip install narwhals
|
||||
```
|
||||
- conda-forge (also fine, but the latest version may take longer to appear)
|
||||
```
|
||||
conda install -c conda-forge narwhals
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
There are three steps to writing dataframe-agnostic code using Narwhals:
|
||||
|
||||
1. use `narwhals.from_native` to wrap a pandas/Polars/Modin/cuDF/PyArrow
|
||||
DataFrame/LazyFrame in a Narwhals class
|
||||
2. use the [subset of the Polars API supported by Narwhals](https://narwhals-dev.github.io/narwhals/api-reference/)
|
||||
3. use `narwhals.to_native` to return an object to the user in its original
|
||||
dataframe flavour. For example:
|
||||
|
||||
- if you started with pandas, you'll get pandas back
|
||||
- if you started with Polars, you'll get Polars back
|
||||
- if you started with Modin, you'll get Modin back (and compute will be distributed)
|
||||
- if you started with cuDF, you'll get cuDF back (and compute will happen on GPU)
|
||||
- if you started with PyArrow, you'll get PyArrow back
|
||||
|
||||
<h1 align="left">
|
||||
<img
|
||||
width="600"
|
||||
alt="narwhals_gif"
|
||||
src="https://github.com/user-attachments/assets/88292d3c-6359-4155-973d-d0f8e3fbf5ac">
|
||||
|
||||
</h1>
|
||||
|
||||
## Example
|
||||
|
||||
Narwhals allows you to define dataframe-agnostic functions. For example:
|
||||
|
||||
```python
|
||||
import narwhals as nw
|
||||
from narwhals.typing import IntoFrameT
|
||||
|
||||
|
||||
def agnostic_function(
|
||||
df_native: IntoFrameT,
|
||||
date_column: str,
|
||||
price_column: str,
|
||||
) -> IntoFrameT:
|
||||
return (
|
||||
nw.from_native(df_native)
|
||||
.group_by(nw.col(date_column).dt.truncate("1mo"))
|
||||
.agg(nw.col(price_column).mean())
|
||||
.sort(date_column)
|
||||
.to_native()
|
||||
)
|
||||
```
|
||||
|
||||
You can then pass `pandas.DataFrame`, `polars.DataFrame`, `polars.LazyFrame`, `duckdb.DuckDBPyRelation`,
|
||||
`pyspark.sql.DataFrame`, `pyarrow.Table`, and more, to `agnostic_function`. In each case, no additional
|
||||
dependencies will be required, and computation will stay native to the input library:
|
||||
|
||||
```python
|
||||
import pandas as pd
|
||||
import polars as pl
|
||||
from datetime import datetime
|
||||
|
||||
data = {
|
||||
"date": [datetime(2020, 1, 1), datetime(2020, 1, 8), datetime(2020, 2, 3)],
|
||||
"price": [1, 4, 3],
|
||||
}
|
||||
print("pandas result:")
|
||||
print(agnostic_function(pd.DataFrame(data), "date", "price"))
|
||||
print()
|
||||
print("Polars result:")
|
||||
print(agnostic_function(pl.DataFrame(data), "date", "price"))
|
||||
```
|
||||
|
||||
```terminal
|
||||
pandas result:
|
||||
date price
|
||||
0 2020-01-01 2.5
|
||||
1 2020-02-01 3.0
|
||||
|
||||
Polars result:
|
||||
shape: (2, 2)
|
||||
┌─────────────────────┬───────┐
|
||||
│ date ┆ price │
|
||||
│ --- ┆ --- │
|
||||
│ datetime[μs] ┆ f64 │
|
||||
╞═════════════════════╪═══════╡
|
||||
│ 2020-01-01 00:00:00 ┆ 2.5 │
|
||||
│ 2020-02-01 00:00:00 ┆ 3.0 │
|
||||
└─────────────────────┴───────┘
|
||||
```
|
||||
|
||||
See the [tutorial](https://narwhals-dev.github.io/narwhals/basics/dataframe/) for several examples!
|
||||
|
||||
## Scope
|
||||
|
||||
- Do you maintain a dataframe-consuming library?
|
||||
- Do you have a specific Polars function in mind that you would like Narwhals to have in order to make your work easier?
|
||||
|
||||
If you said yes to both, we'd love to hear from you!
|
||||
|
||||
## Roadmap
|
||||
|
||||
See [roadmap discussion on GitHub](https://github.com/narwhals-dev/narwhals/discussions/1370)
|
||||
for an up-to-date plan of future work.
|
||||
|
||||
## Used by
|
||||
|
||||
Join the party!
|
||||
|
||||
- [altair](https://github.com/vega/altair/)
|
||||
- [bokeh](https://github.com/bokeh/bokeh)
|
||||
- [darts](https://github.com/unit8co/darts)
|
||||
- [formulaic](https://github.com/matthewwardrop/formulaic)
|
||||
- [gt-extras](https://github.com/posit-dev/gt-extras)
|
||||
- [hierarchicalforecast](https://github.com/Nixtla/hierarchicalforecast)
|
||||
- [marimo](https://github.com/marimo-team/marimo)
|
||||
- [metalearners](https://github.com/Quantco/metalearners)
|
||||
- [mosaic](https://github.com/uwdata/mosaic)
|
||||
- [panel-graphic-walker](https://github.com/panel-extensions/panel-graphic-walker)
|
||||
- [plotly](https://plotly.com)
|
||||
- [pointblank](https://github.com/posit-dev/pointblank)
|
||||
- [pymarginaleffects](https://github.com/vincentarelbundock/pymarginaleffects)
|
||||
- [pyreadstat](https://github.com/Roche/pyreadstat)
|
||||
- [py-shiny](https://github.com/posit-dev/py-shiny)
|
||||
- [rio](https://github.com/rio-labs/rio)
|
||||
- [scikit-lego](https://github.com/koaning/scikit-lego)
|
||||
- [scikit-playtime](https://github.com/koaning/scikit-playtime)
|
||||
- [tabmat](https://github.com/Quantco/tabmat)
|
||||
- [tea-tasting](https://github.com/e10v/tea-tasting)
|
||||
- [timebasedcv](https://github.com/FBruzzesi/timebasedcv)
|
||||
- [tubular](https://github.com/lvgig/tubular)
|
||||
- [Validoopsie](https://github.com/akmalsoliev/Validoopsie)
|
||||
- [vegafusion](https://github.com/vega/vegafusion)
|
||||
- [wimsey](https://github.com/benrutter/wimsey)
|
||||
|
||||
Feel free to add your project to the list if it's missing, and/or
|
||||
[chat with us on Discord](https://discord.gg/V3PqtB4VA4) if you'd like any support.
|
||||
|
||||
## Sponsors and institutional partners
|
||||
|
||||
Narwhals is 100% independent, community-driven, and community-owned.
|
||||
We are extremely grateful to the following organisations for having
|
||||
provided some funding / development time:
|
||||
|
||||
- [Quansight Labs](https://labs.quansight.org)
|
||||
- [Quansight Futures](https://www.qi.ventures)
|
||||
- [OpenTeams](https://www.openteams.com)
|
||||
- [POSSEE initiative](https://possee.org)
|
||||
- [BYU-Idaho](https://www.byui.edu)
|
||||
|
||||
If you contribute to Narwhals on your organization's time, please let us know. We'd be happy to add your employer
|
||||
to this list!
|
||||
|
||||
## Appears on
|
||||
|
||||
Narwhals has been featured in several talks, podcasts, and blog posts:
|
||||
|
||||
- [Talk Python to me Podcast](https://youtu.be/FSH7BZ0tuE0)
|
||||
Ahoy, Narwhals are bridging the data science APIs
|
||||
|
||||
- [Python Bytes Podcast](https://www.youtube.com/live/N7w_ESVW40I?si=y-wN1uCsAuJOKlOT&t=382)
|
||||
Episode 402, topic #2
|
||||
|
||||
- [Super Data Science: ML & AI Podcast](https://www.youtube.com/watch?v=TeG4U8R0U8U)
|
||||
Narwhals: For Pandas-to-Polars DataFrame Compatibility
|
||||
|
||||
- [Sample Space Podcast | probabl](https://youtu.be/8hYdq4sWbbQ?si=WG0QP1CZ6gkFf18b)
|
||||
How Narwhals has many end users ... that never use it directly. - Marco Gorelli
|
||||
|
||||
- [The Real Python Podcast](https://www.youtube.com/watch?v=w5DFZbFYzCM)
|
||||
Narwhals: Expanding DataFrame Compatibility Between Libraries
|
||||
|
||||
- [Pycon Lithuania](https://www.youtube.com/watch?v=-mdx7Cn6_6E)
|
||||
Marco Gorelli - DataFrame interoperatiblity - what's been achieved, and what comes next?
|
||||
|
||||
- [Pycon Italy](https://www.youtube.com/watch?v=3IqUli9XsmQ)
|
||||
How you can write a dataframe-agnostic library - Marco Gorelli
|
||||
|
||||
- [Polars Blog Post](https://pola.rs/posts/lightweight_plotting/)
|
||||
Polars has a new lightweight plotting backend
|
||||
|
||||
- [Quansight Labs blog post (w/ Scikit-Lego)](https://labs.quansight.org/blog/scikit-lego-narwhals)
|
||||
How Narwhals and scikit-lego came together to achieve dataframe-agnosticism
|
||||
|
||||
## Why "Narwhals"?
|
||||
|
||||
[Coz they are so awesome](https://youtu.be/ykwqXuMPsoc?si=A-i8LdR38teYsos4).
|
||||
|
||||
Thanks to [Olha Urdeichuk](https://www.fiverr.com/olhaurdeichuk) for the illustration!
|
162
lib/python3.11/site-packages/narwhals-2.3.0.dist-info/RECORD
Normal file
162
lib/python3.11/site-packages/narwhals-2.3.0.dist-info/RECORD
Normal file
@ -0,0 +1,162 @@
|
||||
narwhals-2.3.0.dist-info/INSTALLER,sha256=5hhM4Q4mYTT9z6QB6PGpUAW81PGNFrYrdXMj4oM_6ak,2
|
||||
narwhals-2.3.0.dist-info/METADATA,sha256=9x2Yl_7U7W2hID3ThyfgYRvHI4l_unO8akp-3PiRrjI,11307
|
||||
narwhals-2.3.0.dist-info/RECORD,,
|
||||
narwhals-2.3.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals-2.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
||||
narwhals-2.3.0.dist-info/licenses/LICENSE.md,sha256=heMD6hta6RzeBucppx59AUCgr_ukRY0ABj0bcrN3mKs,1071
|
||||
narwhals/__init__.py,sha256=FGVSkIo-2xnlr-PAnUz9_lUsoAVLmwSko7vvKt1dhwM,3206
|
||||
narwhals/_arrow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_arrow/dataframe.py,sha256=v2x502jBYsuRCsLZvVrvVDnAa_V75JA4joTj0MW60SI,29247
|
||||
narwhals/_arrow/expr.py,sha256=j00YfKCWouDbNBVpcxQWUNu5s-ONGxeQz1EhLx-FkzA,6390
|
||||
narwhals/_arrow/group_by.py,sha256=SkDRYpKaZXkwxtC-5s1yinBSgVgj2KoAiFFpjSvo9Fo,6458
|
||||
narwhals/_arrow/namespace.py,sha256=9YWEgy-LN1CgfHHcR1oXTaL2rdsgXIhLWLNABoooLZg,11966
|
||||
narwhals/_arrow/selectors.py,sha256=qIfCnMNlQ5svQzGaB-DV5YE4xSaUaVzElTPYJl_0BJc,1128
|
||||
narwhals/_arrow/series.py,sha256=ykSo51a6YCViyd0cXY3u10t21Rb77hx3fDE4mMCe214,45006
|
||||
narwhals/_arrow/series_cat.py,sha256=vvNlPaHHcA-ORzh_79-oY03wt6aIg1rLI0At8FXr2Ok,598
|
||||
narwhals/_arrow/series_dt.py,sha256=tTJg3Kxde356LNmqfHOHseWkNofyigFu7s17EtEYTQs,8922
|
||||
narwhals/_arrow/series_list.py,sha256=hhIE7wZGVQs-J9iX-RyP4sedZ413fStDDj2aW006ALI,647
|
||||
narwhals/_arrow/series_str.py,sha256=RKtxW9FuZ2R-Qyj4iqP9qPF5u_QAXufzEYRJHImrRjI,4491
|
||||
narwhals/_arrow/series_struct.py,sha256=85pQSUqOdeMyjsnjaSr_4YBC2HRGD-dsnNy2tPveJRM,410
|
||||
narwhals/_arrow/typing.py,sha256=TmgG8eqF4uCRW5NFzWTiBvlUGvD46govtIC8gRyrkmA,2286
|
||||
narwhals/_arrow/utils.py,sha256=KHNaGBGuA1wvrsCrPWR7xv9XaO0iXHgJPuaYrG-PfRI,16121
|
||||
narwhals/_compliant/__init__.py,sha256=NIrlDmo6XGrEuJkHvxtPTntxJmVzn1pku31P06cI48c,2460
|
||||
narwhals/_compliant/any_namespace.py,sha256=kXBY2yAN8Oz5E7k-vlq_aQHwHVEmJtYZbL_BgG089xo,3698
|
||||
narwhals/_compliant/column.py,sha256=mQdztLvvfOi0Su8j2Fh03MOXcphjWL3K2wB9hSHEa-o,7449
|
||||
narwhals/_compliant/dataframe.py,sha256=bTuQKeKCiNYdYEsrc16I9vFQ-_EK2q2125srzldu-p8,15233
|
||||
narwhals/_compliant/expr.py,sha256=Zf4_h9D-MYGBcYt6oAIHE_uqzbXm9rIBZsD5_bcRXs0,40237
|
||||
narwhals/_compliant/group_by.py,sha256=78xvZ3Zryh6EU25UHk5vrZbi9a6xCThBTXfBLgY0uHk,6885
|
||||
narwhals/_compliant/namespace.py,sha256=wy1mEA221qlDoYZdRFC6luUAuaJHMJje1gqeEEJRGtw,8304
|
||||
narwhals/_compliant/selectors.py,sha256=0TEz_n8rHv-0wdqs-WtdwvKUACPzMeH40hLhhV2xthw,11824
|
||||
narwhals/_compliant/series.py,sha256=cJ-B-26UuT0oMx--29HCjp6_QSvGnTWjUwRGyMLJgsU,13629
|
||||
narwhals/_compliant/typing.py,sha256=JZJJDBmffYf3il-ZXLyItM_sMhGsCTFZYow2ES0-DgM,7343
|
||||
narwhals/_compliant/when_then.py,sha256=hY2O8dNYUaa-9OTUzYYfrzmQp0w13cEf0GtV1hKAiWs,4323
|
||||
narwhals/_compliant/window.py,sha256=_ji4goVKkT4YPTyZa_I0N2yGmwBfB1_LDG0WSXGbmlo,505
|
||||
narwhals/_constants.py,sha256=kE1KWsIky4ryabH-Z117ZtGW24ccTcreWOZJjpacO6I,1094
|
||||
narwhals/_dask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_dask/dataframe.py,sha256=zTLRoHh9zf4awiU3gZGWSb9-z15Dn_K7O0Ud3tWa8Oc,18146
|
||||
narwhals/_dask/expr.py,sha256=arIOunREdPk_ceXcdl-Vl5M4WJGSBLZiMxLNVxhCWAA,26234
|
||||
narwhals/_dask/expr_dt.py,sha256=7vaSQPZIWsyQsZVP0vN9_60hP6bOI0WP5UDF7jksl_Y,6886
|
||||
narwhals/_dask/expr_str.py,sha256=vJpPB0EhYI7Edso2ILz8_wM0FV_nOdpWu2Bu76d-2pw,4375
|
||||
narwhals/_dask/group_by.py,sha256=w-NNu2gclRKKiRDVxnDiIE6-Wm5nM7c5NMRFXxdLGoA,4906
|
||||
narwhals/_dask/namespace.py,sha256=I8Kx-iJ9VI1Jrg00M-eZrDN4DsKLtCbYmClR5WWwBXk,13193
|
||||
narwhals/_dask/selectors.py,sha256=FafFcfFWM6uTcKUsEeqfbmBUIgYVzH5XdN6sFUVLMKU,1148
|
||||
narwhals/_dask/utils.py,sha256=qdsSkVId_G6i778nfWEl5xqb1Kaq4MjkhGmUGG0eBnY,5484
|
||||
narwhals/_duckdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_duckdb/dataframe.py,sha256=erot6PCYdvmFYYAoGXJpFEBsK64UZVQPV80sPUY-4Kc,20334
|
||||
narwhals/_duckdb/expr.py,sha256=wbjKERmHs-DitbIPBvYOhOAv25bBanTeIIvTQTtGR9E,10611
|
||||
narwhals/_duckdb/expr_dt.py,sha256=QoNbABk0aIuRNyIa790HvisfB177_Ds1H_xMiZWNnHM,4990
|
||||
narwhals/_duckdb/expr_list.py,sha256=gXPHQZ3oqliATMLye7JugEar-SKOTliCYkfjKv6KZBM,1326
|
||||
narwhals/_duckdb/expr_str.py,sha256=M7UTLjnHI66I7XYGECORpsJwrrYaYUxyesK2NqGGuok,999
|
||||
narwhals/_duckdb/expr_struct.py,sha256=eN06QA1JS6wjAt7_AZzW3xoztHM_hoadlFUl_hwsEiE,576
|
||||
narwhals/_duckdb/group_by.py,sha256=nuueeiJYRcs31Ja973VvtLbWM2wnms0GYL7kAHDeju0,1123
|
||||
narwhals/_duckdb/namespace.py,sha256=XyTCDc-sdSCdtasrqbkJhFviY375Y2fW_CvCNb0LtPo,5476
|
||||
narwhals/_duckdb/selectors.py,sha256=yA16Z-MlJUJBjOu0XI9qVO4Zx7L_T5FN2DQqNAYhu-o,1033
|
||||
narwhals/_duckdb/series.py,sha256=xBpuPUnSSIQ1vYEKjHQFZN7ix1ZyMwSchliDPpkf3Wk,1397
|
||||
narwhals/_duckdb/typing.py,sha256=gO_Odyinkn4QZY_TU4uuzda6mbeo38glOOUUripcWgg,454
|
||||
narwhals/_duckdb/utils.py,sha256=VRFYNhgrjsNwyY2Dv-iLH3S_5GJklr2ixxB2TsZHw1o,13718
|
||||
narwhals/_duration.py,sha256=WGzj3FVcC2KogqRhNeim3YDIwUn8HkXQHAljtvHrjwQ,3139
|
||||
narwhals/_enum.py,sha256=sUR-04yIwjAMsX5eelKnc1UKXc5dBoj1do0krubAE04,1192
|
||||
narwhals/_exceptions.py,sha256=OhT0MiQbcw_wE85Bl1YYZJjvtlX0rJMNUoZtKNCjTq8,1928
|
||||
narwhals/_expression_parsing.py,sha256=-cekls62DXha7elyCLu52X0erZeK1mNgQYOjNaoog0A,22904
|
||||
narwhals/_ibis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_ibis/dataframe.py,sha256=eQMS4ojRLH9ELPIJ94fIJROiJaODHGfi6MNbGGEz4u8,16634
|
||||
narwhals/_ibis/expr.py,sha256=Nktb9wysqxf30oqlWVteIeogCaXKRbkJzKiI3Y0m_E8,13031
|
||||
narwhals/_ibis/expr_dt.py,sha256=2sDgjR5HalXE3IBUc7LvIe4QPjFCnafJPs9ZikbW5xw,3314
|
||||
narwhals/_ibis/expr_list.py,sha256=TSfb_4EKRdTFIbZ2VJ9zqXJl62ZDkivweK5BiUWFsBc,948
|
||||
narwhals/_ibis/expr_str.py,sha256=K54Ch9veia8t-v9Gl_SZgL-eRynad1vufZWPAW-oKg8,2944
|
||||
narwhals/_ibis/expr_struct.py,sha256=FDsa5MqcHhqPmpZIEfGBASdqxPkyImrlGTH7XUSw3cs,565
|
||||
narwhals/_ibis/group_by.py,sha256=enNzAPUsA_LIwPNJ7jG_MJKyqG2HyCiesBEX3pJgJBg,1031
|
||||
narwhals/_ibis/namespace.py,sha256=0hRod5QixeON0gr4XCqEJrHh3Wa3JK9_4Dz7MTJlFbI,5521
|
||||
narwhals/_ibis/selectors.py,sha256=SkFxoukpKc_OjwKoKHRm8VwMaphCMUeWBJ2g_oWz3D0,961
|
||||
narwhals/_ibis/series.py,sha256=CZDwDPsdELKtdr7OWmcFyGqexr33Ucfnv_RU95VJxIQ,1218
|
||||
narwhals/_ibis/utils.py,sha256=C77hUPh-gl07T31XUHLy1YtSX7nlKvHfpjtQHn007w0,9288
|
||||
narwhals/_interchange/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_interchange/dataframe.py,sha256=FC_2WuxxI4RPUBMqcau68rkdfsxhClou4zCErx1flcw,6034
|
||||
narwhals/_interchange/series.py,sha256=nSxdlOZrw3wtavS42TMR_b_EGgPBv224ioZBMo5eoC8,1651
|
||||
narwhals/_namespace.py,sha256=Iw-7TssbXM1vAmpYsB_S9y0mn0K-gwMzBX-LgH0foxM,13708
|
||||
narwhals/_pandas_like/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_pandas_like/dataframe.py,sha256=GcGkaIh8WOE-AyQB0yRKQ9YCtlWAwEBtsnTq90Caoi8,42958
|
||||
narwhals/_pandas_like/expr.py,sha256=9JhVxAzfhhrY2LpBhGWoWRrUTfEwlbO0btmfR3SgU2s,14787
|
||||
narwhals/_pandas_like/group_by.py,sha256=T_o11xywuFCyKUA10wQfTyrh82wPHF3Aka29QL_d7vk,13544
|
||||
narwhals/_pandas_like/namespace.py,sha256=a9PjhoTOBj2-iWz7RXLrC-smArTzC_HRpGQ10Z9_fSU,16916
|
||||
narwhals/_pandas_like/selectors.py,sha256=Qf7r0H6R8cniwDwC2zlWxddsPx-AHFsZwDPQ9iCEiH8,1261
|
||||
narwhals/_pandas_like/series.py,sha256=DRqqp20sREqwdsCsk2cKDJPYGc7Y9DjDkDyRVPi_lTw,43404
|
||||
narwhals/_pandas_like/series_cat.py,sha256=MJwCnJ49hfnODh6JgMHOCQ2KBlTbmySU6_X4XWaqiz4,527
|
||||
narwhals/_pandas_like/series_dt.py,sha256=EnNPp6StDmwDX9p3mlQw3m4pZWOp0UA1Zh5bJr-gOZE,11587
|
||||
narwhals/_pandas_like/series_list.py,sha256=xc9m4c5ftCQPfiTy7EujhfNHn7KHbjBUNa-iXHdV9t8,1391
|
||||
narwhals/_pandas_like/series_str.py,sha256=Wl871eCAw1X10bfreJw9Iw_pIkIpORRQMJq09ueRDlU,3982
|
||||
narwhals/_pandas_like/series_struct.py,sha256=vX9HoO42vHackvVozUfp8odM9uJ4owct49ydKDnohdk,518
|
||||
narwhals/_pandas_like/typing.py,sha256=Awm2YnewvdA3l_4SEwb_5AithhwBYNx1t1ajaHnvUsM,1064
|
||||
narwhals/_pandas_like/utils.py,sha256=8OdQIrxuspIfop3AM3qxBzKcsK6OTm_ykE9dh9KW_kg,25496
|
||||
narwhals/_polars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/_polars/dataframe.py,sha256=NCmeBBXKDsFh_mLZF0z6r3fRO3l1080JdreHL_3Asog,23303
|
||||
narwhals/_polars/expr.py,sha256=4MLaKi2yzKoB6Pd5t6-TRK19MsesHWB6mPNr0KcCgWE,16185
|
||||
narwhals/_polars/group_by.py,sha256=PsxQPWX7QWy2iXUWJEelC5O6mR1TKr9MB_i6O5RVxms,2373
|
||||
narwhals/_polars/namespace.py,sha256=lgfcUXhdfb-uV18tYZK7Jgj74yzDEGa-CD_MpJZlX_E,10671
|
||||
narwhals/_polars/series.py,sha256=J8_3pLA6YXBm-S9ZifnlQv_cqal21qC10MVFc6C1r64,26070
|
||||
narwhals/_polars/typing.py,sha256=tiAgtciFZmlqqH3Q6MdQLXZEb1ajH-YbePpaKjeuqQE,786
|
||||
narwhals/_polars/utils.py,sha256=hIjAce1DOez6ZEJPBbY4x_Pl4wGubdnbye5H6tE0_DA,12386
|
||||
narwhals/_spark_like/__init__.py,sha256=T7_UCePrrYs1ZeMatvCUYUvQcXvrDjQ4b08_ugWIHAo,87
|
||||
narwhals/_spark_like/dataframe.py,sha256=r645rnjsUjkJCYy2wXm0VmYeCe2h_UHAOjQGDV5CkRA,23269
|
||||
narwhals/_spark_like/expr.py,sha256=u6ruKJuoYkdAuvon5KL6YlSYtP_4ewOtRxKmnLTih6A,14052
|
||||
narwhals/_spark_like/expr_dt.py,sha256=1ICwI2xpTuK5PyGjiLEdfLgsgudDPEVdMGgVnM_c5Uk,7515
|
||||
narwhals/_spark_like/expr_list.py,sha256=aU29eGRQ89F7z5XticN9-l7ShVJpD2Ni4rdxE9Wfd7w,1132
|
||||
narwhals/_spark_like/expr_str.py,sha256=eGN7uW9BfP7-KVey-RrqFcQjZrO7WnTlU3PZPpPSzKk,1298
|
||||
narwhals/_spark_like/expr_struct.py,sha256=haBDpuRhn_nGAFjMF3arhhRr6NfefNei9vEmAOa0fQI,613
|
||||
narwhals/_spark_like/group_by.py,sha256=rsAhSHEoA1pHzPk--9xtKvLJbTHOtJ45ftVKUhI7KUc,1246
|
||||
narwhals/_spark_like/namespace.py,sha256=rFliViMHZ03H22K9eYCPQ9B-hbiGpHnJII_0gWbOnc8,8027
|
||||
narwhals/_spark_like/selectors.py,sha256=SzJPoFjyIEviSSvPRvL81o1jjQJcM-Veqb52vFU66JQ,1086
|
||||
narwhals/_spark_like/utils.py,sha256=ViTlbGgfG5koBKHtO5sCACFSFD94iTJtNGTUETOEBLw,11367
|
||||
narwhals/_sql/__init__.py,sha256=T7_UCePrrYs1ZeMatvCUYUvQcXvrDjQ4b08_ugWIHAo,87
|
||||
narwhals/_sql/dataframe.py,sha256=RgmNIcJ2r4JIurB64vzqo0-qPUJH9kBFo4hT1gvqB0w,1491
|
||||
narwhals/_sql/expr.py,sha256=O0ZXOLWmytBilCYc_WU7yeANEa8ZngLE0aPIxbcPyXw,29763
|
||||
narwhals/_sql/expr_dt.py,sha256=CWFn7Ki3YW3XT_Hy88pdCTZs8j6jP4GpP38vgPd-vX4,1612
|
||||
narwhals/_sql/expr_str.py,sha256=lZziCwu6flcjwtyUXa-2P6mGitV56tKZsnYgLD6wh9I,5234
|
||||
narwhals/_sql/group_by.py,sha256=-yR5J2-Kk0awFRoFnLici00rfTK_5CxFKJSxc-Bt8Zs,1669
|
||||
narwhals/_sql/namespace.py,sha256=2KRj7AnNfWEpWbjkl2X5pCya9jrq8jLwKMKFp32GFI0,2755
|
||||
narwhals/_sql/typing.py,sha256=e3LkLPI4oa2IzykR7BgO9IIfCKRw0vrX4uHxPTB-uJM,487
|
||||
narwhals/_sql/when_then.py,sha256=4lXcc_J_N6vHGby6kPJl1PGqLPUGbgHYuIXiYROyoW4,3636
|
||||
narwhals/_translate.py,sha256=e8RjNCNX4QGJWKjM6VANDTG_bVT2VusjNfjsnkCBO3g,6112
|
||||
narwhals/_typing.py,sha256=goAuPl-_FoIpI8NOShf54fQCOATPPJdYeqcHdacQNO0,6430
|
||||
narwhals/_typing_compat.py,sha256=h-BtLEl7CrZ-hYLlwYTOcCdsUS3dvgvkxQTcDQ7RYmA,2516
|
||||
narwhals/_utils.py,sha256=HJ3BnwVhl8wrmnxB9II6S1RS_uzPRPyyMgUFeXGhmiU,67278
|
||||
narwhals/dataframe.py,sha256=cQ66Ld14nvzLeSd9tHRJKqJxtucG1AvgpF8D7hUraso,134314
|
||||
narwhals/dependencies.py,sha256=7fnp1kST9nA1Hl10_SsRC2iXdz3eOaR1w1Xf33JYtPc,19846
|
||||
narwhals/dtypes.py,sha256=3N-VO1ZaFHCTf_JDaFjFJYQVJwYK57UD2m_cmRzCjMk,29613
|
||||
narwhals/exceptions.py,sha256=9ocrbLNP7fZLqP2gV1PS9OexNhzf8h7of2wR5wi5kE0,3704
|
||||
narwhals/expr.py,sha256=ZIp3oUhM4MPr8v7v_8Bv5RHqSoMs7p97CWRDxDc-xF4,98752
|
||||
narwhals/expr_cat.py,sha256=o4MhGmPoO3_DlkRB06Z3ilyqyj70mwcW3kftRayDq2s,1210
|
||||
narwhals/expr_dt.py,sha256=R3F9z9FAluZBZ7ETt2lOdkMrq_OmG2YMYBpkIkGzUQc,32465
|
||||
narwhals/expr_list.py,sha256=8-_L7wzxm90kcRooFW2QEdzn0FgJNMnUispBReBE5fs,6744
|
||||
narwhals/expr_name.py,sha256=0QD8Yg7FKu739ENSJI2lxIGSjho89J9l9DjxeBOz9bM,4866
|
||||
narwhals/expr_str.py,sha256=u3Juck5nPG9HlfnroHl1oKW_YU76rthsMUWlKWCPeYs,20055
|
||||
narwhals/expr_struct.py,sha256=V_Hj3kChdcZPIlfb_Kslp5W-j-XGFcfdMFzYpZdjNWE,1742
|
||||
narwhals/functions.py,sha256=nxOJ3abbCNlr4wbAQ40-MlLczEW8sVyYggq9JlrMnmA,64415
|
||||
narwhals/group_by.py,sha256=7UkbFvCZ6n0rtgDovbElueEA8p4oS3i3ny_g5TGabek,7164
|
||||
narwhals/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
narwhals/schema.py,sha256=4yiRz6Qv373ATpN6kCFNSblUb4vMDX9USpKeJTDRrYI,12369
|
||||
narwhals/selectors.py,sha256=ybbFG7Sjebr8qoMgD43O6QuHBGl52yUpGRe08L1LKyo,10759
|
||||
narwhals/series.py,sha256=IIMiPTJMlBNv3kc6QDpxqBr0Oaetxb5WbZZOktaJldw,95125
|
||||
narwhals/series_cat.py,sha256=KU5DMtCqi0KKVrmTfCLpgI32AGuY3MYZclNF6soh1Xc,834
|
||||
narwhals/series_dt.py,sha256=a7JIMtA_Wn9ZiBa9O_-t7k6Lk-Az2AhHbQYlS1VwxAA,23051
|
||||
narwhals/series_list.py,sha256=PMXSEL_Pai2ZoMcNi0KZ6WdXHlMvTVyFK600TTGhCeg,3802
|
||||
narwhals/series_str.py,sha256=pdB2MI5UO7o81CeXPEiJ6v9XOhP0WPeAQACM1W_4e3Y,15400
|
||||
narwhals/series_struct.py,sha256=bixxdASlxYyP1prDjMmfltVU5212a596VQZE11yszUg,930
|
||||
narwhals/stable/__init__.py,sha256=b9soCkGkQzgF5jO5EdQ6IOQpnc6G6eqWmY6WwpoSjhk,85
|
||||
narwhals/stable/v1/__init__.py,sha256=yBCnM1ZhWuZwMndoFb_HZeGxVy1qRDa8DFPjy0bFnIQ,42613
|
||||
narwhals/stable/v1/_dtypes.py,sha256=7zGmarnurUTgY6DI4KQ1MSAC7B9ZZiI5Em7plb-HAEs,2700
|
||||
narwhals/stable/v1/_namespace.py,sha256=gfsbT4R4aLmmdArY35LRpEHPiUeZKEEnXGiY9ypFtwE,296
|
||||
narwhals/stable/v1/dependencies.py,sha256=aM0IShF4hbaaMEDRJQXvsu4RABZOdBG4QhrpJPxb7fg,5001
|
||||
narwhals/stable/v1/dtypes.py,sha256=u2NFDJyCkjsK6p3K9ULJS7CoG16z0Z1MQiACTVkhkH4,1082
|
||||
narwhals/stable/v1/selectors.py,sha256=xEA9bBzkpTwUanGGoFwBCcHIAXb8alwrPX1mjzE9mDM,312
|
||||
narwhals/stable/v1/typing.py,sha256=7dBQVxmW6zQOjfT2N0rEddKUBD61roxhZJDJhApC0fk,6433
|
||||
narwhals/stable/v2/__init__.py,sha256=FGAuHHO0XVCNoMT8E_hoCB3OaUI_Amm80CpYLG817NQ,40366
|
||||
narwhals/stable/v2/_namespace.py,sha256=oYB5nrFGxqqTonkRx9vUanyBxGs2Yb0j7_juMyvnvWA,296
|
||||
narwhals/stable/v2/dependencies.py,sha256=vpYWx_dron6wFdbQ60G06EV2UJ_LMd52LDodCrAY5Jg,86
|
||||
narwhals/stable/v2/dtypes.py,sha256=iMpk2Kc1mNiQYmboOSgmiAijklSUBHSHF2LTKMKnGe8,80
|
||||
narwhals/stable/v2/selectors.py,sha256=sjJL3agHd8Rgf_lWhgCmEKruhWEkwHdX32-n85OqVJU,83
|
||||
narwhals/stable/v2/typing.py,sha256=mymfP7wg6FfyunGiK51I-jqEIcPA5u8gFOHN4sDoz5I,6042
|
||||
narwhals/this.py,sha256=BbKcj0ReWqE01lznzKjuqq7otXONvjBevWWC5aJhQxs,1584
|
||||
narwhals/translate.py,sha256=Mscw6Nh5yUgkKqWyEEst205vbfdskOUa9DlouVe2ThA,24741
|
||||
narwhals/typing.py,sha256=Bh2JbyEZk0tmrzKhfnxGLFjs1W3sDTiomrXzP6rW8rQ,17164
|
||||
narwhals/utils.py,sha256=2GT3XxucWI6l9r9jTwMw7Aha2G73FsSXgXNFZ3O_ZyA,223
|
@ -0,0 +1,4 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: hatchling 1.27.0
|
||||
Root-Is-Purelib: true
|
||||
Tag: py3-none-any
|
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024, Marco Gorelli
|
||||
|
||||
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.
|
Reference in New Issue
Block a user