%global _empty_manifest_terminate_build 0
Name:		python-tracers
Version:	21.8.6876
Release:	1
Summary:	Open-Source APM (Application monitoring) project that offers you minimal overhead wrappers for profiling your code execution flow
License:	MIT
URL:		https://github.com/fluidattacks/tracers
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/dc/0b/63b60b15ba76dd93d2c286cc34324fbaf354e397bf3110a789eb507f1379/tracers-21.8.6876.tar.gz
BuildArch:	noarch

Requires:	python3-aioboto3
Requires:	python3-aiogqlc
Requires:	python3-more-itertools

%description
+++ b/examples/with_tracers.py
@@ -1,15 +1,18 @@
 import time
 from dateutil.parser import parse
+from tracers.function import trace
+@trace()
 def example():
     time.sleep(2.0)
     your_business_logic('Sat Oct 11')
+@trace()
 def your_business_logic(date: str):
     parse(date)
     time.sleep(1.0)
 example()
```
If you run it, all the functions you decorated will be traced
and you'll have metrics of the execution flow:
```
🛈  Finished transaction: 3.00 seconds
     # Timestamp                Net              Total    Call Chain
     1     0.00s     2.00s [ 66.7%]     3.00s [100.0%]    ✓ example
     2     2.00s     1.00s [ 33.3%]     1.00s [ 33.3%]    ¦   ✓ your_business_logic
           Count                Net              Total    Function
               1     2.00s [ 66.7%]     3.00s [100.0%]    ✓ example
               1     1.00s [ 33.3%]     1.00s [ 33.3%]    ✓ your_business_logic
```
From the output you can conclude:
- executing function *example* took a total of *3.0* seconds to complete
- function *example* takes *66.7%* of the execution time
- function *example encloses *100%* of your code time
- function *example* called function: *your_business_logic*
- function *your_business_logic* took *1.0* seconds out of the *3.0* seconds
  the function *example* needed to complete
- function *your_business_logic* represents *33.3%* of your execution time
Tracing code is not limited to your own code.
You can trace any **callable object** including **third party packages**,
**Python's standard library**, and almost anything
The level of detail is up to you!

%package -n python3-tracers
Summary:	Open-Source APM (Application monitoring) project that offers you minimal overhead wrappers for profiling your code execution flow
Provides:	python-tracers
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-tracers
+++ b/examples/with_tracers.py
@@ -1,15 +1,18 @@
 import time
 from dateutil.parser import parse
+from tracers.function import trace
+@trace()
 def example():
     time.sleep(2.0)
     your_business_logic('Sat Oct 11')
+@trace()
 def your_business_logic(date: str):
     parse(date)
     time.sleep(1.0)
 example()
```
If you run it, all the functions you decorated will be traced
and you'll have metrics of the execution flow:
```
🛈  Finished transaction: 3.00 seconds
     # Timestamp                Net              Total    Call Chain
     1     0.00s     2.00s [ 66.7%]     3.00s [100.0%]    ✓ example
     2     2.00s     1.00s [ 33.3%]     1.00s [ 33.3%]    ¦   ✓ your_business_logic
           Count                Net              Total    Function
               1     2.00s [ 66.7%]     3.00s [100.0%]    ✓ example
               1     1.00s [ 33.3%]     1.00s [ 33.3%]    ✓ your_business_logic
```
From the output you can conclude:
- executing function *example* took a total of *3.0* seconds to complete
- function *example* takes *66.7%* of the execution time
- function *example encloses *100%* of your code time
- function *example* called function: *your_business_logic*
- function *your_business_logic* took *1.0* seconds out of the *3.0* seconds
  the function *example* needed to complete
- function *your_business_logic* represents *33.3%* of your execution time
Tracing code is not limited to your own code.
You can trace any **callable object** including **third party packages**,
**Python's standard library**, and almost anything
The level of detail is up to you!

%package help
Summary:	Development documents and examples for tracers
Provides:	python3-tracers-doc
%description help
+++ b/examples/with_tracers.py
@@ -1,15 +1,18 @@
 import time
 from dateutil.parser import parse
+from tracers.function import trace
+@trace()
 def example():
     time.sleep(2.0)
     your_business_logic('Sat Oct 11')
+@trace()
 def your_business_logic(date: str):
     parse(date)
     time.sleep(1.0)
 example()
```
If you run it, all the functions you decorated will be traced
and you'll have metrics of the execution flow:
```
🛈  Finished transaction: 3.00 seconds
     # Timestamp                Net              Total    Call Chain
     1     0.00s     2.00s [ 66.7%]     3.00s [100.0%]    ✓ example
     2     2.00s     1.00s [ 33.3%]     1.00s [ 33.3%]    ¦   ✓ your_business_logic
           Count                Net              Total    Function
               1     2.00s [ 66.7%]     3.00s [100.0%]    ✓ example
               1     1.00s [ 33.3%]     1.00s [ 33.3%]    ✓ your_business_logic
```
From the output you can conclude:
- executing function *example* took a total of *3.0* seconds to complete
- function *example* takes *66.7%* of the execution time
- function *example encloses *100%* of your code time
- function *example* called function: *your_business_logic*
- function *your_business_logic* took *1.0* seconds out of the *3.0* seconds
  the function *example* needed to complete
- function *your_business_logic* represents *33.3%* of your execution time
Tracing code is not limited to your own code.
You can trace any **callable object** including **third party packages**,
**Python's standard library**, and almost anything
The level of detail is up to you!

%prep
%autosetup -n tracers-21.8.6876

%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-tracers -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Fri Apr 21 2023 Python_Bot <Python_Bot@openeuler.org> - 21.8.6876-1
- Package Spec generated