Metadata-Version: 2.5
Name: pyhelpers
Version: 2.5.1rc1
Summary: An open-source toolkit for facilitating Python users' data manipulation tasks
Project-URL: Homepage, https://github.com/mikeqfu/pyhelpers
Project-URL: Documentation, https://pyhelpers.readthedocs.io/en/latest/
Project-URL: Source, https://github.com/mikeqfu/pyhelpers
Project-URL: Bug Tracker, https://github.com/mikeqfu/pyhelpers/issues
Author-email: Qian Fu <q.fu@bham.ac.uk>
License: MIT License
        
        Copyright (c) 2019-2026 Qian Fu
        
        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.
License-File: LICENSE
Keywords: Data manipulation,Data preprocessing,Python,Python utilities,Python utility,Python utils,Utilities
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.12
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: psycopg2
Requires-Dist: pyproj
Requires-Dist: requests
Requires-Dist: shapely
Requires-Dist: sqlalchemy
Provides-Extra: all
Requires-Dist: fastparquet; extra == 'all'
Requires-Dist: fiona; extra == 'all'
Requires-Dist: folium; extra == 'all'
Requires-Dist: gdal; extra == 'all'
Requires-Dist: geopandas; extra == 'all'
Requires-Dist: joblib; extra == 'all'
Requires-Dist: matplotlib; extra == 'all'
Requires-Dist: networkx; extra == 'all'
Requires-Dist: nltk; extra == 'all'
Requires-Dist: odfpy; extra == 'all'
Requires-Dist: openpyxl; extra == 'all'
Requires-Dist: orjson; extra == 'all'
Requires-Dist: pdfkit; extra == 'all'
Requires-Dist: pillow; extra == 'all'
Requires-Dist: polars; extra == 'all'
Requires-Dist: pyarrow; extra == 'all'
Requires-Dist: pyodbc; extra == 'all'
Requires-Dist: pypandoc; extra == 'all'
Requires-Dist: python-rapidjson; extra == 'all'
Requires-Dist: rapidfuzz; extra == 'all'
Requires-Dist: scikit-learn; extra == 'all'
Requires-Dist: scipy; extra == 'all'
Requires-Dist: tqdm; extra == 'all'
Requires-Dist: ujson; extra == 'all'
Requires-Dist: xlsx2csv; extra == 'all'
Requires-Dist: xlsxwriter; extra == 'all'
Provides-Extra: full
Requires-Dist: fastparquet; extra == 'full'
Requires-Dist: fiona; extra == 'full'
Requires-Dist: folium; extra == 'full'
Requires-Dist: gdal; extra == 'full'
Requires-Dist: geopandas; extra == 'full'
Requires-Dist: joblib; extra == 'full'
Requires-Dist: matplotlib; extra == 'full'
Requires-Dist: networkx; extra == 'full'
Requires-Dist: nltk; extra == 'full'
Requires-Dist: odfpy; extra == 'full'
Requires-Dist: openpyxl; extra == 'full'
Requires-Dist: orjson; extra == 'full'
Requires-Dist: pdfkit; extra == 'full'
Requires-Dist: pillow; extra == 'full'
Requires-Dist: polars; extra == 'full'
Requires-Dist: pyarrow; extra == 'full'
Requires-Dist: pyodbc; extra == 'full'
Requires-Dist: pypandoc; extra == 'full'
Requires-Dist: python-rapidjson; extra == 'full'
Requires-Dist: rapidfuzz; extra == 'full'
Requires-Dist: scikit-learn; extra == 'full'
Requires-Dist: scipy; extra == 'full'
Requires-Dist: tqdm; extra == 'full'
Requires-Dist: ujson; extra == 'full'
Requires-Dist: xlsx2csv; extra == 'full'
Requires-Dist: xlsxwriter; extra == 'full'
Description-Content-Type: text/markdown

# PyHelpers

*An open-source toolkit for facilitating Python users' data manipulation tasks.*

