diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-airbrake.spec | 448 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 450 insertions, 0 deletions
@@ -0,0 +1 @@ +/airbrake-2.2.0.tar.gz diff --git a/python-airbrake.spec b/python-airbrake.spec new file mode 100644 index 0000000..027a255 --- /dev/null +++ b/python-airbrake.spec @@ -0,0 +1,448 @@ +%global _empty_manifest_terminate_build 0 +Name: python-airbrake +Version: 2.2.0 +Release: 1 +Summary: Python SDK for airbrake.io +License: Apache License, Version 2.0 +URL: https://github.com/airbrake/airbrake-python +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/12/87/cb78d505ec9991089fe65c6ea600688669ec4aeabbb9e267f7c6af778c75/airbrake-2.2.0.tar.gz +BuildArch: noarch + +Requires: python3-requests + +%description +*Note*. Python 3.4+ are advised to use new [Airbrake Python notifier](https://github.com/airbrake/pybrake) which supports async API and code hunks. Python 2.7 users should continue to use this notifier. +[Airbrake](https://airbrake.io/) integration for python that quickly and easily plugs into your existing code. +```python +import airbrake +logger = airbrake.getLogger() +try: + 1/0 +except Exception: + logger.exception("Bad math.") +``` +airbrake-python is used most effectively through its [logging](http://docs.python.org/2/library/logging.html) handler, and uses the [Airbrake V3 API](https://airbrake.io/docs/api/) for error reporting. +### install +To install airbrake-python, run: +```bash +$ pip install -U airbrake +``` +### setup +The easiest way to get set up is with a few environment variables: +```bash +export AIRBRAKE_API_KEY=***** +export AIRBRAKE_PROJECT_ID=12345 +export AIRBRAKE_ENVIRONMENT=dev +``` +and you're done! +Otherwise, you can instantiate your `AirbrakeHandler` by passing these values as arguments to the `getLogger()` helper: +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345) +try: + 1/0 +except Exception: + logger.exception("Bad math.") +``` +By default, airbrake will catch and send uncaught exceptions. To avoid this behvaiour, use the send_uncaught_exc option: +`logger = airbrake.getLogger(api_key=*****, project_id=12345, send_uncaught_exc=False)` +### setup for Airbrake On-Premise and other compatible back-ends (e.g. Errbit) +Airbrake [Enterprise](https://airbrake.io/enterprise) and self-hosted alternatives, such as [Errbit](https://github.com/errbit/errbit), provide a compatible API. +You can configure a different endpoint than the default (`https://api.airbrake.io`) by either: + * Setting an environment variable: +```bash +export AIRBRAKE_HOST=https://self-hosted.errbit.example.com/ +``` + * Or passing a `host` argument to the `getLogger()` helper: +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345, host="https://self-hosted.errbit.example.com/") +``` +#### adding the AirbrakeHandler to your existing logger +```python +import logging +import airbrake +yourlogger = logging.getLogger(__name__) +yourlogger.addHandler(airbrake.AirbrakeHandler()) +``` +_by default, the `AirbrakeHandler` only handles logs level ERROR (40) and above_ +#### Additional Options +More options are available to configure this library. +For example, you can set the environment to add more context to your errors. +One way is by setting the AIRBRAKE_ENVIRONMENT env var. +``` +export AIRBRAKE_ENVIRONMENT=staging +``` +Or you can set it more explicitly when you instantiate the logger. +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345, environment='production') +``` +The available options are: +- environment, defaults to env var `AIRBRAKE_ENVIRONMENT` +- host, defaults to env var `AIRBRAKE_HOST` or https://api.airbrake.io +- root_directory, defaults to None +- timeout, defaults to 5. (Number of seconds before each request times out) +- send_uncaught_exc, defaults to True (Whether or not to send uncaught exceptions) +#### giving your exceptions more context +```python +import airbrake +logger = airbrake.getLogger() +def bake(**goods): + try: + temp = goods['temperature'] + except KeyError as exc: + logger.error("No temperature defined!", extra=goods) +``` +#### Setting severity +[Severity][what-is-severity] allows categorizing how severe an error is. By +default, it's set to `error`. To redefine severity, simply `build_notice` with +the needed severity value. For example: +```python +notice = airbrake.build_notice(exception, severity="critical") +airbrake.notify(notice) +``` +### Using this library without a logger +You can create an instance of the notifier directly, and send +errors inside exception blocks. +```python +from airbrake.notifier import Airbrake +ab = Airbrake(project_id=1234, api_key='fake') +try: + amazing_code() +except ValueError as e: + ab.notify(e) +except: + # capture all other errors + ab.capture() +``` +#### Running Tests Manually +Create your environment and install the test requirements +``` +virtualenv venv +source venv/bin/activate +pip install . +python setup.py test +``` +To run via nose (unit/integration tests): +``` +source venv/bin/activate +pip install -r ./test-requirements.txt +source venv/bin/activate +nosetests +``` +Run all tests, including multi-env syntax, and coverage tests. +``` +pip install tox +tox -v --recreate +``` +It's suggested to make sure tox will pass, as CI runs this. + +%package -n python3-airbrake +Summary: Python SDK for airbrake.io +Provides: python-airbrake +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-airbrake +*Note*. Python 3.4+ are advised to use new [Airbrake Python notifier](https://github.com/airbrake/pybrake) which supports async API and code hunks. Python 2.7 users should continue to use this notifier. +[Airbrake](https://airbrake.io/) integration for python that quickly and easily plugs into your existing code. +```python +import airbrake +logger = airbrake.getLogger() +try: + 1/0 +except Exception: + logger.exception("Bad math.") +``` +airbrake-python is used most effectively through its [logging](http://docs.python.org/2/library/logging.html) handler, and uses the [Airbrake V3 API](https://airbrake.io/docs/api/) for error reporting. +### install +To install airbrake-python, run: +```bash +$ pip install -U airbrake +``` +### setup +The easiest way to get set up is with a few environment variables: +```bash +export AIRBRAKE_API_KEY=***** +export AIRBRAKE_PROJECT_ID=12345 +export AIRBRAKE_ENVIRONMENT=dev +``` +and you're done! +Otherwise, you can instantiate your `AirbrakeHandler` by passing these values as arguments to the `getLogger()` helper: +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345) +try: + 1/0 +except Exception: + logger.exception("Bad math.") +``` +By default, airbrake will catch and send uncaught exceptions. To avoid this behvaiour, use the send_uncaught_exc option: +`logger = airbrake.getLogger(api_key=*****, project_id=12345, send_uncaught_exc=False)` +### setup for Airbrake On-Premise and other compatible back-ends (e.g. Errbit) +Airbrake [Enterprise](https://airbrake.io/enterprise) and self-hosted alternatives, such as [Errbit](https://github.com/errbit/errbit), provide a compatible API. +You can configure a different endpoint than the default (`https://api.airbrake.io`) by either: + * Setting an environment variable: +```bash +export AIRBRAKE_HOST=https://self-hosted.errbit.example.com/ +``` + * Or passing a `host` argument to the `getLogger()` helper: +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345, host="https://self-hosted.errbit.example.com/") +``` +#### adding the AirbrakeHandler to your existing logger +```python +import logging +import airbrake +yourlogger = logging.getLogger(__name__) +yourlogger.addHandler(airbrake.AirbrakeHandler()) +``` +_by default, the `AirbrakeHandler` only handles logs level ERROR (40) and above_ +#### Additional Options +More options are available to configure this library. +For example, you can set the environment to add more context to your errors. +One way is by setting the AIRBRAKE_ENVIRONMENT env var. +``` +export AIRBRAKE_ENVIRONMENT=staging +``` +Or you can set it more explicitly when you instantiate the logger. +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345, environment='production') +``` +The available options are: +- environment, defaults to env var `AIRBRAKE_ENVIRONMENT` +- host, defaults to env var `AIRBRAKE_HOST` or https://api.airbrake.io +- root_directory, defaults to None +- timeout, defaults to 5. (Number of seconds before each request times out) +- send_uncaught_exc, defaults to True (Whether or not to send uncaught exceptions) +#### giving your exceptions more context +```python +import airbrake +logger = airbrake.getLogger() +def bake(**goods): + try: + temp = goods['temperature'] + except KeyError as exc: + logger.error("No temperature defined!", extra=goods) +``` +#### Setting severity +[Severity][what-is-severity] allows categorizing how severe an error is. By +default, it's set to `error`. To redefine severity, simply `build_notice` with +the needed severity value. For example: +```python +notice = airbrake.build_notice(exception, severity="critical") +airbrake.notify(notice) +``` +### Using this library without a logger +You can create an instance of the notifier directly, and send +errors inside exception blocks. +```python +from airbrake.notifier import Airbrake +ab = Airbrake(project_id=1234, api_key='fake') +try: + amazing_code() +except ValueError as e: + ab.notify(e) +except: + # capture all other errors + ab.capture() +``` +#### Running Tests Manually +Create your environment and install the test requirements +``` +virtualenv venv +source venv/bin/activate +pip install . +python setup.py test +``` +To run via nose (unit/integration tests): +``` +source venv/bin/activate +pip install -r ./test-requirements.txt +source venv/bin/activate +nosetests +``` +Run all tests, including multi-env syntax, and coverage tests. +``` +pip install tox +tox -v --recreate +``` +It's suggested to make sure tox will pass, as CI runs this. + +%package help +Summary: Development documents and examples for airbrake +Provides: python3-airbrake-doc +%description help +*Note*. Python 3.4+ are advised to use new [Airbrake Python notifier](https://github.com/airbrake/pybrake) which supports async API and code hunks. Python 2.7 users should continue to use this notifier. +[Airbrake](https://airbrake.io/) integration for python that quickly and easily plugs into your existing code. +```python +import airbrake +logger = airbrake.getLogger() +try: + 1/0 +except Exception: + logger.exception("Bad math.") +``` +airbrake-python is used most effectively through its [logging](http://docs.python.org/2/library/logging.html) handler, and uses the [Airbrake V3 API](https://airbrake.io/docs/api/) for error reporting. +### install +To install airbrake-python, run: +```bash +$ pip install -U airbrake +``` +### setup +The easiest way to get set up is with a few environment variables: +```bash +export AIRBRAKE_API_KEY=***** +export AIRBRAKE_PROJECT_ID=12345 +export AIRBRAKE_ENVIRONMENT=dev +``` +and you're done! +Otherwise, you can instantiate your `AirbrakeHandler` by passing these values as arguments to the `getLogger()` helper: +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345) +try: + 1/0 +except Exception: + logger.exception("Bad math.") +``` +By default, airbrake will catch and send uncaught exceptions. To avoid this behvaiour, use the send_uncaught_exc option: +`logger = airbrake.getLogger(api_key=*****, project_id=12345, send_uncaught_exc=False)` +### setup for Airbrake On-Premise and other compatible back-ends (e.g. Errbit) +Airbrake [Enterprise](https://airbrake.io/enterprise) and self-hosted alternatives, such as [Errbit](https://github.com/errbit/errbit), provide a compatible API. +You can configure a different endpoint than the default (`https://api.airbrake.io`) by either: + * Setting an environment variable: +```bash +export AIRBRAKE_HOST=https://self-hosted.errbit.example.com/ +``` + * Or passing a `host` argument to the `getLogger()` helper: +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345, host="https://self-hosted.errbit.example.com/") +``` +#### adding the AirbrakeHandler to your existing logger +```python +import logging +import airbrake +yourlogger = logging.getLogger(__name__) +yourlogger.addHandler(airbrake.AirbrakeHandler()) +``` +_by default, the `AirbrakeHandler` only handles logs level ERROR (40) and above_ +#### Additional Options +More options are available to configure this library. +For example, you can set the environment to add more context to your errors. +One way is by setting the AIRBRAKE_ENVIRONMENT env var. +``` +export AIRBRAKE_ENVIRONMENT=staging +``` +Or you can set it more explicitly when you instantiate the logger. +```python +import airbrake +logger = airbrake.getLogger(api_key=*****, project_id=12345, environment='production') +``` +The available options are: +- environment, defaults to env var `AIRBRAKE_ENVIRONMENT` +- host, defaults to env var `AIRBRAKE_HOST` or https://api.airbrake.io +- root_directory, defaults to None +- timeout, defaults to 5. (Number of seconds before each request times out) +- send_uncaught_exc, defaults to True (Whether or not to send uncaught exceptions) +#### giving your exceptions more context +```python +import airbrake +logger = airbrake.getLogger() +def bake(**goods): + try: + temp = goods['temperature'] + except KeyError as exc: + logger.error("No temperature defined!", extra=goods) +``` +#### Setting severity +[Severity][what-is-severity] allows categorizing how severe an error is. By +default, it's set to `error`. To redefine severity, simply `build_notice` with +the needed severity value. For example: +```python +notice = airbrake.build_notice(exception, severity="critical") +airbrake.notify(notice) +``` +### Using this library without a logger +You can create an instance of the notifier directly, and send +errors inside exception blocks. +```python +from airbrake.notifier import Airbrake +ab = Airbrake(project_id=1234, api_key='fake') +try: + amazing_code() +except ValueError as e: + ab.notify(e) +except: + # capture all other errors + ab.capture() +``` +#### Running Tests Manually +Create your environment and install the test requirements +``` +virtualenv venv +source venv/bin/activate +pip install . +python setup.py test +``` +To run via nose (unit/integration tests): +``` +source venv/bin/activate +pip install -r ./test-requirements.txt +source venv/bin/activate +nosetests +``` +Run all tests, including multi-env syntax, and coverage tests. +``` +pip install tox +tox -v --recreate +``` +It's suggested to make sure tox will pass, as CI runs this. + +%prep +%autosetup -n airbrake-2.2.0 + +%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-airbrake -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2.2.0-1 +- Package Spec generated @@ -0,0 +1 @@ +c5770d9fad150523e3f6c6b28833a625 airbrake-2.2.0.tar.gz |