diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-chronometry.spec | 254 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 256 insertions, 0 deletions
@@ -0,0 +1 @@ +/chronometry-2020.11.12.tar.gz diff --git a/python-chronometry.spec b/python-chronometry.spec new file mode 100644 index 0000000..f91bb32 --- /dev/null +++ b/python-chronometry.spec @@ -0,0 +1,254 @@ +%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 <Python_Bot@openeuler.org> - 2020.11.12-1 +- Package Spec generated @@ -0,0 +1 @@ +19013d88934962e03d06f58ed8698d45 chronometry-2020.11.12.tar.gz |