%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 - 0.0.1-1 - Package Spec generated