summaryrefslogtreecommitdiff
path: root/python-multisplitby.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-multisplitby.spec')
-rw-r--r--python-multisplitby.spec144
1 files changed, 144 insertions, 0 deletions
diff --git a/python-multisplitby.spec b/python-multisplitby.spec
new file mode 100644
index 0000000..4af9792
--- /dev/null
+++ b/python-multisplitby.spec
@@ -0,0 +1,144 @@
+%global _empty_manifest_terminate_build 0
+Name: python-multisplitby
+Version: 0.0.1
+Release: 1
+Summary: Split an iterable into multiple using arbitrary predicates.
+License: MIT
+URL: https://github.com/cthoyt/multisplitby
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2b/2e/595fef86e166573aef74de303a95f89c6d6e32df8f036dc4b97279758d62/multisplitby-0.0.1.tar.gz
+BuildArch: noarch
+
+
+%description
+Split an iterable into multiple using arbitrary predicates.
+This package comes with a single function: ``multisplitby.multi_split_by``.
+For all lists ``values`` and ``predicates``, the following conditions are always true:
+1. ``1 + len(predicates) = len(list(multi_split_by(values, predicates)))``
+2. ``values == itertools.chain.from_iterable(multi_split_by(values, predicates))``
+Normal usage with one predicate:
+ >>> values = range(4)
+ >>> predicates = [lambda x: 2 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2], [3]]
+Normal usage with several predicates:
+ >>> values = range(9)
+ >>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2], [3, 4], [5, 6, 7], [8]]
+If no values are given, will result in ``|predicates| + 1`` generators, all yielding empty lists.
+ >>> values = []
+ >>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[], [], [], []]
+If no predicates are given, will result in a single generator that yields the original list:
+ >>> values = range(4)
+ >>> predicates = []
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2, 3]]
+
+%package -n python3-multisplitby
+Summary: Split an iterable into multiple using arbitrary predicates.
+Provides: python-multisplitby
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-multisplitby
+Split an iterable into multiple using arbitrary predicates.
+This package comes with a single function: ``multisplitby.multi_split_by``.
+For all lists ``values`` and ``predicates``, the following conditions are always true:
+1. ``1 + len(predicates) = len(list(multi_split_by(values, predicates)))``
+2. ``values == itertools.chain.from_iterable(multi_split_by(values, predicates))``
+Normal usage with one predicate:
+ >>> values = range(4)
+ >>> predicates = [lambda x: 2 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2], [3]]
+Normal usage with several predicates:
+ >>> values = range(9)
+ >>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2], [3, 4], [5, 6, 7], [8]]
+If no values are given, will result in ``|predicates| + 1`` generators, all yielding empty lists.
+ >>> values = []
+ >>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[], [], [], []]
+If no predicates are given, will result in a single generator that yields the original list:
+ >>> values = range(4)
+ >>> predicates = []
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2, 3]]
+
+%package help
+Summary: Development documents and examples for multisplitby
+Provides: python3-multisplitby-doc
+%description help
+Split an iterable into multiple using arbitrary predicates.
+This package comes with a single function: ``multisplitby.multi_split_by``.
+For all lists ``values`` and ``predicates``, the following conditions are always true:
+1. ``1 + len(predicates) = len(list(multi_split_by(values, predicates)))``
+2. ``values == itertools.chain.from_iterable(multi_split_by(values, predicates))``
+Normal usage with one predicate:
+ >>> values = range(4)
+ >>> predicates = [lambda x: 2 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2], [3]]
+Normal usage with several predicates:
+ >>> values = range(9)
+ >>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2], [3, 4], [5, 6, 7], [8]]
+If no values are given, will result in ``|predicates| + 1`` generators, all yielding empty lists.
+ >>> values = []
+ >>> predicates = [lambda x: 2 < x, lambda x: 4 < x, lambda x: 7 < x]
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[], [], [], []]
+If no predicates are given, will result in a single generator that yields the original list:
+ >>> values = range(4)
+ >>> predicates = []
+ >>> list(map(list, multi_split_by(values, predicates)))
+ [[0, 1, 2, 3]]
+
+%prep
+%autosetup -n multisplitby-0.0.1
+
+%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-multisplitby -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.1-1
+- Package Spec generated