From e0b0972b3acaf0007b85db97c934543884e337e9 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 20 Jun 2023 04:17:06 +0000 Subject: automatic import of python-list-methods --- python-list-methods.spec | 264 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 python-list-methods.spec (limited to 'python-list-methods.spec') diff --git a/python-list-methods.spec b/python-list-methods.spec new file mode 100644 index 0000000..3b79581 --- /dev/null +++ b/python-list-methods.spec @@ -0,0 +1,264 @@ +%global _empty_manifest_terminate_build 0 +Name: python-list-methods +Version: 0.1.3 +Release: 1 +Summary: Add .map, .filter and .reduce as list methods +License: GNU General Public License v3 or later (GPLv3+) +URL: https://github.com/theodorrene/list_methods +Source0: https://mirrors.aliyun.com/pypi/web/packages/7c/1f/2f6eb2022a2d95bbf99e2462c6a55eafda2c57144b3b82d563619ce5f920/list_methods-0.1.3.tar.gz +BuildArch: noarch + + +%description +# list_methods [Experimental] +Tired of not having map, filter and reduce easily available like in +Javascript, Java, Kotlin, etc? Fear not, this is the package for you(sort of). + +Experimental package adding .map(), .filter() and .reduce() as list methods. +Made mostly as PoC showing how the Python language can be extended in some way. + +# Installation +[![PyPI version](https://badge.fury.io/py/list-methods.svg)](https://badge.fury.io/py/list-methods) + +``` +pip install list_methods +``` + +# Use +``` +>>> from list_methods import L +>>> l = L([1,2,3]) +>>> plus_one = lambda x : x+1 +>>> greater_than_one = lamda x : x > 1 +>>> l.map(plus_one).c() +L([2,3,4]) +>>> l.filter(greater_than_one).c() +L([2,3]) +>>> l.map(plus_one).map(plus_one).filter(greater_than_one).c() +L([3,4,5]) +>>> agg_plus = lambda x,y: x+y +>>> l.reduce(agg_plus) +6 +``` + +# Gotchas +Remember to call the .c() method since this resets the object so it can be used +further. This is not necessary when ending the chain of operations with .reduce() + +## Javascript + +``` +> l = [1,2,3] +> l.map(x => x +1) +[2,3,4] +> l.map(x => x +1) +[2,3,4] +``` + + +## list_methods - Python + +``` +>>> l.map(plus_one) +L([2,3,4]) +>>> l.map(plus_one) +L([3,4,5]) +``` + +## Gotcha #2 +* The list needs to be copied when instantiating the object so it can be reset for other use. In the future one should maybe add a flag to skip this list copy if the list is only used in one place. + +# TODO +* Write tests +* Write benchmarks +* Test a implementation where a new instance of the class is returned instead of self + + + + +%package -n python3-list-methods +Summary: Add .map, .filter and .reduce as list methods +Provides: python-list-methods +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-list-methods +# list_methods [Experimental] +Tired of not having map, filter and reduce easily available like in +Javascript, Java, Kotlin, etc? Fear not, this is the package for you(sort of). + +Experimental package adding .map(), .filter() and .reduce() as list methods. +Made mostly as PoC showing how the Python language can be extended in some way. + +# Installation +[![PyPI version](https://badge.fury.io/py/list-methods.svg)](https://badge.fury.io/py/list-methods) + +``` +pip install list_methods +``` + +# Use +``` +>>> from list_methods import L +>>> l = L([1,2,3]) +>>> plus_one = lambda x : x+1 +>>> greater_than_one = lamda x : x > 1 +>>> l.map(plus_one).c() +L([2,3,4]) +>>> l.filter(greater_than_one).c() +L([2,3]) +>>> l.map(plus_one).map(plus_one).filter(greater_than_one).c() +L([3,4,5]) +>>> agg_plus = lambda x,y: x+y +>>> l.reduce(agg_plus) +6 +``` + +# Gotchas +Remember to call the .c() method since this resets the object so it can be used +further. This is not necessary when ending the chain of operations with .reduce() + +## Javascript + +``` +> l = [1,2,3] +> l.map(x => x +1) +[2,3,4] +> l.map(x => x +1) +[2,3,4] +``` + + +## list_methods - Python + +``` +>>> l.map(plus_one) +L([2,3,4]) +>>> l.map(plus_one) +L([3,4,5]) +``` + +## Gotcha #2 +* The list needs to be copied when instantiating the object so it can be reset for other use. In the future one should maybe add a flag to skip this list copy if the list is only used in one place. + +# TODO +* Write tests +* Write benchmarks +* Test a implementation where a new instance of the class is returned instead of self + + + + +%package help +Summary: Development documents and examples for list-methods +Provides: python3-list-methods-doc +%description help +# list_methods [Experimental] +Tired of not having map, filter and reduce easily available like in +Javascript, Java, Kotlin, etc? Fear not, this is the package for you(sort of). + +Experimental package adding .map(), .filter() and .reduce() as list methods. +Made mostly as PoC showing how the Python language can be extended in some way. + +# Installation +[![PyPI version](https://badge.fury.io/py/list-methods.svg)](https://badge.fury.io/py/list-methods) + +``` +pip install list_methods +``` + +# Use +``` +>>> from list_methods import L +>>> l = L([1,2,3]) +>>> plus_one = lambda x : x+1 +>>> greater_than_one = lamda x : x > 1 +>>> l.map(plus_one).c() +L([2,3,4]) +>>> l.filter(greater_than_one).c() +L([2,3]) +>>> l.map(plus_one).map(plus_one).filter(greater_than_one).c() +L([3,4,5]) +>>> agg_plus = lambda x,y: x+y +>>> l.reduce(agg_plus) +6 +``` + +# Gotchas +Remember to call the .c() method since this resets the object so it can be used +further. This is not necessary when ending the chain of operations with .reduce() + +## Javascript + +``` +> l = [1,2,3] +> l.map(x => x +1) +[2,3,4] +> l.map(x => x +1) +[2,3,4] +``` + + +## list_methods - Python + +``` +>>> l.map(plus_one) +L([2,3,4]) +>>> l.map(plus_one) +L([3,4,5]) +``` + +## Gotcha #2 +* The list needs to be copied when instantiating the object so it can be reset for other use. In the future one should maybe add a flag to skip this list copy if the list is only used in one place. + +# TODO +* Write tests +* Write benchmarks +* Test a implementation where a new instance of the class is returned instead of self + + + + +%prep +%autosetup -n list_methods-0.1.3 + +%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-list-methods -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot - 0.1.3-1 +- Package Spec generated -- cgit v1.2.3