[![Python Version](https://img.shields.io/pypi/pyversions/pyhelpers)](https://docs.python.org/3/)
[![License](https://img.shields.io/github/license/mikeqfu/pyhelpers)](https://github.com/mikeqfu/pyhelpers/blob/master/LICENSE)
[![ReadTheDocs Documentation](https://img.shields.io/readthedocs/pyhelpers?logo=readthedocs)](https://pyhelpers.readthedocs.io/en/latest/?badge=latest)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/mikeqfu/pyhelpers/github-pages.yml?logo=github&branch=master)](https://github.com/mikeqfu/pyhelpers/actions)
[![Codacy - Code Quality](https://app.codacy.com/project/badge/Grade/c3ed8571c494450da12cb0c4d3c8c7e9)](https://app.codacy.com/gh/mikeqfu/pyhelpers/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![DOI](https://img.shields.io/badge/10.5281%2Fzenodo.4017438-blue?label=doi)](https://doi.org/10.5281/zenodo.4017438)

PyHelpers is an open-source Python package designed to streamline data (pre-)processing and manipulation tasks. It accommodates a wide range of functions and classes grounded in practical applications, making common data operations more accessible and efficient. This toolkit is particularly useful for Python learners, researchers and data scientists seeking to enhance their workflows.

The package supports handling various data types, such as geographical and textual data, allowing for flexibility for diverse data processing needs. It also simplifies data input and output operations by offering functionalities for managing many different file-like objects. In addition, PyHelpers facilitates communication with relational databases, such as PostgreSQL and Microsoft SQL Server. This capability greatly smooths data integration with database systems through efficient data storage and retrieval.

With its comprehensive suite of practical tools, PyHelpers simplifies complex data processing tasks and boosts productivity. It is ready to serve as an essential resource for effective data manipulation, management and analysis for anyone working with data in Python.

## Installation

PyHelpers can be installed using [`uv`](https://docs.astral.sh/uv/) (recommended) or [`pip`](https://pip.pypa.io/en/stable/cli/pip/).

<details open>
<summary><b>Using <code>uv</code> (Recommended)</b></summary>

To add PyHelpers to an existing project:

```bash
uv add pyhelpers
```

To include all optional features (e.g. geospatial and database tools):

```bash
uv add "pyhelpers[full]"
```

If you are working in an activated virtual environment:

```bash
uv pip install --upgrade pyhelpers
```

</details>

<details>
<summary><b>Using pip</b></summary>

If you prefer standard Python packaging tools, ensure your `virtual environment`_ is activated:

```bash
pip install --upgrade pyhelpers
```

To install with all optional dependencies:

```bash
pip install --upgrade "pyhelpers[full]"
```

</details>

For detailed options, development setup and Windows troubleshooting (e.g. installing C-extension wheels), see the full [Installation Guide](https://pyhelpers.readthedocs.io/en/latest/installation.html).

## Quick start

For a concise guide on how to use PyHelpers, check out the [Quick Start](https://pyhelpers.readthedocs.io/en/latest/quick-start.html) tutorial, which includes illustrative examples for each of the [subpackages](https://pyhelpers.readthedocs.io/en/latest/subpackages.html).

These examples briefly demonstrate the capabilities of PyHelpers in facilitating data manipulation tasks and streamlining work processes.

## Documentation

The complete PyHelpers Documentation is available in [HTML](https://pyhelpers.readthedocs.io/en/latest/) and [PDF](https://pyhelpers.readthedocs.io/_/downloads/en/latest/pdf/) formats. 

It is hosted on [Read the Docs](https://app.readthedocs.org/projects/pyhelpers/), and the HTML version is also accessible via [GitHub Pages](https://mikeqfu.github.io/pyhelpers/). The documentation includes detailed examples, tutorials and comprehensive references to help users get the most out of PyHelpers. 

## Cite as

Fu, Q. (2020). PyHelpers: An open-source toolkit for facilitating Python users' data manipulation tasks. Zenodo. [doi:10.5281/zenodo.4017438](https://doi.org/10.5281/zenodo.4017438).

```bibtex
@software{Fu_PyHelpers_2020, 
    author = {Fu, Qian},
    title = {{PyHelpers: An open-source toolkit for facilitating Python users' data manipulation tasks}},
    year = {2020},
    publisher = {Zenodo},
    doi = {10.5281/zenodo.4017438},
    license = {MIT},
    url = {https://doi.org/10.5281/zenodo.4017438},
}
```

For specific version references, please refer to [Zenodo](https://zenodo.org/search?q=conceptrecid%3A%224017438%22&f=allversions%3Atrue&l=list&p=1&s=10&sort=version).

## License

PyHelpers is licensed under the [MIT License](https://github.com/mikeqfu/pyhelpers/blob/master/LICENSE).

Please note that this project was initially licensed under the [GPLv3+](https://www.gnu.org/licenses/gpl-3.0.en.html#license-text) up to version *1.5.2*. Starting with version *2.0.0*, it has been re-licensed under the MIT License.
