summaryrefslogtreecommitdiff
path: root/python-list-methods.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-06-20 04:17:06 +0000
committerCoprDistGit <infra@openeuler.org>2023-06-20 04:17:06 +0000
commite0b0972b3acaf0007b85db97c934543884e337e9 (patch)
tree102d04d0f7dc5e882f38788c4cda24e17e40f518 /python-list-methods.spec
parent1cbd611cde16b2165a4954fe113b59e21d48e874 (diff)
automatic import of python-list-methodsopeneuler20.03
Diffstat (limited to 'python-list-methods.spec')
-rw-r--r--python-list-methods.spec264
1 files changed, 264 insertions, 0 deletions
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 <Python_Bot@openeuler.org> - 0.1.3-1
+- Package Spec generated