diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:07:28 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:07:28 +0000 |
commit | 09a31af77d007e89fa76ecc268e80d2bb961b39e (patch) | |
tree | c7391575fccd9a0d46e901c9fc270c773a891ee0 /python-pylaprof.spec | |
parent | 7d35fbb681cb06c08af57a1634350535650141ee (diff) |
automatic import of python-pylaprof
Diffstat (limited to 'python-pylaprof.spec')
-rw-r--r-- | python-pylaprof.spec | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/python-pylaprof.spec b/python-pylaprof.spec new file mode 100644 index 0000000..38b9027 --- /dev/null +++ b/python-pylaprof.spec @@ -0,0 +1,309 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pylaprof +Version: 0.4.6 +Release: 1 +Summary: A Python sampling profiler for AWS Lambda functions (and not only). +License: MIT +URL: https://github.com/glumia/pylaprof +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/cd/46/256bc2e69ece84b0b75253a240df54cbce17bffaeea035952e2a620eec1b/pylaprof-0.4.6.tar.gz +BuildArch: noarch + + +%description +# pylaprof +pylaprof is a Python library that allows you to profile functions or sections of code. + +As a decorator: +```python +from pylaprof import profile + +@profile() +def handler(event, context): + ... +``` + +As a context manager: +```python +from pylaprof import Profiler + +def main(): + ... + with Profiler(): + # Only code inside this context will be profiled. + ... +``` + +It is built around three main abstractions: the *profiler*, the *sampler*, and +the *storer*. + +The profiler is the main component of pylaprof, it takes care of taking +snapshots of your program's stack at regular intervals and feeding them +to the *sampler* for processing; at the end of the profiling session, it will +then ask the *sampler* for a report and provide it to the *storer*. + +Take a look at the [source](./pylaprof/__init__.py) for more documentation +and some pre-implemented samplers and storers or [here](./examples) for some +usage examples. + +## Features +- Accessible: pylaprof's code is thoroughly documented and written to be read and + understood by other humans. + +- Extensible: you can write your own sampler or storer to generate reports in the format + you like and store them where and how you want. + +- Zero external dependencies[^1]. + +- Close to zero impact on performances (check [benchmark](./benchmark) for + more details). + +- Reliable: pylaprof was built with the context of long-running + applications or continuously invoked lambda functions in mind. + It will never break your code or pollute your standard output or error + with unwanted messages. + +- Turn on/off profiling with an environment variable. + +- Store the profiling report only if execution takes longer than a threshold. + +[^1]: boto3 is optional and required only if you want to use the S3 storer. + +### pylaprof-merge +`pylaprof-merge` is a CLI tool to merge multiple stackcollapse reports into a +single one. This might come in handy if you want to get an aggregated overview +of a function or piece of code that is executed frequently for short periods. +It is installed automatically if you get pylaprof with pip. + + +## Installation +``` +pip install pylaprof +``` + +Or just copy-paste the pylaprof directory where you need it. + + +## Credits +- This library is heavily inspired to [pprofile]( + https://github.com/vpelletier/pprofile): thanks to its authors for writing such + accessible and well-documented code. +- Thanks to @jvns for writing and distributing some of her *wizard zines* for free: + that's what got me into the rabbit hole of profiling in the first place. + + +%package -n python3-pylaprof +Summary: A Python sampling profiler for AWS Lambda functions (and not only). +Provides: python-pylaprof +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pylaprof +# pylaprof +pylaprof is a Python library that allows you to profile functions or sections of code. + +As a decorator: +```python +from pylaprof import profile + +@profile() +def handler(event, context): + ... +``` + +As a context manager: +```python +from pylaprof import Profiler + +def main(): + ... + with Profiler(): + # Only code inside this context will be profiled. + ... +``` + +It is built around three main abstractions: the *profiler*, the *sampler*, and +the *storer*. + +The profiler is the main component of pylaprof, it takes care of taking +snapshots of your program's stack at regular intervals and feeding them +to the *sampler* for processing; at the end of the profiling session, it will +then ask the *sampler* for a report and provide it to the *storer*. + +Take a look at the [source](./pylaprof/__init__.py) for more documentation +and some pre-implemented samplers and storers or [here](./examples) for some +usage examples. + +## Features +- Accessible: pylaprof's code is thoroughly documented and written to be read and + understood by other humans. + +- Extensible: you can write your own sampler or storer to generate reports in the format + you like and store them where and how you want. + +- Zero external dependencies[^1]. + +- Close to zero impact on performances (check [benchmark](./benchmark) for + more details). + +- Reliable: pylaprof was built with the context of long-running + applications or continuously invoked lambda functions in mind. + It will never break your code or pollute your standard output or error + with unwanted messages. + +- Turn on/off profiling with an environment variable. + +- Store the profiling report only if execution takes longer than a threshold. + +[^1]: boto3 is optional and required only if you want to use the S3 storer. + +### pylaprof-merge +`pylaprof-merge` is a CLI tool to merge multiple stackcollapse reports into a +single one. This might come in handy if you want to get an aggregated overview +of a function or piece of code that is executed frequently for short periods. +It is installed automatically if you get pylaprof with pip. + + +## Installation +``` +pip install pylaprof +``` + +Or just copy-paste the pylaprof directory where you need it. + + +## Credits +- This library is heavily inspired to [pprofile]( + https://github.com/vpelletier/pprofile): thanks to its authors for writing such + accessible and well-documented code. +- Thanks to @jvns for writing and distributing some of her *wizard zines* for free: + that's what got me into the rabbit hole of profiling in the first place. + + +%package help +Summary: Development documents and examples for pylaprof +Provides: python3-pylaprof-doc +%description help +# pylaprof +pylaprof is a Python library that allows you to profile functions or sections of code. + +As a decorator: +```python +from pylaprof import profile + +@profile() +def handler(event, context): + ... +``` + +As a context manager: +```python +from pylaprof import Profiler + +def main(): + ... + with Profiler(): + # Only code inside this context will be profiled. + ... +``` + +It is built around three main abstractions: the *profiler*, the *sampler*, and +the *storer*. + +The profiler is the main component of pylaprof, it takes care of taking +snapshots of your program's stack at regular intervals and feeding them +to the *sampler* for processing; at the end of the profiling session, it will +then ask the *sampler* for a report and provide it to the *storer*. + +Take a look at the [source](./pylaprof/__init__.py) for more documentation +and some pre-implemented samplers and storers or [here](./examples) for some +usage examples. + +## Features +- Accessible: pylaprof's code is thoroughly documented and written to be read and + understood by other humans. + +- Extensible: you can write your own sampler or storer to generate reports in the format + you like and store them where and how you want. + +- Zero external dependencies[^1]. + +- Close to zero impact on performances (check [benchmark](./benchmark) for + more details). + +- Reliable: pylaprof was built with the context of long-running + applications or continuously invoked lambda functions in mind. + It will never break your code or pollute your standard output or error + with unwanted messages. + +- Turn on/off profiling with an environment variable. + +- Store the profiling report only if execution takes longer than a threshold. + +[^1]: boto3 is optional and required only if you want to use the S3 storer. + +### pylaprof-merge +`pylaprof-merge` is a CLI tool to merge multiple stackcollapse reports into a +single one. This might come in handy if you want to get an aggregated overview +of a function or piece of code that is executed frequently for short periods. +It is installed automatically if you get pylaprof with pip. + + +## Installation +``` +pip install pylaprof +``` + +Or just copy-paste the pylaprof directory where you need it. + + +## Credits +- This library is heavily inspired to [pprofile]( + https://github.com/vpelletier/pprofile): thanks to its authors for writing such + accessible and well-documented code. +- Thanks to @jvns for writing and distributing some of her *wizard zines* for free: + that's what got me into the rabbit hole of profiling in the first place. + + +%prep +%autosetup -n pylaprof-0.4.6 + +%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-pylaprof -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.6-1 +- Package Spec generated |