From 5abae326a3a8675fd7812103246ee032ab73b850 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 10 Apr 2023 20:26:59 +0000 Subject: automatic import of python-graphyte --- python-graphyte.spec | 234 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 python-graphyte.spec (limited to 'python-graphyte.spec') diff --git a/python-graphyte.spec b/python-graphyte.spec new file mode 100644 index 0000000..c3a6db9 --- /dev/null +++ b/python-graphyte.spec @@ -0,0 +1,234 @@ +%global _empty_manifest_terminate_build 0 +Name: python-graphyte +Version: 1.7.1 +Release: 1 +Summary: Python 3 compatible library to send data to a Graphite metrics server (Carbon) +License: MIT License +URL: https://github.com/benhoyt/graphyte +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/90/d8/516d885a705a341c6c681b8407350378f2b0f485056338166e4a108c8bec/graphyte-1.7.1.tar.gz +BuildArch: noarch + + +%description +graphyte is a small Python library that sends data to a Graphite metrics +server (Carbon). We wrote it because the existing `graphitesend`_ library +didn’t support Python 3, and it also required gevent for asyncronous use. +graphyte is tested on Python 3.5+ as well as Python 2.7, and uses the +standard library’s ``threading`` module for asynchronous use. +The library is `on the Python Package Index (PyPI)`_, so to install it, fire up +a command prompt, activate your virtualenv if you’re using one, and type: + pip install graphyte +Using graphyte is simple – just call ``init()`` to initialize the default +sender and then ``send()`` to send a message. For example, to send +``system.sync.foo.bar 42 {timestamp}\n`` to graphite.example.com:2003 +synchronously: + import graphyte + graphyte.init('graphite.example.com', prefix='system.sync') + graphyte.send('foo.bar', 42) +If you want to send asynchronously on a background thread (for example, in a +web server context), just specify a send interval. For example, this will +setup a background thread to send every 10 seconds: + graphyte.init('graphite.example.com', prefix='system.async', interval=10) + graphyte.send('foo.bar', 42) +If you want to send tagged metrics, the usage is as follows: + graphite.send('foo.bar', 42, tags={'ding': 'dong'}) +For more advanced usage, for example if you want to send to multiple servers +or if you want to subclass ``Sender``, you can instantiate instances of +``Sender`` directly. For example, to instantiate two senders sending to +different servers (one synchronous, one using a background thread with send +interval 10 seconds), use something like the following: + sender1 = graphyte.Sender('graphite1.example.com', prefix='system.one') + sender2 = graphyte.Sender('graphite2.example.com', prefix='system.two', interval=10) + sender1.send('foo.bar1', 42) + sender2.send('foo.bar2', 43) +If you want to send via UDP instead of TCP, just add ``protocol='udp'`` to +the ``init()`` or ``Sender()`` call. +Or, to customize how messages are logged or sent to the socket, subclass +``Sender`` and override ``send_message`` (or even ``send_socket`` if you +want to override logging and exception handling): + class CustomSender(graphyte.Sender): + def send_message(self, message): + print('Sending bytes in some custom way: {!r}'.format(message)) +By default, exceptions that occur when sending a message are logged. If you +want to raise and propagate exceptions instead, instantiate ``Sender`` with +``raise_send_errors=True``. It's an error to set ``raise_send_errors`` when +``interval`` is specified. +Socket sending errors are logged using the Python logging system (using +logger name “graphyte”). If the sender is initialized with +``log_sends=True``, all sends are logged at the INFO level. +You can also use graphyte to send metrics directly from the command line: + python -m graphyte foo.bar 42 +There are command line arguments to specify the server and port and other +configuration. Type ``python -m graphyte --help`` for help. +Read the code in `graphyte.py`_ for more details – it’s pretty small! +graphyte was written by `Ben Hoyt`_ and is licensed with a +permissive MIT license (see `LICENSE.txt`_). +**Related work:** `delphid`_ has a fork of graphyte which supports the statsd +protocol. See the changes on `delphid's branch`_. + +%package -n python3-graphyte +Summary: Python 3 compatible library to send data to a Graphite metrics server (Carbon) +Provides: python-graphyte +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-graphyte +graphyte is a small Python library that sends data to a Graphite metrics +server (Carbon). We wrote it because the existing `graphitesend`_ library +didn’t support Python 3, and it also required gevent for asyncronous use. +graphyte is tested on Python 3.5+ as well as Python 2.7, and uses the +standard library’s ``threading`` module for asynchronous use. +The library is `on the Python Package Index (PyPI)`_, so to install it, fire up +a command prompt, activate your virtualenv if you’re using one, and type: + pip install graphyte +Using graphyte is simple – just call ``init()`` to initialize the default +sender and then ``send()`` to send a message. For example, to send +``system.sync.foo.bar 42 {timestamp}\n`` to graphite.example.com:2003 +synchronously: + import graphyte + graphyte.init('graphite.example.com', prefix='system.sync') + graphyte.send('foo.bar', 42) +If you want to send asynchronously on a background thread (for example, in a +web server context), just specify a send interval. For example, this will +setup a background thread to send every 10 seconds: + graphyte.init('graphite.example.com', prefix='system.async', interval=10) + graphyte.send('foo.bar', 42) +If you want to send tagged metrics, the usage is as follows: + graphite.send('foo.bar', 42, tags={'ding': 'dong'}) +For more advanced usage, for example if you want to send to multiple servers +or if you want to subclass ``Sender``, you can instantiate instances of +``Sender`` directly. For example, to instantiate two senders sending to +different servers (one synchronous, one using a background thread with send +interval 10 seconds), use something like the following: + sender1 = graphyte.Sender('graphite1.example.com', prefix='system.one') + sender2 = graphyte.Sender('graphite2.example.com', prefix='system.two', interval=10) + sender1.send('foo.bar1', 42) + sender2.send('foo.bar2', 43) +If you want to send via UDP instead of TCP, just add ``protocol='udp'`` to +the ``init()`` or ``Sender()`` call. +Or, to customize how messages are logged or sent to the socket, subclass +``Sender`` and override ``send_message`` (or even ``send_socket`` if you +want to override logging and exception handling): + class CustomSender(graphyte.Sender): + def send_message(self, message): + print('Sending bytes in some custom way: {!r}'.format(message)) +By default, exceptions that occur when sending a message are logged. If you +want to raise and propagate exceptions instead, instantiate ``Sender`` with +``raise_send_errors=True``. It's an error to set ``raise_send_errors`` when +``interval`` is specified. +Socket sending errors are logged using the Python logging system (using +logger name “graphyte”). If the sender is initialized with +``log_sends=True``, all sends are logged at the INFO level. +You can also use graphyte to send metrics directly from the command line: + python -m graphyte foo.bar 42 +There are command line arguments to specify the server and port and other +configuration. Type ``python -m graphyte --help`` for help. +Read the code in `graphyte.py`_ for more details – it’s pretty small! +graphyte was written by `Ben Hoyt`_ and is licensed with a +permissive MIT license (see `LICENSE.txt`_). +**Related work:** `delphid`_ has a fork of graphyte which supports the statsd +protocol. See the changes on `delphid's branch`_. + +%package help +Summary: Development documents and examples for graphyte +Provides: python3-graphyte-doc +%description help +graphyte is a small Python library that sends data to a Graphite metrics +server (Carbon). We wrote it because the existing `graphitesend`_ library +didn’t support Python 3, and it also required gevent for asyncronous use. +graphyte is tested on Python 3.5+ as well as Python 2.7, and uses the +standard library’s ``threading`` module for asynchronous use. +The library is `on the Python Package Index (PyPI)`_, so to install it, fire up +a command prompt, activate your virtualenv if you’re using one, and type: + pip install graphyte +Using graphyte is simple – just call ``init()`` to initialize the default +sender and then ``send()`` to send a message. For example, to send +``system.sync.foo.bar 42 {timestamp}\n`` to graphite.example.com:2003 +synchronously: + import graphyte + graphyte.init('graphite.example.com', prefix='system.sync') + graphyte.send('foo.bar', 42) +If you want to send asynchronously on a background thread (for example, in a +web server context), just specify a send interval. For example, this will +setup a background thread to send every 10 seconds: + graphyte.init('graphite.example.com', prefix='system.async', interval=10) + graphyte.send('foo.bar', 42) +If you want to send tagged metrics, the usage is as follows: + graphite.send('foo.bar', 42, tags={'ding': 'dong'}) +For more advanced usage, for example if you want to send to multiple servers +or if you want to subclass ``Sender``, you can instantiate instances of +``Sender`` directly. For example, to instantiate two senders sending to +different servers (one synchronous, one using a background thread with send +interval 10 seconds), use something like the following: + sender1 = graphyte.Sender('graphite1.example.com', prefix='system.one') + sender2 = graphyte.Sender('graphite2.example.com', prefix='system.two', interval=10) + sender1.send('foo.bar1', 42) + sender2.send('foo.bar2', 43) +If you want to send via UDP instead of TCP, just add ``protocol='udp'`` to +the ``init()`` or ``Sender()`` call. +Or, to customize how messages are logged or sent to the socket, subclass +``Sender`` and override ``send_message`` (or even ``send_socket`` if you +want to override logging and exception handling): + class CustomSender(graphyte.Sender): + def send_message(self, message): + print('Sending bytes in some custom way: {!r}'.format(message)) +By default, exceptions that occur when sending a message are logged. If you +want to raise and propagate exceptions instead, instantiate ``Sender`` with +``raise_send_errors=True``. It's an error to set ``raise_send_errors`` when +``interval`` is specified. +Socket sending errors are logged using the Python logging system (using +logger name “graphyte”). If the sender is initialized with +``log_sends=True``, all sends are logged at the INFO level. +You can also use graphyte to send metrics directly from the command line: + python -m graphyte foo.bar 42 +There are command line arguments to specify the server and port and other +configuration. Type ``python -m graphyte --help`` for help. +Read the code in `graphyte.py`_ for more details – it’s pretty small! +graphyte was written by `Ben Hoyt`_ and is licensed with a +permissive MIT license (see `LICENSE.txt`_). +**Related work:** `delphid`_ has a fork of graphyte which supports the statsd +protocol. See the changes on `delphid's branch`_. + +%prep +%autosetup -n graphyte-1.7.1 + +%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-graphyte -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot - 1.7.1-1 +- Package Spec generated -- cgit v1.2.3