diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-mapply.spec | 246 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 248 insertions, 0 deletions
@@ -0,0 +1 @@ +/mapply-0.1.21.tar.gz diff --git a/python-mapply.spec b/python-mapply.spec new file mode 100644 index 0000000..eeaafab --- /dev/null +++ b/python-mapply.spec @@ -0,0 +1,246 @@ +%global _empty_manifest_terminate_build 0 +Name: python-mapply +Version: 0.1.21 +Release: 1 +Summary: Sensible multi-core apply function for Pandas +License: MIT +URL: https://github.com/ddelange/mapply +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/d5/91/10e4fc128231b330a30d15e2e209c31c0c8151cca19487fd6b01264eb6b1/mapply-0.1.21.tar.gz +BuildArch: noarch + +Requires: python3-pathos +Requires: python3-psutil +Requires: python3-tqdm + +%description +# mapply + +[](https://github.com/ddelange/mapply/actions?query=branch%3Amaster) +[](https://codecov.io/gh/ddelange/mapply) +[](https://pypi.org/project/mapply/) +[](https://pypi.org/project/mapply/) +[](https://pypistats.org/packages/mapply) +[](https://github.com/python/black) + +[`mapply`](https://github.com/ddelange/mapply) provides a sensible multi-core apply function for Pandas. + +### mapply vs. pandarallel vs. swifter + +Where [`pandarallel`](https://pypi.org/project/pandarallel) relies on in-house multiprocessing and progressbars, and hard-codes 1 chunk per worker (which will cause idle CPUs when one chunk happens to be more expensive than the others), [`swifter`](https://pypi.org/project/swifter) relies on the heavy [`dask`](https://pypi.org/project/dask) framework for multiprocessing (converting to Dask DataFrames and back). In an attempt to find the golden mean, `mapply` is highly customizable and remains lightweight, using [`tqdm`](https://pypi.org/project/tqdm) for progressbars and leveraging the powerful [`pathos`](https://pypi.org/project/pathos) framework, which shadows Python's built-in multiprocessing module using [`dill`](https://pypi.org/project/dill) for universal pickling. + + +## Installation + +This pure-Python, OS independent package is available on [PyPI](https://pypi.org/project/mapply): + +```sh +$ pip install mapply +``` + + +## Usage + +[](https://mapply.readthedocs.io) + +For documentation, see [mapply.readthedocs.io](https://mapply.readthedocs.io/en/stable/_code_reference/mapply.html). + +```py +import pandas as pd +import mapply + +mapply.init( + n_workers=-1, + chunk_size=100, + max_chunks_per_worker=8, + progressbar=False +) + +df = pd.DataFrame({"A": list(range(100))}) + +# avoid unnecessary multiprocessing: +# due to chunk_size=100, this will act as regular apply. +# set chunk_size=1 to skip this check and let max_chunks_per_worker decide. +df["squared"] = df.A.mapply(lambda x: x ** 2) +``` + + +## Development + +[](https://github.com/carloscuesta/gitmoji-cli) +[](https://github.com/pre-commit/pre-commit) + +Run `make help` for options like installing for development, linting, testing, and building docs. + + +%package -n python3-mapply +Summary: Sensible multi-core apply function for Pandas +Provides: python-mapply +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-mapply +# mapply + +[](https://github.com/ddelange/mapply/actions?query=branch%3Amaster) +[](https://codecov.io/gh/ddelange/mapply) +[](https://pypi.org/project/mapply/) +[](https://pypi.org/project/mapply/) +[](https://pypistats.org/packages/mapply) +[](https://github.com/python/black) + +[`mapply`](https://github.com/ddelange/mapply) provides a sensible multi-core apply function for Pandas. + +### mapply vs. pandarallel vs. swifter + +Where [`pandarallel`](https://pypi.org/project/pandarallel) relies on in-house multiprocessing and progressbars, and hard-codes 1 chunk per worker (which will cause idle CPUs when one chunk happens to be more expensive than the others), [`swifter`](https://pypi.org/project/swifter) relies on the heavy [`dask`](https://pypi.org/project/dask) framework for multiprocessing (converting to Dask DataFrames and back). In an attempt to find the golden mean, `mapply` is highly customizable and remains lightweight, using [`tqdm`](https://pypi.org/project/tqdm) for progressbars and leveraging the powerful [`pathos`](https://pypi.org/project/pathos) framework, which shadows Python's built-in multiprocessing module using [`dill`](https://pypi.org/project/dill) for universal pickling. + + +## Installation + +This pure-Python, OS independent package is available on [PyPI](https://pypi.org/project/mapply): + +```sh +$ pip install mapply +``` + + +## Usage + +[](https://mapply.readthedocs.io) + +For documentation, see [mapply.readthedocs.io](https://mapply.readthedocs.io/en/stable/_code_reference/mapply.html). + +```py +import pandas as pd +import mapply + +mapply.init( + n_workers=-1, + chunk_size=100, + max_chunks_per_worker=8, + progressbar=False +) + +df = pd.DataFrame({"A": list(range(100))}) + +# avoid unnecessary multiprocessing: +# due to chunk_size=100, this will act as regular apply. +# set chunk_size=1 to skip this check and let max_chunks_per_worker decide. +df["squared"] = df.A.mapply(lambda x: x ** 2) +``` + + +## Development + +[](https://github.com/carloscuesta/gitmoji-cli) +[](https://github.com/pre-commit/pre-commit) + +Run `make help` for options like installing for development, linting, testing, and building docs. + + +%package help +Summary: Development documents and examples for mapply +Provides: python3-mapply-doc +%description help +# mapply + +[](https://github.com/ddelange/mapply/actions?query=branch%3Amaster) +[](https://codecov.io/gh/ddelange/mapply) +[](https://pypi.org/project/mapply/) +[](https://pypi.org/project/mapply/) +[](https://pypistats.org/packages/mapply) +[](https://github.com/python/black) + +[`mapply`](https://github.com/ddelange/mapply) provides a sensible multi-core apply function for Pandas. + +### mapply vs. pandarallel vs. swifter + +Where [`pandarallel`](https://pypi.org/project/pandarallel) relies on in-house multiprocessing and progressbars, and hard-codes 1 chunk per worker (which will cause idle CPUs when one chunk happens to be more expensive than the others), [`swifter`](https://pypi.org/project/swifter) relies on the heavy [`dask`](https://pypi.org/project/dask) framework for multiprocessing (converting to Dask DataFrames and back). In an attempt to find the golden mean, `mapply` is highly customizable and remains lightweight, using [`tqdm`](https://pypi.org/project/tqdm) for progressbars and leveraging the powerful [`pathos`](https://pypi.org/project/pathos) framework, which shadows Python's built-in multiprocessing module using [`dill`](https://pypi.org/project/dill) for universal pickling. + + +## Installation + +This pure-Python, OS independent package is available on [PyPI](https://pypi.org/project/mapply): + +```sh +$ pip install mapply +``` + + +## Usage + +[](https://mapply.readthedocs.io) + +For documentation, see [mapply.readthedocs.io](https://mapply.readthedocs.io/en/stable/_code_reference/mapply.html). + +```py +import pandas as pd +import mapply + +mapply.init( + n_workers=-1, + chunk_size=100, + max_chunks_per_worker=8, + progressbar=False +) + +df = pd.DataFrame({"A": list(range(100))}) + +# avoid unnecessary multiprocessing: +# due to chunk_size=100, this will act as regular apply. +# set chunk_size=1 to skip this check and let max_chunks_per_worker decide. +df["squared"] = df.A.mapply(lambda x: x ** 2) +``` + + +## Development + +[](https://github.com/carloscuesta/gitmoji-cli) +[](https://github.com/pre-commit/pre-commit) + +Run `make help` for options like installing for development, linting, testing, and building docs. + + +%prep +%autosetup -n mapply-0.1.21 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-mapply -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.21-1 +- Package Spec generated @@ -0,0 +1 @@ +04d7eb21b03770b5828574347fa89d0e mapply-0.1.21.tar.gz |