summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pylint-exit.spec594
-rw-r--r--sources1
3 files changed, 596 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..5ad3eab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pylint-exit-1.2.0.zip
diff --git a/python-pylint-exit.spec b/python-pylint-exit.spec
new file mode 100644
index 0000000..b1e3342
--- /dev/null
+++ b/python-pylint-exit.spec
@@ -0,0 +1,594 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pylint-exit
+Version: 1.2.0
+Release: 1
+Summary: Exit code handler for pylint command line utility.
+License: MIT License
+URL: https://github.com/jongracecox/pylint-exit
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/26/fb/4365157ab89cd442cca4714595466394d5ee328709ca1804a5c85be7ae32/pylint-exit-1.2.0.zip
+BuildArch: noarch
+
+
+%description
+# pylint-exit
+
+[![pypi package](https://badge.fury.io/py/pylint-exit.svg)](https://pypi.org/project/pylint-exit)
+[![build status](https://api.travis-ci.org/jongracecox/pylint-exit.svg?branch=master)](https://travis-ci.org/jongracecox/pylint-exit)
+[![downloads](https://img.shields.io/pypi/dm/pylint-exit.svg)](https://pypistats.org/packages/pylint-exit)
+[![GitHub last commit](https://img.shields.io/github/last-commit/jongracecox/pylint-exit.svg)](https://github.com/jongracecox/pylint-exit/commits/master)
+[![GitHub](https://img.shields.io/github/license/jongracecox/pylint-exit.svg)](https://github.com/jongracecox/pylint-exit/blob/master/LICENSE)
+[![GitHub stars](https://img.shields.io/github/stars/jongracecox/pylint-exit.svg?style=social)](https://github.com/jongracecox/pylint-exit/stargazers)
+
+Utility to handle pylint exit codes on Linux in a scripting-friendly way.
+
+Pylint uses bit-encoded exit codes to convey the results of the pylint review,
+which means it will return with a non-zero return code even when the
+pylint scoring was successful.
+
+This can make it difficult to script the execution of pylint while at the same time
+detecting genuine errors.
+
+`pylint-exit` is a small command-line utility that can be used to re-process
+the pylint return code and translate it into a scripting-friendly return code.
+
+`pylint-exit` will decode the bit-encoded return code, identify whether there were
+any fatal messages issued (which might constitute a failure in the execution of
+pylint), or a usage error, and return a `0` or `1` return code that is more easily
+used in shell scripts.
+
+# Installation
+
+The simplest way to install is via `pip`.
+
+```bash
+pip install pylint-exit
+```
+
+This will install the package, and will provide the `pylint-exit` command line utility.
+
+You can also manually install by downloading `pylint_exit.py`, and make it executable.
+
+```bash
+curl -o pylint-exit https://raw.githubusercontent.com/jongracecox/pylint-exit/master/pylint_exit.py && chmod +x pylint_exit.py
+```
+
+You should also consider creating a symbolic link so that the calls in the remainder of this
+README work as described. Update `<path-to>` with where you downloaded the script.
+
+```bash
+ln -s <path-to>/pylint_exit.py /usr/local/bin/pylint-exit
+```
+
+*Note: If you perform a `--user` install with `pip` then you will need to ensure `~/.local/bin` appears in your `PATH`
+environment variable, otherwise the command line `pylint-exit` will not work.*
+
+# Usage
+Add `|| pylint-exit $?` to the end of your existing Pylint command. You can then
+use the updated `$?` return code in your shell script.
+
+```bash
+pylint mymodule.py || pylint-exit $?
+if [ $? -ne 0 ]; then
+ echo "An error occurred while running pylint." >&2
+ exit 1
+fi
+```
+
+Note: Many CI tools will check the return code of each command, so it may be enough to
+simply add `|| pylint-exit $?`, and leave the return code check to the CI executor.
+
+You can also use the python code directly if needed:
+
+```bash
+pylint mymodule.py || python pylint_exit.py $?
+```
+
+# Return codes
+Pylint can return combinations of the following codes. `pylint-exit` will identify each
+issued message, and return the maximum final return code.
+
+| Pylint code | Message | Final return code |
+| ----------- | ------- | ----------------- |
+| 1 | Fatal message issued | 1 |
+| 2 | Error message issued | 0 |
+| 4 | Warning message issued | 0 |
+| 8 | Refactor message issued | 0 |
+| 16 | Convention message issued | 0 |
+| 32 | Usage error | 1 |
+
+This list is stored in `exit_codes_list`, which can be customised if needed.
+
+You can control what is considered a failure using the following command line arguments.
+By default these types of messages don't cause a non-zero return code. Adding
+any of these arguments will trigger a non-zero return code when those types of
+message are raised.
+
+| Name | Meaning |
+| ---- | ------- |
+| `-efail`, `--error-fail` | Fail on issued error messages. |
+| `-wfail`, `--warn-fail` | Fail on issued warning messages. |
+| `-rfail`, `--refactor-fail` | Fail on issued refactor messages. |
+| `-cfail`, `--convention-fail` | Fail on issued convension messages. |
+
+# Examples
+
+## Exiting gracefully on non-severe messages
+In this example pylint issues refactor and convention messages, and exits with a
+return code of 24. `pylint-exit` decodes this, displays the messages, and exits
+with a return code of 0.
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=text mymodule.py || pylint-exit $?
+The following messages were raised:
+
+ - refactor message issued
+ - convention message issued
+
+No fatal messages detected. Exiting gracefully...
+> echo $?
+0
+```
+
+## Exiting with an error on severe messages
+In this example pylint returns with a usage error due to the bad output format, and
+exits with a return code of 32. `pylint-exit` detects this, displays the message, and
+returns with an exit code of 1.
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=badformat mymodule.py || pylint-exit $?
+The following messages were raised:
+
+ - usage error
+
+Fatal messages detected. Failing...
+> echo $?
+1
+```
+
+## Treating errors and warnings as severe
+In this example we will use the `--error-fail` and `--warn-fail` command line arguments
+to cause pylint-exit to treat errors and warnings as serious enough to return a non-zero
+return code.
+
+In the example scenario pylint issues error and warning messages, and exits with a
+return code of 6. `pylint-exit` decodes this, displays the messages, and exits
+with a return code of 1 because the error and warning messages are now considered as
+fatal.
+
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=badformat mymodule.py || pylint-exit --error-fail --warn-fail $?
+The following messages were raised:
+
+ - error message issued
+ - warning message issued
+
+Fatal messages detected. Failing...
+> echo $?
+1
+
+```
+
+# Testing
+
+You can test how pylint-exit will react to various return codes using the following command:
+
+```bash
+(exit 6) || pylint-exit $?
+```
+
+or if you are using the python code directly:
+
+```bash
+(exit 6) || python pylint_exit.py $?
+```
+
+
+
+
+%package -n python3-pylint-exit
+Summary: Exit code handler for pylint command line utility.
+Provides: python-pylint-exit
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pylint-exit
+# pylint-exit
+
+[![pypi package](https://badge.fury.io/py/pylint-exit.svg)](https://pypi.org/project/pylint-exit)
+[![build status](https://api.travis-ci.org/jongracecox/pylint-exit.svg?branch=master)](https://travis-ci.org/jongracecox/pylint-exit)
+[![downloads](https://img.shields.io/pypi/dm/pylint-exit.svg)](https://pypistats.org/packages/pylint-exit)
+[![GitHub last commit](https://img.shields.io/github/last-commit/jongracecox/pylint-exit.svg)](https://github.com/jongracecox/pylint-exit/commits/master)
+[![GitHub](https://img.shields.io/github/license/jongracecox/pylint-exit.svg)](https://github.com/jongracecox/pylint-exit/blob/master/LICENSE)
+[![GitHub stars](https://img.shields.io/github/stars/jongracecox/pylint-exit.svg?style=social)](https://github.com/jongracecox/pylint-exit/stargazers)
+
+Utility to handle pylint exit codes on Linux in a scripting-friendly way.
+
+Pylint uses bit-encoded exit codes to convey the results of the pylint review,
+which means it will return with a non-zero return code even when the
+pylint scoring was successful.
+
+This can make it difficult to script the execution of pylint while at the same time
+detecting genuine errors.
+
+`pylint-exit` is a small command-line utility that can be used to re-process
+the pylint return code and translate it into a scripting-friendly return code.
+
+`pylint-exit` will decode the bit-encoded return code, identify whether there were
+any fatal messages issued (which might constitute a failure in the execution of
+pylint), or a usage error, and return a `0` or `1` return code that is more easily
+used in shell scripts.
+
+# Installation
+
+The simplest way to install is via `pip`.
+
+```bash
+pip install pylint-exit
+```
+
+This will install the package, and will provide the `pylint-exit` command line utility.
+
+You can also manually install by downloading `pylint_exit.py`, and make it executable.
+
+```bash
+curl -o pylint-exit https://raw.githubusercontent.com/jongracecox/pylint-exit/master/pylint_exit.py && chmod +x pylint_exit.py
+```
+
+You should also consider creating a symbolic link so that the calls in the remainder of this
+README work as described. Update `<path-to>` with where you downloaded the script.
+
+```bash
+ln -s <path-to>/pylint_exit.py /usr/local/bin/pylint-exit
+```
+
+*Note: If you perform a `--user` install with `pip` then you will need to ensure `~/.local/bin` appears in your `PATH`
+environment variable, otherwise the command line `pylint-exit` will not work.*
+
+# Usage
+Add `|| pylint-exit $?` to the end of your existing Pylint command. You can then
+use the updated `$?` return code in your shell script.
+
+```bash
+pylint mymodule.py || pylint-exit $?
+if [ $? -ne 0 ]; then
+ echo "An error occurred while running pylint." >&2
+ exit 1
+fi
+```
+
+Note: Many CI tools will check the return code of each command, so it may be enough to
+simply add `|| pylint-exit $?`, and leave the return code check to the CI executor.
+
+You can also use the python code directly if needed:
+
+```bash
+pylint mymodule.py || python pylint_exit.py $?
+```
+
+# Return codes
+Pylint can return combinations of the following codes. `pylint-exit` will identify each
+issued message, and return the maximum final return code.
+
+| Pylint code | Message | Final return code |
+| ----------- | ------- | ----------------- |
+| 1 | Fatal message issued | 1 |
+| 2 | Error message issued | 0 |
+| 4 | Warning message issued | 0 |
+| 8 | Refactor message issued | 0 |
+| 16 | Convention message issued | 0 |
+| 32 | Usage error | 1 |
+
+This list is stored in `exit_codes_list`, which can be customised if needed.
+
+You can control what is considered a failure using the following command line arguments.
+By default these types of messages don't cause a non-zero return code. Adding
+any of these arguments will trigger a non-zero return code when those types of
+message are raised.
+
+| Name | Meaning |
+| ---- | ------- |
+| `-efail`, `--error-fail` | Fail on issued error messages. |
+| `-wfail`, `--warn-fail` | Fail on issued warning messages. |
+| `-rfail`, `--refactor-fail` | Fail on issued refactor messages. |
+| `-cfail`, `--convention-fail` | Fail on issued convension messages. |
+
+# Examples
+
+## Exiting gracefully on non-severe messages
+In this example pylint issues refactor and convention messages, and exits with a
+return code of 24. `pylint-exit` decodes this, displays the messages, and exits
+with a return code of 0.
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=text mymodule.py || pylint-exit $?
+The following messages were raised:
+
+ - refactor message issued
+ - convention message issued
+
+No fatal messages detected. Exiting gracefully...
+> echo $?
+0
+```
+
+## Exiting with an error on severe messages
+In this example pylint returns with a usage error due to the bad output format, and
+exits with a return code of 32. `pylint-exit` detects this, displays the message, and
+returns with an exit code of 1.
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=badformat mymodule.py || pylint-exit $?
+The following messages were raised:
+
+ - usage error
+
+Fatal messages detected. Failing...
+> echo $?
+1
+```
+
+## Treating errors and warnings as severe
+In this example we will use the `--error-fail` and `--warn-fail` command line arguments
+to cause pylint-exit to treat errors and warnings as serious enough to return a non-zero
+return code.
+
+In the example scenario pylint issues error and warning messages, and exits with a
+return code of 6. `pylint-exit` decodes this, displays the messages, and exits
+with a return code of 1 because the error and warning messages are now considered as
+fatal.
+
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=badformat mymodule.py || pylint-exit --error-fail --warn-fail $?
+The following messages were raised:
+
+ - error message issued
+ - warning message issued
+
+Fatal messages detected. Failing...
+> echo $?
+1
+
+```
+
+# Testing
+
+You can test how pylint-exit will react to various return codes using the following command:
+
+```bash
+(exit 6) || pylint-exit $?
+```
+
+or if you are using the python code directly:
+
+```bash
+(exit 6) || python pylint_exit.py $?
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for pylint-exit
+Provides: python3-pylint-exit-doc
+%description help
+# pylint-exit
+
+[![pypi package](https://badge.fury.io/py/pylint-exit.svg)](https://pypi.org/project/pylint-exit)
+[![build status](https://api.travis-ci.org/jongracecox/pylint-exit.svg?branch=master)](https://travis-ci.org/jongracecox/pylint-exit)
+[![downloads](https://img.shields.io/pypi/dm/pylint-exit.svg)](https://pypistats.org/packages/pylint-exit)
+[![GitHub last commit](https://img.shields.io/github/last-commit/jongracecox/pylint-exit.svg)](https://github.com/jongracecox/pylint-exit/commits/master)
+[![GitHub](https://img.shields.io/github/license/jongracecox/pylint-exit.svg)](https://github.com/jongracecox/pylint-exit/blob/master/LICENSE)
+[![GitHub stars](https://img.shields.io/github/stars/jongracecox/pylint-exit.svg?style=social)](https://github.com/jongracecox/pylint-exit/stargazers)
+
+Utility to handle pylint exit codes on Linux in a scripting-friendly way.
+
+Pylint uses bit-encoded exit codes to convey the results of the pylint review,
+which means it will return with a non-zero return code even when the
+pylint scoring was successful.
+
+This can make it difficult to script the execution of pylint while at the same time
+detecting genuine errors.
+
+`pylint-exit` is a small command-line utility that can be used to re-process
+the pylint return code and translate it into a scripting-friendly return code.
+
+`pylint-exit` will decode the bit-encoded return code, identify whether there were
+any fatal messages issued (which might constitute a failure in the execution of
+pylint), or a usage error, and return a `0` or `1` return code that is more easily
+used in shell scripts.
+
+# Installation
+
+The simplest way to install is via `pip`.
+
+```bash
+pip install pylint-exit
+```
+
+This will install the package, and will provide the `pylint-exit` command line utility.
+
+You can also manually install by downloading `pylint_exit.py`, and make it executable.
+
+```bash
+curl -o pylint-exit https://raw.githubusercontent.com/jongracecox/pylint-exit/master/pylint_exit.py && chmod +x pylint_exit.py
+```
+
+You should also consider creating a symbolic link so that the calls in the remainder of this
+README work as described. Update `<path-to>` with where you downloaded the script.
+
+```bash
+ln -s <path-to>/pylint_exit.py /usr/local/bin/pylint-exit
+```
+
+*Note: If you perform a `--user` install with `pip` then you will need to ensure `~/.local/bin` appears in your `PATH`
+environment variable, otherwise the command line `pylint-exit` will not work.*
+
+# Usage
+Add `|| pylint-exit $?` to the end of your existing Pylint command. You can then
+use the updated `$?` return code in your shell script.
+
+```bash
+pylint mymodule.py || pylint-exit $?
+if [ $? -ne 0 ]; then
+ echo "An error occurred while running pylint." >&2
+ exit 1
+fi
+```
+
+Note: Many CI tools will check the return code of each command, so it may be enough to
+simply add `|| pylint-exit $?`, and leave the return code check to the CI executor.
+
+You can also use the python code directly if needed:
+
+```bash
+pylint mymodule.py || python pylint_exit.py $?
+```
+
+# Return codes
+Pylint can return combinations of the following codes. `pylint-exit` will identify each
+issued message, and return the maximum final return code.
+
+| Pylint code | Message | Final return code |
+| ----------- | ------- | ----------------- |
+| 1 | Fatal message issued | 1 |
+| 2 | Error message issued | 0 |
+| 4 | Warning message issued | 0 |
+| 8 | Refactor message issued | 0 |
+| 16 | Convention message issued | 0 |
+| 32 | Usage error | 1 |
+
+This list is stored in `exit_codes_list`, which can be customised if needed.
+
+You can control what is considered a failure using the following command line arguments.
+By default these types of messages don't cause a non-zero return code. Adding
+any of these arguments will trigger a non-zero return code when those types of
+message are raised.
+
+| Name | Meaning |
+| ---- | ------- |
+| `-efail`, `--error-fail` | Fail on issued error messages. |
+| `-wfail`, `--warn-fail` | Fail on issued warning messages. |
+| `-rfail`, `--refactor-fail` | Fail on issued refactor messages. |
+| `-cfail`, `--convention-fail` | Fail on issued convension messages. |
+
+# Examples
+
+## Exiting gracefully on non-severe messages
+In this example pylint issues refactor and convention messages, and exits with a
+return code of 24. `pylint-exit` decodes this, displays the messages, and exits
+with a return code of 0.
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=text mymodule.py || pylint-exit $?
+The following messages were raised:
+
+ - refactor message issued
+ - convention message issued
+
+No fatal messages detected. Exiting gracefully...
+> echo $?
+0
+```
+
+## Exiting with an error on severe messages
+In this example pylint returns with a usage error due to the bad output format, and
+exits with a return code of 32. `pylint-exit` detects this, displays the message, and
+returns with an exit code of 1.
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=badformat mymodule.py || pylint-exit $?
+The following messages were raised:
+
+ - usage error
+
+Fatal messages detected. Failing...
+> echo $?
+1
+```
+
+## Treating errors and warnings as severe
+In this example we will use the `--error-fail` and `--warn-fail` command line arguments
+to cause pylint-exit to treat errors and warnings as serious enough to return a non-zero
+return code.
+
+In the example scenario pylint issues error and warning messages, and exits with a
+return code of 6. `pylint-exit` decodes this, displays the messages, and exits
+with a return code of 1 because the error and warning messages are now considered as
+fatal.
+
+
+```bash
+> pylint --rcfile=.pylintrc --output-format=badformat mymodule.py || pylint-exit --error-fail --warn-fail $?
+The following messages were raised:
+
+ - error message issued
+ - warning message issued
+
+Fatal messages detected. Failing...
+> echo $?
+1
+
+```
+
+# Testing
+
+You can test how pylint-exit will react to various return codes using the following command:
+
+```bash
+(exit 6) || pylint-exit $?
+```
+
+or if you are using the python code directly:
+
+```bash
+(exit 6) || python pylint_exit.py $?
+```
+
+
+
+
+%prep
+%autosetup -n pylint-exit-1.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-pylint-exit -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..f8c561a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+3f60dde538f28282024ba1a52a668cb2 pylint-exit-1.2.0.zip