Type annotations for Pandas
Project description
Pandas Stubs
Collection of pandas stub files initially generated using stubgen, fixed when necessary and then partially completed.
CI | PyPi version | PyPI Downloads | Conda Downloads | Python support | License |
---|---|---|---|---|---|
Motivation
Provide rudimentary coverage of pandas code by static type checking, to alleviate problems mentioned in the following issues 14468, 26766. This approach was taken to achieve accelerated development - compared to refactoring existing Pandas codebase creating stub files is relatively uninhibited.
Due to extensive pandas API, quality of the proposed annotations is, for the most part, not suitable for integration into original codebase, but they can be very useful as a way of achieving some type safety during development.
Installation and usage
The easiest way is using PyPI. This will add .pyi
files to pandas
package location, which will be removed when uninstalling:
pip install pandas-stubs
Another way to install is using Conda:
conda install -c conda-forge pandas-stubs
Alternatively, if you want a cleaner PYTHONPATH
or wish to modify the annotations, manual options are:
- cloning the repository along with the files, or
- including it as a submodule to your project repository,
and then configuring a type checker with the correct paths.
Version Compatibility
The aim of the current release is to cover the most common parts of the 1.1.0 API, however it can provide partial functionality for other version as well. Future versions will cover new Pandas releases.
Versioning
The versions follow a pattern MAJOR.MINOR.PATCH.STUB_VERSION
where the first three parts correspond to a specific pandas API version, while STUB_VERSION
is used to distinguish between the versions of the stubs themselves.
Type checkers
As of now Mypy is the only type checker the stubs were tested with.
Testing
Test the stub files internal consistency:
mypy --config-file mypy.ini third_party/3/pandas
Test the stub files against actual code examples (this will use the stubs from the third_party/3/pandas
dir):
mypy --config-file mypy.ini tests/snippets
Test the installed stub files against actual code examples (this will use pandas .pyi files from your env):
mypy --config-file mypy_env.ini tests/snippets
Disclaimer
pandas library and the pandas logo are owned by AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team. This project is not owned, endorsed, or sponsored by any of AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team.
This project provides additional functionality for pandas library. Pandas is available under it's own license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pandas_stubs-1.2.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d04447388aa4e7f2001854192d7a384d9af4540b9591a6b4b3c41da7e1ccd745 |
|
MD5 | 4304f0f2ff30349eb4dbad977b6c83c5 |
|
BLAKE2b-256 | b07bd553bc5cd25eb55829e4127c22a50e58790b5a50980bb5bd2231c6ad3cd2 |