%global _empty_manifest_terminate_build 0 Name: python-chronometry Version: 2020.11.12 Release: 1 Summary: Python library for tracking time and displaying progress bars License: MIT URL: https://github.com/idin/chronometry Source0: https://mirrors.nju.edu.cn/pypi/web/packages/93/15/c445e164db7dcb2068653974931964433af911b17ece66f6923941ad3b3e/chronometry-2020.11.12.tar.gz BuildArch: noarch Requires: python3-pandas Requires: python3-numpy Requires: python3-slytherin Requires: python3-colouration Requires: python3-sklearn Requires: python3-ravenclaw Requires: python3-func-timeout Requires: python3-matplotlib %description # *Chronometry* ## `ProgressBar` ## `Estimator` `Estimator` is an object that estimates the running time of a single argument function. You can use it to avoid running a script for too long. For example, if you want to cluster a large dataset and running it might take too long, and cost too much if you use cloud computing, you can create a function with one argument `x` which takes a sample with `x` rows and clusters it; then you can use `Estimator` to estimate how long it takes to run it on the full dataset by providing the actual number of rows to the `estimate()` method. `Estimator` uses a *Polynomial* *Linear Regression* model and gives more weight to larger numbers for the training. ### Usage ```python from chronometry import Estimator from time import sleep def multiply_with_no_delay(x, y): return (x ** 2 + 0.1 * x ** 3 + 1) * 0.00001 + y * 0.001 def multiply(x, y): sleep_time = multiply_with_no_delay(x, y) if sleep_time > 30: raise sleep(sleep_time) if y == 6: sleep(12) elif 7 < y < 15: raise Exception() return sleep_time estimator = Estimator(function=multiply, polynomial_degree=3, timeout=5) # the `unit` argument chooses the unit of time to be used. By default unit='s' estimator.auto_explore() estimator.predict_time(x=10000, y=10000) ``` The above code runs for about *53* seconds and then estimates that `multiply(10000, 10000)` will take *1002371.7* seconds which is only slightly smaller than the correct number: *1001010* seconds. `max_time` is the maximum time allowed for the estimate function to run. If you are using `Estimator` in *Jupyter*, you can plot the measurements with the `plot()` method (no arguments needed) which returns a `matplotlib` `AxesSubplot` object and displays it at the same time. ```python estimator.plot('x') estimator.plot('y') ``` %package -n python3-chronometry Summary: Python library for tracking time and displaying progress bars Provides: python-chronometry BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-chronometry # *Chronometry* ## `ProgressBar` ## `Estimator` `Estimator` is an object that estimates the running time of a single argument function. You can use it to avoid running a script for too long. For example, if you want to cluster a large dataset and running it might take too long, and cost too much if you use cloud computing, you can create a function with one argument `x` which takes a sample with `x` rows and clusters it; then you can use `Estimator` to estimate how long it takes to run it on the full dataset by providing the actual number of rows to the `estimate()` method. `Estimator` uses a *Polynomial* *Linear Regression* model and gives more weight to larger numbers for the training. ### Usage ```python from chronometry import Estimator from time import sleep def multiply_with_no_delay(x, y): return (x ** 2 + 0.1 * x ** 3 + 1) * 0.00001 + y * 0.001 def multiply(x, y): sleep_time = multiply_with_no_delay(x, y) if sleep_time > 30: raise sleep(sleep_time) if y == 6: sleep(12) elif 7 < y < 15: raise Exception() return sleep_time estimator = Estimator(function=multiply, polynomial_degree=3, timeout=5) # the `unit` argument chooses the unit of time to be used. By default unit='s' estimator.auto_explore() estimator.predict_time(x=10000, y=10000) ``` The above code runs for about *53* seconds and then estimates that `multiply(10000, 10000)` will take *1002371.7* seconds which is only slightly smaller than the correct number: *1001010* seconds. `max_time` is the maximum time allowed for the estimate function to run. If you are using `Estimator` in *Jupyter*, you can plot the measurements with the `plot()` method (no arguments needed) which returns a `matplotlib` `AxesSubplot` object and displays it at the same time. ```python estimator.plot('x') estimator.plot('y') ``` %package help Summary: Development documents and examples for chronometry Provides: python3-chronometry-doc %description help # *Chronometry* ## `ProgressBar` ## `Estimator` `Estimator` is an object that estimates the running time of a single argument function. You can use it to avoid running a script for too long. For example, if you want to cluster a large dataset and running it might take too long, and cost too much if you use cloud computing, you can create a function with one argument `x` which takes a sample with `x` rows and clusters it; then you can use `Estimator` to estimate how long it takes to run it on the full dataset by providing the actual number of rows to the `estimate()` method. `Estimator` uses a *Polynomial* *Linear Regression* model and gives more weight to larger numbers for the training. ### Usage ```python from chronometry import Estimator from time import sleep def multiply_with_no_delay(x, y): return (x ** 2 + 0.1 * x ** 3 + 1) * 0.00001 + y * 0.001 def multiply(x, y): sleep_time = multiply_with_no_delay(x, y) if sleep_time > 30: raise sleep(sleep_time) if y == 6: sleep(12) elif 7 < y < 15: raise Exception() return sleep_time estimator = Estimator(function=multiply, polynomial_degree=3, timeout=5) # the `unit` argument chooses the unit of time to be used. By default unit='s' estimator.auto_explore() estimator.predict_time(x=10000, y=10000) ``` The above code runs for about *53* seconds and then estimates that `multiply(10000, 10000)` will take *1002371.7* seconds which is only slightly smaller than the correct number: *1001010* seconds. `max_time` is the maximum time allowed for the estimate function to run. If you are using `Estimator` in *Jupyter*, you can plot the measurements with the `plot()` method (no arguments needed) which returns a `matplotlib` `AxesSubplot` object and displays it at the same time. ```python estimator.plot('x') estimator.plot('y') ``` %prep %autosetup -n chronometry-2020.11.12 %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-chronometry -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 2020.11.12-1 - Package Spec generated