diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-timy.spec | 561 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 563 insertions, 0 deletions
@@ -0,0 +1 @@ +/timy-0.4.2.tar.gz diff --git a/python-timy.spec b/python-timy.spec new file mode 100644 index 0000000..3d5d259 --- /dev/null +++ b/python-timy.spec @@ -0,0 +1,561 @@ +%global _empty_manifest_terminate_build 0 +Name: python-timy +Version: 0.4.2 +Release: 1 +Summary: Minimalist measurement of python code time +License: MIT +URL: https://github.com/ramonsaraiva/timy +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c9/f9/727adf584069a67de5a46ea33b22fa8023ca2fe8ea72cf09c0471cd16890/timy-0.4.2.tar.gz +BuildArch: noarch + + +%description +# timy + + + + + + + + + +Minimalist measurement of python code time +> **timy** comes with a different idea of the built-in module [timeit](https://docs.python.org/2.7/library/timeit.html). It adds flexibility and different ways of measuring code time, using simple context managers and function decorators. + +## Installing +``` +pip install timy +``` + +## Usage + +### Decorating a function +Let's say you have a `calculate` function and you want to keep track of its execution time +```python +import timy + +@timy.timer() +def calculate(n, r): + """ + Divide, multiply and sum 'n' to every number in range 'r' + returning the result list + """ + return [i / n * n + n for i in range(r)] +``` + +Whenever you call that function, the execution time will be tracked + +```python +calculate(5, 10000000) +>> Timy executed (calculate) for 1 time(s) in 1.529540 seconds +>> Timy best time was 1.529540 seconds +``` + +Changing the **ident** and adding **loops** to the execution + +```python +import timy + +@timy.timer(ident='My calculation', loops=10) +def calculate(n, r): + return [i / n * n + n for i in range(r)] + +calculate(5, 10000000) +>> My calculation executed (calculate) for 10 time(s) in 15.165313 seconds +>> My calculation best time was 1.414186 seconds +``` + +### Tracking **specific points** along your code +The `with` statement can also be used to measure code time +> Named tracking points can be added with the `track` function + +```python +import timy + +with timy.Timer() as timer: + N = 10000000 + for i in range(N): + if i == N/2: + timer.track('Half way') + +>> Timy (Half way) 0.557577 seconds +>> Timy 0.988087 seconds +``` + +Another usage of tracking in a prime factors function + +```python +def prime_factors(n): + with timy.Timer('Factors') as timer: + i = 2 + factors = [] + def add_factor(n): + factors.append(n) + timer.track('Found a factor') + + while i * i <= n: + if n % i == 0: + add_factor(i) + n //= i + else: + i += 1 + return factors + [n] + +factors = prime_factors(600851475143) +print(factors) + +>> Factors (Found a factor) 0.000017 seconds +>> Factors (Found a factor) 0.000376 seconds +>> Factors (Found a factor) 0.001547 seconds +>> Factors 0.001754 seconds +>> [71, 839, 1471, 6857] +``` + +### Configuring + +#### Importing timy config + +```python +from timy.settings import timy_config +``` + +#### Enable or disable timy trackings +You can enable or disable timy trackings with the `tracking` value. +> The default value of `tracking` is `True` + +```python +timy_config.tracking = False +``` + +#### Changing the way timy outputs information +You can choose between print or logging for all timy outputs by setting the +value of `tracking_mode`. +> The default value of `tracking_mode` is `TrackingMode.PRINTING`. + +```python +from timy.settings import ( + timy_config, + TrackingMode +) + +timy_config.tracking_mode = TrackingMode.LOGGING +``` + +timy logs at the INFO level, which is not printed or stored by default. To +configure the logging system to print all INFO messages do +``` +import logging +logging.basicConfig(level=logging.INFO) +``` +or to configure the logging system to print only timy's INFO messages do +``` +import logging +logging.basicConfig() +logging.getLogger('timy').level=logging.INFO +``` + +## Contribute +Contributions are **always** welcome, but keep it simple and small. + +## License +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details + + +## Changelog + +### v 0.4.0 (September 23, 2017) + +- Drops py2 support and adds 100% coverage with CI integration + +### v 0.3.3 (April 19, 2017) + +- Adds an optional argument `include_sleeptime` to count time elapsed including sleep time (`include_sleeptime=True`) and excluding sleep time (`include_sleeptime=False`) + + + + +%package -n python3-timy +Summary: Minimalist measurement of python code time +Provides: python-timy +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-timy +# timy + + + + + + + + + +Minimalist measurement of python code time +> **timy** comes with a different idea of the built-in module [timeit](https://docs.python.org/2.7/library/timeit.html). It adds flexibility and different ways of measuring code time, using simple context managers and function decorators. + +## Installing +``` +pip install timy +``` + +## Usage + +### Decorating a function +Let's say you have a `calculate` function and you want to keep track of its execution time +```python +import timy + +@timy.timer() +def calculate(n, r): + """ + Divide, multiply and sum 'n' to every number in range 'r' + returning the result list + """ + return [i / n * n + n for i in range(r)] +``` + +Whenever you call that function, the execution time will be tracked + +```python +calculate(5, 10000000) +>> Timy executed (calculate) for 1 time(s) in 1.529540 seconds +>> Timy best time was 1.529540 seconds +``` + +Changing the **ident** and adding **loops** to the execution + +```python +import timy + +@timy.timer(ident='My calculation', loops=10) +def calculate(n, r): + return [i / n * n + n for i in range(r)] + +calculate(5, 10000000) +>> My calculation executed (calculate) for 10 time(s) in 15.165313 seconds +>> My calculation best time was 1.414186 seconds +``` + +### Tracking **specific points** along your code +The `with` statement can also be used to measure code time +> Named tracking points can be added with the `track` function + +```python +import timy + +with timy.Timer() as timer: + N = 10000000 + for i in range(N): + if i == N/2: + timer.track('Half way') + +>> Timy (Half way) 0.557577 seconds +>> Timy 0.988087 seconds +``` + +Another usage of tracking in a prime factors function + +```python +def prime_factors(n): + with timy.Timer('Factors') as timer: + i = 2 + factors = [] + def add_factor(n): + factors.append(n) + timer.track('Found a factor') + + while i * i <= n: + if n % i == 0: + add_factor(i) + n //= i + else: + i += 1 + return factors + [n] + +factors = prime_factors(600851475143) +print(factors) + +>> Factors (Found a factor) 0.000017 seconds +>> Factors (Found a factor) 0.000376 seconds +>> Factors (Found a factor) 0.001547 seconds +>> Factors 0.001754 seconds +>> [71, 839, 1471, 6857] +``` + +### Configuring + +#### Importing timy config + +```python +from timy.settings import timy_config +``` + +#### Enable or disable timy trackings +You can enable or disable timy trackings with the `tracking` value. +> The default value of `tracking` is `True` + +```python +timy_config.tracking = False +``` + +#### Changing the way timy outputs information +You can choose between print or logging for all timy outputs by setting the +value of `tracking_mode`. +> The default value of `tracking_mode` is `TrackingMode.PRINTING`. + +```python +from timy.settings import ( + timy_config, + TrackingMode +) + +timy_config.tracking_mode = TrackingMode.LOGGING +``` + +timy logs at the INFO level, which is not printed or stored by default. To +configure the logging system to print all INFO messages do +``` +import logging +logging.basicConfig(level=logging.INFO) +``` +or to configure the logging system to print only timy's INFO messages do +``` +import logging +logging.basicConfig() +logging.getLogger('timy').level=logging.INFO +``` + +## Contribute +Contributions are **always** welcome, but keep it simple and small. + +## License +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details + + +## Changelog + +### v 0.4.0 (September 23, 2017) + +- Drops py2 support and adds 100% coverage with CI integration + +### v 0.3.3 (April 19, 2017) + +- Adds an optional argument `include_sleeptime` to count time elapsed including sleep time (`include_sleeptime=True`) and excluding sleep time (`include_sleeptime=False`) + + + + +%package help +Summary: Development documents and examples for timy +Provides: python3-timy-doc +%description help +# timy + + + + + + + + + +Minimalist measurement of python code time +> **timy** comes with a different idea of the built-in module [timeit](https://docs.python.org/2.7/library/timeit.html). It adds flexibility and different ways of measuring code time, using simple context managers and function decorators. + +## Installing +``` +pip install timy +``` + +## Usage + +### Decorating a function +Let's say you have a `calculate` function and you want to keep track of its execution time +```python +import timy + +@timy.timer() +def calculate(n, r): + """ + Divide, multiply and sum 'n' to every number in range 'r' + returning the result list + """ + return [i / n * n + n for i in range(r)] +``` + +Whenever you call that function, the execution time will be tracked + +```python +calculate(5, 10000000) +>> Timy executed (calculate) for 1 time(s) in 1.529540 seconds +>> Timy best time was 1.529540 seconds +``` + +Changing the **ident** and adding **loops** to the execution + +```python +import timy + +@timy.timer(ident='My calculation', loops=10) +def calculate(n, r): + return [i / n * n + n for i in range(r)] + +calculate(5, 10000000) +>> My calculation executed (calculate) for 10 time(s) in 15.165313 seconds +>> My calculation best time was 1.414186 seconds +``` + +### Tracking **specific points** along your code +The `with` statement can also be used to measure code time +> Named tracking points can be added with the `track` function + +```python +import timy + +with timy.Timer() as timer: + N = 10000000 + for i in range(N): + if i == N/2: + timer.track('Half way') + +>> Timy (Half way) 0.557577 seconds +>> Timy 0.988087 seconds +``` + +Another usage of tracking in a prime factors function + +```python +def prime_factors(n): + with timy.Timer('Factors') as timer: + i = 2 + factors = [] + def add_factor(n): + factors.append(n) + timer.track('Found a factor') + + while i * i <= n: + if n % i == 0: + add_factor(i) + n //= i + else: + i += 1 + return factors + [n] + +factors = prime_factors(600851475143) +print(factors) + +>> Factors (Found a factor) 0.000017 seconds +>> Factors (Found a factor) 0.000376 seconds +>> Factors (Found a factor) 0.001547 seconds +>> Factors 0.001754 seconds +>> [71, 839, 1471, 6857] +``` + +### Configuring + +#### Importing timy config + +```python +from timy.settings import timy_config +``` + +#### Enable or disable timy trackings +You can enable or disable timy trackings with the `tracking` value. +> The default value of `tracking` is `True` + +```python +timy_config.tracking = False +``` + +#### Changing the way timy outputs information +You can choose between print or logging for all timy outputs by setting the +value of `tracking_mode`. +> The default value of `tracking_mode` is `TrackingMode.PRINTING`. + +```python +from timy.settings import ( + timy_config, + TrackingMode +) + +timy_config.tracking_mode = TrackingMode.LOGGING +``` + +timy logs at the INFO level, which is not printed or stored by default. To +configure the logging system to print all INFO messages do +``` +import logging +logging.basicConfig(level=logging.INFO) +``` +or to configure the logging system to print only timy's INFO messages do +``` +import logging +logging.basicConfig() +logging.getLogger('timy').level=logging.INFO +``` + +## Contribute +Contributions are **always** welcome, but keep it simple and small. + +## License +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details + + +## Changelog + +### v 0.4.0 (September 23, 2017) + +- Drops py2 support and adds 100% coverage with CI integration + +### v 0.3.3 (April 19, 2017) + +- Adds an optional argument `include_sleeptime` to count time elapsed including sleep time (`include_sleeptime=True`) and excluding sleep time (`include_sleeptime=False`) + + + + +%prep +%autosetup -n timy-0.4.2 + +%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-timy -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.2-1 +- Package Spec generated @@ -0,0 +1 @@ +4359dfbc385d05fe1bf5e46c1c92f5b6 timy-0.4.2.tar.gz |