%global _empty_manifest_terminate_build 0 Name: python-cachey Version: 0.2.1 Release: 1 Summary: Caching mindful of computation/storage costs License: BSD URL: http://github.com/dask/cachey/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c6/9c/e3c959c1601013bf8a72e8bf91ea1ebc6fe8a2305bd2324b039ee0403277/cachey-0.2.1.tar.gz BuildArch: noarch Requires: python3-heapdict %description Humans repeat stuff. Caching helps. Normal caching policies like LRU aren't well suited for analytic computations where both the cost of recomputation and the cost of storage routinely vary by one million or more. Consider the following computations ```python # Want this np.std(x) # tiny result, costly to recompute # Don't want this np.transpose(x) # huge result, cheap to recompute ``` Cachey tries to hold on to values that have the following characteristics 1. Expensive to recompute (in seconds) 2. Cheap to store (in bytes) 3. Frequently used 4. Recenty used It accomplishes this by adding the following to each items score on each access score += compute_time / num_bytes * (1 + eps) ** tick_time For some small value of epsilon (which determines the memory halflife.) This has units of inverse bandwidth, has exponential decay of old results and roughly linear amplification of repeated results. %package -n python3-cachey Summary: Caching mindful of computation/storage costs Provides: python-cachey BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-cachey Humans repeat stuff. Caching helps. Normal caching policies like LRU aren't well suited for analytic computations where both the cost of recomputation and the cost of storage routinely vary by one million or more. Consider the following computations ```python # Want this np.std(x) # tiny result, costly to recompute # Don't want this np.transpose(x) # huge result, cheap to recompute ``` Cachey tries to hold on to values that have the following characteristics 1. Expensive to recompute (in seconds) 2. Cheap to store (in bytes) 3. Frequently used 4. Recenty used It accomplishes this by adding the following to each items score on each access score += compute_time / num_bytes * (1 + eps) ** tick_time For some small value of epsilon (which determines the memory halflife.) This has units of inverse bandwidth, has exponential decay of old results and roughly linear amplification of repeated results. %package help Summary: Development documents and examples for cachey Provides: python3-cachey-doc %description help Humans repeat stuff. Caching helps. Normal caching policies like LRU aren't well suited for analytic computations where both the cost of recomputation and the cost of storage routinely vary by one million or more. Consider the following computations ```python # Want this np.std(x) # tiny result, costly to recompute # Don't want this np.transpose(x) # huge result, cheap to recompute ``` Cachey tries to hold on to values that have the following characteristics 1. Expensive to recompute (in seconds) 2. Cheap to store (in bytes) 3. Frequently used 4. Recenty used It accomplishes this by adding the following to each items score on each access score += compute_time / num_bytes * (1 + eps) ** tick_time For some small value of epsilon (which determines the memory halflife.) This has units of inverse bandwidth, has exponential decay of old results and roughly linear amplification of repeated results. %prep %autosetup -n cachey-0.2.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-cachey -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Sun Apr 23 2023 Python_Bot - 0.2.1-1 - Package Spec generated