%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 - 0.4.6-1 - Package Spec generated