summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 18:05:43 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 18:05:43 +0000
commita1cd10926c52de45c9e84bb6ea78bebc8b56cb46 (patch)
treef4106701ee646fd7aa2506c911f2920f3ac49f1d
parent8ffe9e28b6b4530264ad5328d176416b53bb5884 (diff)
automatic import of python-pybrake
-rw-r--r--.gitignore1
-rw-r--r--python-pybrake.spec819
-rw-r--r--sources1
3 files changed, 821 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..1f46604 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pybrake-1.10.1.tar.gz
diff --git a/python-pybrake.spec b/python-pybrake.spec
new file mode 100644
index 0000000..e9f9438
--- /dev/null
+++ b/python-pybrake.spec
@@ -0,0 +1,819 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pybrake
+Version: 1.10.1
+Release: 1
+Summary: Python exception notifier for Airbrake
+License: MIT
+URL: http://github.com/airbrake/pybrake
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e1/b6/60cc1574170587a6e26d22a461a4b1c204a6e68ebeef3fafb1b933425254/pybrake-1.10.1.tar.gz
+BuildArch: noarch
+
+
+%description
+# Python exception notifier for Airbrake
+
+![Build Status](https://github.com/airbrake/pybrake/workflows/pybrake/badge.svg)
+
+## Installation
+
+pybrake requires Python 3.6+.
+
+``` shell
+pip install -U pybrake
+```
+
+## Configuration
+
+You **must** set both `project_id` & `project_key`.
+
+To find your `project_id` and `project_key` navigate to your project's
+_Settings_ and copy the values from the right sidebar.
+
+![project-idkey]
+
+```python
+import pybrake
+
+notifier = pybrake.Notifier(project_id=123,
+ project_key='FIXME',
+ environment='production')
+```
+
+## Sending errors to Airbrake
+
+```python
+try:
+ raise ValueError('hello')
+except Exception as err:
+ notifier.notify(err)
+```
+
+### Sending errors synchronously
+
+By default, the `notify` function sends errors asynchronously using
+`ThreadPoolExecutor` and returns a `concurrent.futures.Future`, a synchronous
+API is also made available with the `notify_sync` function:
+
+```python
+notice = notifier.notify_sync(err)
+if 'id' in notice:
+ print(notice['id'])
+else:
+ print(notice['error'])
+```
+
+## Adding custom params
+
+To set custom params you can build and send notice in separate steps:
+
+```python
+notice = notifier.build_notice(err)
+notice['params']['myparam'] = 'myvalue'
+notifier.send_notice(notice)
+```
+
+You can also add custom params to every error notice before it's sent to Airbrake
+with the `add_filter` function.
+
+```python
+def my_filter(notice):
+ notice['params']['myparam'] = 'myvalue'
+ return notice
+
+notifier.add_filter(my_filter)
+```
+
+## Ignoring notices
+
+There may be some notices/errors thrown in your application that you're not
+interested in sending to Airbrake, you can ignore these using the `add_filter`
+function.
+
+```python
+def my_filter(notice):
+ if notice['context']['environment'] == 'development':
+ # Ignore notices in development environment.
+ return None
+ return notice
+
+notifier.add_filter(my_filter)
+```
+
+## Filtering keys
+
+With `keys_blocklist` option you can specify list of keys containing sensitive information that must be filtered out, e.g.:
+
+```python
+notifier = pybrake.Notifier(
+ ...
+ keys_blocklist=[
+ 'password', # exact match
+ re.compile('secret'), # regexp match
+ ],
+)
+```
+
+## Logging integration
+
+pybrake provides a logging handler that sends your logs to Airbrake.
+
+```python
+import logging
+import pybrake
+
+
+airbrake_handler = pybrake.LoggingHandler(notifier=notifier,
+ level=logging.ERROR)
+
+logger = logging.getLogger('test')
+logger.addHandler(airbrake_handler)
+
+logger.error('something bad happened')
+```
+
+## Disabling pybrake logs
+
+The pybrake logger can be silenced by setting the logging level to
+`logging.CRITICAL`.
+
+``` python
+import logging
+
+
+logging.getLogger("pybrake").setLevel(logging.CRITICAL)
+```
+
+## Sending route stats
+
+`notifier.routes.notify` allows sending route stats to Airbrake. The library
+provides integrations with Django and Flask. (your routes are tracked
+automatically). You can also use this API manually:
+
+```py
+from pybrake import RouteMetric
+
+metric = RouteMetric(method=request.method, route=route)
+metric.status_code = response.status_code
+metric.content_type = response.headers.get("Content-Type")
+metric.end_time = time.time()
+
+notifier.routes.notify(metric)
+```
+
+## Sending route breakdowns
+
+`notifier.routes.breakdowns.notify` allows sending performance breakdown stats
+to Airbrake. You can use this API manually:
+
+```py
+from pybrake import RouteMetric
+
+metric = RouteMetric(
+ method=request.method,
+ route='/things/1',
+ status_code=200,
+ content_type=response.headers.get('Content-Type'))
+metric._groups = {'db': 12.34, 'view': 56.78}
+metric.end_time=time.time()
+
+notifier.routes.breakdowns.notify(metric)
+```
+
+## Sending query stats
+
+`notifier.queries.notify` allows sending SQL query stats to Airbrake. The
+library provides integration with Django (your queries are tracked
+automatically). You can also use this API manually:
+
+```py
+notifier.queries.notify(
+ query="SELECT * FROM foos",
+ method=request.method,
+ route=route,
+ function="test",
+ file="test",
+ line=10,
+ start_time=time.time(),
+ end_time=time.time(),
+)
+```
+
+## Sending queue stats
+
+`notifier.queues.notify` allows sending queue (job) stats to Airbrake. The
+library provides integration with Celery (your queues are tracked
+automatically). You can also use this API manually:
+
+```py
+from pybrake import QueueMetric
+
+metric = QueueMetric(queue="foo_queue")
+metric._groups = {'redis': 24.0, 'sql': 0.4}
+notifier.queues.notify(metric)
+```
+
+## Framework Integration
+
+Pybrake provides a ready-to-use solution with minimal configuration for python
+frameworks.
+
+* [AIOHTTP](https://docs.airbrake.io/docs/platforms/framework/python/aiohttp)
+* [BottlePy](https://docs.airbrake.io/docs/platforms/framework/python/bottle)
+* [Celery](https://docs.airbrake.io/docs/platforms/framework/python/celery)
+* [CherryPy](https://docs.airbrake.io/docs/platforms/framework/python/cherrypy)
+* [Django](https://docs.airbrake.io/docs/platforms/framework/python/django)
+* [FastAPI](https://docs.airbrake.io/docs/platforms/framework/python/fastapi)
+* [Falcon](https://docs.airbrake.io/docs/platforms/framework/python/falcon)
+* [Flask](https://docs.airbrake.io/docs/platforms/framework/python/flask)
+* [Hug](https://docs.airbrake.io/docs/platforms/framework/python/hug)
+* [Masonite](https://docs.airbrake.io/docs/platforms/framework/python/masonite)
+* [Pycnic](https://docs.airbrake.io/docs/platforms/framework/python/pycnic)
+* [Pyramid](https://docs.airbrake.io/docs/platforms/framework/python/pyramid)
+* [Sanic](https://docs.airbrake.io/docs/platforms/framework/python/sanic)
+* [Starlette](https://docs.airbrake.io//docs/platforms/framework/python/starlette)
+* [Tornado](https://docs.airbrake.io//docs/platforms/framework/python/tornado)
+* [Turbogears2](https://docs.airbrake.io//docs/platforms/framework/python/turbogears2)
+
+## Development
+
+### Running the tests
+
+```shell
+pip install -r requirements.txt
+pip install -r test-requirements.txt
+pytest
+```
+
+### Uploading to PyPI
+
+```shell
+python setup.py sdist upload
+```
+
+### Remote configuration
+
+Every 10 minutes the notifier issues an HTTP GET request to fetch remote
+configuration. This might be undesirable while running tests. To suppress this
+HTTP call, you need to pass `remote_config=False` to the notifier.
+
+[project-idkey]: https://s3.amazonaws.com/airbrake-github-assets/pybrake/project-id-key.png
+
+
+
+
+%package -n python3-pybrake
+Summary: Python exception notifier for Airbrake
+Provides: python-pybrake
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pybrake
+# Python exception notifier for Airbrake
+
+![Build Status](https://github.com/airbrake/pybrake/workflows/pybrake/badge.svg)
+
+## Installation
+
+pybrake requires Python 3.6+.
+
+``` shell
+pip install -U pybrake
+```
+
+## Configuration
+
+You **must** set both `project_id` & `project_key`.
+
+To find your `project_id` and `project_key` navigate to your project's
+_Settings_ and copy the values from the right sidebar.
+
+![project-idkey]
+
+```python
+import pybrake
+
+notifier = pybrake.Notifier(project_id=123,
+ project_key='FIXME',
+ environment='production')
+```
+
+## Sending errors to Airbrake
+
+```python
+try:
+ raise ValueError('hello')
+except Exception as err:
+ notifier.notify(err)
+```
+
+### Sending errors synchronously
+
+By default, the `notify` function sends errors asynchronously using
+`ThreadPoolExecutor` and returns a `concurrent.futures.Future`, a synchronous
+API is also made available with the `notify_sync` function:
+
+```python
+notice = notifier.notify_sync(err)
+if 'id' in notice:
+ print(notice['id'])
+else:
+ print(notice['error'])
+```
+
+## Adding custom params
+
+To set custom params you can build and send notice in separate steps:
+
+```python
+notice = notifier.build_notice(err)
+notice['params']['myparam'] = 'myvalue'
+notifier.send_notice(notice)
+```
+
+You can also add custom params to every error notice before it's sent to Airbrake
+with the `add_filter` function.
+
+```python
+def my_filter(notice):
+ notice['params']['myparam'] = 'myvalue'
+ return notice
+
+notifier.add_filter(my_filter)
+```
+
+## Ignoring notices
+
+There may be some notices/errors thrown in your application that you're not
+interested in sending to Airbrake, you can ignore these using the `add_filter`
+function.
+
+```python
+def my_filter(notice):
+ if notice['context']['environment'] == 'development':
+ # Ignore notices in development environment.
+ return None
+ return notice
+
+notifier.add_filter(my_filter)
+```
+
+## Filtering keys
+
+With `keys_blocklist` option you can specify list of keys containing sensitive information that must be filtered out, e.g.:
+
+```python
+notifier = pybrake.Notifier(
+ ...
+ keys_blocklist=[
+ 'password', # exact match
+ re.compile('secret'), # regexp match
+ ],
+)
+```
+
+## Logging integration
+
+pybrake provides a logging handler that sends your logs to Airbrake.
+
+```python
+import logging
+import pybrake
+
+
+airbrake_handler = pybrake.LoggingHandler(notifier=notifier,
+ level=logging.ERROR)
+
+logger = logging.getLogger('test')
+logger.addHandler(airbrake_handler)
+
+logger.error('something bad happened')
+```
+
+## Disabling pybrake logs
+
+The pybrake logger can be silenced by setting the logging level to
+`logging.CRITICAL`.
+
+``` python
+import logging
+
+
+logging.getLogger("pybrake").setLevel(logging.CRITICAL)
+```
+
+## Sending route stats
+
+`notifier.routes.notify` allows sending route stats to Airbrake. The library
+provides integrations with Django and Flask. (your routes are tracked
+automatically). You can also use this API manually:
+
+```py
+from pybrake import RouteMetric
+
+metric = RouteMetric(method=request.method, route=route)
+metric.status_code = response.status_code
+metric.content_type = response.headers.get("Content-Type")
+metric.end_time = time.time()
+
+notifier.routes.notify(metric)
+```
+
+## Sending route breakdowns
+
+`notifier.routes.breakdowns.notify` allows sending performance breakdown stats
+to Airbrake. You can use this API manually:
+
+```py
+from pybrake import RouteMetric
+
+metric = RouteMetric(
+ method=request.method,
+ route='/things/1',
+ status_code=200,
+ content_type=response.headers.get('Content-Type'))
+metric._groups = {'db': 12.34, 'view': 56.78}
+metric.end_time=time.time()
+
+notifier.routes.breakdowns.notify(metric)
+```
+
+## Sending query stats
+
+`notifier.queries.notify` allows sending SQL query stats to Airbrake. The
+library provides integration with Django (your queries are tracked
+automatically). You can also use this API manually:
+
+```py
+notifier.queries.notify(
+ query="SELECT * FROM foos",
+ method=request.method,
+ route=route,
+ function="test",
+ file="test",
+ line=10,
+ start_time=time.time(),
+ end_time=time.time(),
+)
+```
+
+## Sending queue stats
+
+`notifier.queues.notify` allows sending queue (job) stats to Airbrake. The
+library provides integration with Celery (your queues are tracked
+automatically). You can also use this API manually:
+
+```py
+from pybrake import QueueMetric
+
+metric = QueueMetric(queue="foo_queue")
+metric._groups = {'redis': 24.0, 'sql': 0.4}
+notifier.queues.notify(metric)
+```
+
+## Framework Integration
+
+Pybrake provides a ready-to-use solution with minimal configuration for python
+frameworks.
+
+* [AIOHTTP](https://docs.airbrake.io/docs/platforms/framework/python/aiohttp)
+* [BottlePy](https://docs.airbrake.io/docs/platforms/framework/python/bottle)
+* [Celery](https://docs.airbrake.io/docs/platforms/framework/python/celery)
+* [CherryPy](https://docs.airbrake.io/docs/platforms/framework/python/cherrypy)
+* [Django](https://docs.airbrake.io/docs/platforms/framework/python/django)
+* [FastAPI](https://docs.airbrake.io/docs/platforms/framework/python/fastapi)
+* [Falcon](https://docs.airbrake.io/docs/platforms/framework/python/falcon)
+* [Flask](https://docs.airbrake.io/docs/platforms/framework/python/flask)
+* [Hug](https://docs.airbrake.io/docs/platforms/framework/python/hug)
+* [Masonite](https://docs.airbrake.io/docs/platforms/framework/python/masonite)
+* [Pycnic](https://docs.airbrake.io/docs/platforms/framework/python/pycnic)
+* [Pyramid](https://docs.airbrake.io/docs/platforms/framework/python/pyramid)
+* [Sanic](https://docs.airbrake.io/docs/platforms/framework/python/sanic)
+* [Starlette](https://docs.airbrake.io//docs/platforms/framework/python/starlette)
+* [Tornado](https://docs.airbrake.io//docs/platforms/framework/python/tornado)
+* [Turbogears2](https://docs.airbrake.io//docs/platforms/framework/python/turbogears2)
+
+## Development
+
+### Running the tests
+
+```shell
+pip install -r requirements.txt
+pip install -r test-requirements.txt
+pytest
+```
+
+### Uploading to PyPI
+
+```shell
+python setup.py sdist upload
+```
+
+### Remote configuration
+
+Every 10 minutes the notifier issues an HTTP GET request to fetch remote
+configuration. This might be undesirable while running tests. To suppress this
+HTTP call, you need to pass `remote_config=False` to the notifier.
+
+[project-idkey]: https://s3.amazonaws.com/airbrake-github-assets/pybrake/project-id-key.png
+
+
+
+
+%package help
+Summary: Development documents and examples for pybrake
+Provides: python3-pybrake-doc
+%description help
+# Python exception notifier for Airbrake
+
+![Build Status](https://github.com/airbrake/pybrake/workflows/pybrake/badge.svg)
+
+## Installation
+
+pybrake requires Python 3.6+.
+
+``` shell
+pip install -U pybrake
+```
+
+## Configuration
+
+You **must** set both `project_id` & `project_key`.
+
+To find your `project_id` and `project_key` navigate to your project's
+_Settings_ and copy the values from the right sidebar.
+
+![project-idkey]
+
+```python
+import pybrake
+
+notifier = pybrake.Notifier(project_id=123,
+ project_key='FIXME',
+ environment='production')
+```
+
+## Sending errors to Airbrake
+
+```python
+try:
+ raise ValueError('hello')
+except Exception as err:
+ notifier.notify(err)
+```
+
+### Sending errors synchronously
+
+By default, the `notify` function sends errors asynchronously using
+`ThreadPoolExecutor` and returns a `concurrent.futures.Future`, a synchronous
+API is also made available with the `notify_sync` function:
+
+```python
+notice = notifier.notify_sync(err)
+if 'id' in notice:
+ print(notice['id'])
+else:
+ print(notice['error'])
+```
+
+## Adding custom params
+
+To set custom params you can build and send notice in separate steps:
+
+```python
+notice = notifier.build_notice(err)
+notice['params']['myparam'] = 'myvalue'
+notifier.send_notice(notice)
+```
+
+You can also add custom params to every error notice before it's sent to Airbrake
+with the `add_filter` function.
+
+```python
+def my_filter(notice):
+ notice['params']['myparam'] = 'myvalue'
+ return notice
+
+notifier.add_filter(my_filter)
+```
+
+## Ignoring notices
+
+There may be some notices/errors thrown in your application that you're not
+interested in sending to Airbrake, you can ignore these using the `add_filter`
+function.
+
+```python
+def my_filter(notice):
+ if notice['context']['environment'] == 'development':
+ # Ignore notices in development environment.
+ return None
+ return notice
+
+notifier.add_filter(my_filter)
+```
+
+## Filtering keys
+
+With `keys_blocklist` option you can specify list of keys containing sensitive information that must be filtered out, e.g.:
+
+```python
+notifier = pybrake.Notifier(
+ ...
+ keys_blocklist=[
+ 'password', # exact match
+ re.compile('secret'), # regexp match
+ ],
+)
+```
+
+## Logging integration
+
+pybrake provides a logging handler that sends your logs to Airbrake.
+
+```python
+import logging
+import pybrake
+
+
+airbrake_handler = pybrake.LoggingHandler(notifier=notifier,
+ level=logging.ERROR)
+
+logger = logging.getLogger('test')
+logger.addHandler(airbrake_handler)
+
+logger.error('something bad happened')
+```
+
+## Disabling pybrake logs
+
+The pybrake logger can be silenced by setting the logging level to
+`logging.CRITICAL`.
+
+``` python
+import logging
+
+
+logging.getLogger("pybrake").setLevel(logging.CRITICAL)
+```
+
+## Sending route stats
+
+`notifier.routes.notify` allows sending route stats to Airbrake. The library
+provides integrations with Django and Flask. (your routes are tracked
+automatically). You can also use this API manually:
+
+```py
+from pybrake import RouteMetric
+
+metric = RouteMetric(method=request.method, route=route)
+metric.status_code = response.status_code
+metric.content_type = response.headers.get("Content-Type")
+metric.end_time = time.time()
+
+notifier.routes.notify(metric)
+```
+
+## Sending route breakdowns
+
+`notifier.routes.breakdowns.notify` allows sending performance breakdown stats
+to Airbrake. You can use this API manually:
+
+```py
+from pybrake import RouteMetric
+
+metric = RouteMetric(
+ method=request.method,
+ route='/things/1',
+ status_code=200,
+ content_type=response.headers.get('Content-Type'))
+metric._groups = {'db': 12.34, 'view': 56.78}
+metric.end_time=time.time()
+
+notifier.routes.breakdowns.notify(metric)
+```
+
+## Sending query stats
+
+`notifier.queries.notify` allows sending SQL query stats to Airbrake. The
+library provides integration with Django (your queries are tracked
+automatically). You can also use this API manually:
+
+```py
+notifier.queries.notify(
+ query="SELECT * FROM foos",
+ method=request.method,
+ route=route,
+ function="test",
+ file="test",
+ line=10,
+ start_time=time.time(),
+ end_time=time.time(),
+)
+```
+
+## Sending queue stats
+
+`notifier.queues.notify` allows sending queue (job) stats to Airbrake. The
+library provides integration with Celery (your queues are tracked
+automatically). You can also use this API manually:
+
+```py
+from pybrake import QueueMetric
+
+metric = QueueMetric(queue="foo_queue")
+metric._groups = {'redis': 24.0, 'sql': 0.4}
+notifier.queues.notify(metric)
+```
+
+## Framework Integration
+
+Pybrake provides a ready-to-use solution with minimal configuration for python
+frameworks.
+
+* [AIOHTTP](https://docs.airbrake.io/docs/platforms/framework/python/aiohttp)
+* [BottlePy](https://docs.airbrake.io/docs/platforms/framework/python/bottle)
+* [Celery](https://docs.airbrake.io/docs/platforms/framework/python/celery)
+* [CherryPy](https://docs.airbrake.io/docs/platforms/framework/python/cherrypy)
+* [Django](https://docs.airbrake.io/docs/platforms/framework/python/django)
+* [FastAPI](https://docs.airbrake.io/docs/platforms/framework/python/fastapi)
+* [Falcon](https://docs.airbrake.io/docs/platforms/framework/python/falcon)
+* [Flask](https://docs.airbrake.io/docs/platforms/framework/python/flask)
+* [Hug](https://docs.airbrake.io/docs/platforms/framework/python/hug)
+* [Masonite](https://docs.airbrake.io/docs/platforms/framework/python/masonite)
+* [Pycnic](https://docs.airbrake.io/docs/platforms/framework/python/pycnic)
+* [Pyramid](https://docs.airbrake.io/docs/platforms/framework/python/pyramid)
+* [Sanic](https://docs.airbrake.io/docs/platforms/framework/python/sanic)
+* [Starlette](https://docs.airbrake.io//docs/platforms/framework/python/starlette)
+* [Tornado](https://docs.airbrake.io//docs/platforms/framework/python/tornado)
+* [Turbogears2](https://docs.airbrake.io//docs/platforms/framework/python/turbogears2)
+
+## Development
+
+### Running the tests
+
+```shell
+pip install -r requirements.txt
+pip install -r test-requirements.txt
+pytest
+```
+
+### Uploading to PyPI
+
+```shell
+python setup.py sdist upload
+```
+
+### Remote configuration
+
+Every 10 minutes the notifier issues an HTTP GET request to fetch remote
+configuration. This might be undesirable while running tests. To suppress this
+HTTP call, you need to pass `remote_config=False` to the notifier.
+
+[project-idkey]: https://s3.amazonaws.com/airbrake-github-assets/pybrake/project-id-key.png
+
+
+
+
+%prep
+%autosetup -n pybrake-1.10.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-pybrake -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.10.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..f2c4ef5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e22633c44f7c0e7fceabcc0d9f1005a4 pybrake-1.10.1.tar.gz