diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:27:11 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-29 11:27:11 +0000 |
| commit | ba3d39bcb65d631bd0fdfc28224e661cafe5b08a (patch) | |
| tree | 1ed142a3dbf3056959e7574fec2cedf333ddcce1 | |
| parent | f93c3707ac8a5c7be61664a787d2ac8457cc9ba4 (diff) | |
automatic import of python-pymultilint
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pymultilint.spec | 467 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 469 insertions, 0 deletions
@@ -0,0 +1 @@ +/pymultilint-1.0.4.tar.gz diff --git a/python-pymultilint.spec b/python-pymultilint.spec new file mode 100644 index 0000000..664d967 --- /dev/null +++ b/python-pymultilint.spec @@ -0,0 +1,467 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pymultilint +Version: 1.0.4 +Release: 1 +Summary: Utility tying multiple code quality tools together +License: MIT +URL: https://github.com/gkze/multilint +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/47/ec/85f5811262ac640e3cc45053bf1b062b521821b0c6eeebe1956a05d73f44/pymultilint-1.0.4.tar.gz +BuildArch: noarch + +Requires: python3-autoflake +Requires: python3-black +Requires: python3-isort +Requires: python3-mypy +Requires: python3-pydocstyle +Requires: python3-pylint +Requires: python3-pyupgrade +Requires: python3-toml + +%description +# Multilint (for Python) + +[](https://github.com/gkze/multilint/actions?query=workflow%3ACI) +[](https://pypi.org/project/pymultilint/) +[](https://gkze.github.io/multilint/multilint.html) + +A utility tying together multiple linting and other code quality tools + +## Intro + +Multilint allows running several code quality tools under the same interface. +This is convenient as it saves time on writing multiple linter / formatter / +checker invocations every time in a project. + +## Installation + +Since there is an existing project called +[`multilint`](https://pypi.org/project/multilint/), this Multilint can be +installed as `pymultilint`: + +```bash +$ pip3 install pymultilint +``` + +## Usage + +Multilint exposes a CLI entry point: + +```bash +$ multilint [paths ...] +``` + +It can optionally take a set of starting paths. There are no CLI options, +as Multilint strives to have all of its configuration codified (see +[Configurability](#configurability)). + +Alternatively, Multilint is also usable via its API - either the +[`main`](multilint.py#L570) method, or the +[`Multilint`](multilint.py#L488) class. + +## Supported Tools + +Currently, Multilint integrates the following code quality tools: + +* [Autoflake](https://github.com/myint/autoflake) - removes unused imports and + unused variables as identified by [Pyflakes](https://github.com/PyCQA/pyflakes) +* [Isort](https://pycqa.github.io/isort/) - sorts imports according to specified + orders +* [Black](https://black.readthedocs.io/en/stable/) - the self-proclaimed + "uncompromising code formatter" - formats Python source with an opinionated + style +* [Mypy](http://mypy-lang.org) - static type checker for Python +* [Pylint](https://www.pylint.org) - general best practices linter +* [Pydocstyle](http://www.pydocstyle.org/en/stable/) - in-source documentation + best practices linter +* [Pyupgrade](https://github.com/asottile/pyupgrade) - upgrades Python syntax to + the latest for the specified version + +## Configurability + +Additionally, for tools that do not currently support configuration via +`pyproject.toml`([PEP-621](https://www.python.org/dev/peps/pep-0621/)), +Multilint exposes a configuration interface for them. This allows for +centralized codification of configuration of all code quality tools being used +in a project. + +Example relevant sections from a `pyproject.toml`: + +```toml +[tool.autoflake] +recursive = true +in_place = true +ignore_init_module_imports = true +remove_all_unused_imports = true +remove_unused_variables = true +verbose = true +srcs_paths = ["somepackage"] + +[tool.mypy] +src_paths = ["someotherpackage"] + +[tool.multilint] +tool_order = [ + "autoflake", + "isort", + "pyupgrade", + "black", + "mypy", + "pylint", + "pydocstyle" +] +src_paths = ["."] +``` + +At the time of writing of this README (2020-01-31), neither +[Autoflake](https://github.com/myint/autoflake/issues/59) nor +[Mypy](https://github.com/python/mypy/issues/5205https://github.com/python/mypy/issues/5205) +support configuration via `pyproject.toml`. While support for each may or may +not be added at some point in the future, with multilint configuring these tools +is possible **today**. + +Currently, the only two supported configuration option for Multilint are: + +* `tool_order`, which defines the execution order of supported tools, and +* `src_paths`, which specifies the source paths (can be files and directories) + for Multilint to operate on. + +Each integrated tool additionally supports `src_dirs` as an override, in case +it is desired to target a specific tool at a different set of files +/ directories. + +## Extending Multilint + +Support for more tools may be added by subclassing the +[`ToolRunner`](multilint.py#L128) class and overriding the +[`.run(...)`](multilint.py#L160) method. + +There are some utilities provided, such as: + +* A logger that masquerades as a TextIO object to allow capturing tool output + from within and wrapping it with preferred logging +* A dictionary for tool configuration that is automatically available in the + `ToolRunner` class, as long as the tool is registered in + * The [`Tool`](multilint.py#L48) enum, + * The [`TOOL_RUNNERS`](multilint.py#L480) mapping, and declared + * The [`DEFAULT_TOOL_ORDER`](multilint.py#L500) class variable of `Multilint`. + +Documentation about adding support for more tools to Multilint may be added in +the future. + + +%package -n python3-pymultilint +Summary: Utility tying multiple code quality tools together +Provides: python-pymultilint +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pymultilint +# Multilint (for Python) + +[](https://github.com/gkze/multilint/actions?query=workflow%3ACI) +[](https://pypi.org/project/pymultilint/) +[](https://gkze.github.io/multilint/multilint.html) + +A utility tying together multiple linting and other code quality tools + +## Intro + +Multilint allows running several code quality tools under the same interface. +This is convenient as it saves time on writing multiple linter / formatter / +checker invocations every time in a project. + +## Installation + +Since there is an existing project called +[`multilint`](https://pypi.org/project/multilint/), this Multilint can be +installed as `pymultilint`: + +```bash +$ pip3 install pymultilint +``` + +## Usage + +Multilint exposes a CLI entry point: + +```bash +$ multilint [paths ...] +``` + +It can optionally take a set of starting paths. There are no CLI options, +as Multilint strives to have all of its configuration codified (see +[Configurability](#configurability)). + +Alternatively, Multilint is also usable via its API - either the +[`main`](multilint.py#L570) method, or the +[`Multilint`](multilint.py#L488) class. + +## Supported Tools + +Currently, Multilint integrates the following code quality tools: + +* [Autoflake](https://github.com/myint/autoflake) - removes unused imports and + unused variables as identified by [Pyflakes](https://github.com/PyCQA/pyflakes) +* [Isort](https://pycqa.github.io/isort/) - sorts imports according to specified + orders +* [Black](https://black.readthedocs.io/en/stable/) - the self-proclaimed + "uncompromising code formatter" - formats Python source with an opinionated + style +* [Mypy](http://mypy-lang.org) - static type checker for Python +* [Pylint](https://www.pylint.org) - general best practices linter +* [Pydocstyle](http://www.pydocstyle.org/en/stable/) - in-source documentation + best practices linter +* [Pyupgrade](https://github.com/asottile/pyupgrade) - upgrades Python syntax to + the latest for the specified version + +## Configurability + +Additionally, for tools that do not currently support configuration via +`pyproject.toml`([PEP-621](https://www.python.org/dev/peps/pep-0621/)), +Multilint exposes a configuration interface for them. This allows for +centralized codification of configuration of all code quality tools being used +in a project. + +Example relevant sections from a `pyproject.toml`: + +```toml +[tool.autoflake] +recursive = true +in_place = true +ignore_init_module_imports = true +remove_all_unused_imports = true +remove_unused_variables = true +verbose = true +srcs_paths = ["somepackage"] + +[tool.mypy] +src_paths = ["someotherpackage"] + +[tool.multilint] +tool_order = [ + "autoflake", + "isort", + "pyupgrade", + "black", + "mypy", + "pylint", + "pydocstyle" +] +src_paths = ["."] +``` + +At the time of writing of this README (2020-01-31), neither +[Autoflake](https://github.com/myint/autoflake/issues/59) nor +[Mypy](https://github.com/python/mypy/issues/5205https://github.com/python/mypy/issues/5205) +support configuration via `pyproject.toml`. While support for each may or may +not be added at some point in the future, with multilint configuring these tools +is possible **today**. + +Currently, the only two supported configuration option for Multilint are: + +* `tool_order`, which defines the execution order of supported tools, and +* `src_paths`, which specifies the source paths (can be files and directories) + for Multilint to operate on. + +Each integrated tool additionally supports `src_dirs` as an override, in case +it is desired to target a specific tool at a different set of files +/ directories. + +## Extending Multilint + +Support for more tools may be added by subclassing the +[`ToolRunner`](multilint.py#L128) class and overriding the +[`.run(...)`](multilint.py#L160) method. + +There are some utilities provided, such as: + +* A logger that masquerades as a TextIO object to allow capturing tool output + from within and wrapping it with preferred logging +* A dictionary for tool configuration that is automatically available in the + `ToolRunner` class, as long as the tool is registered in + * The [`Tool`](multilint.py#L48) enum, + * The [`TOOL_RUNNERS`](multilint.py#L480) mapping, and declared + * The [`DEFAULT_TOOL_ORDER`](multilint.py#L500) class variable of `Multilint`. + +Documentation about adding support for more tools to Multilint may be added in +the future. + + +%package help +Summary: Development documents and examples for pymultilint +Provides: python3-pymultilint-doc +%description help +# Multilint (for Python) + +[](https://github.com/gkze/multilint/actions?query=workflow%3ACI) +[](https://pypi.org/project/pymultilint/) +[](https://gkze.github.io/multilint/multilint.html) + +A utility tying together multiple linting and other code quality tools + +## Intro + +Multilint allows running several code quality tools under the same interface. +This is convenient as it saves time on writing multiple linter / formatter / +checker invocations every time in a project. + +## Installation + +Since there is an existing project called +[`multilint`](https://pypi.org/project/multilint/), this Multilint can be +installed as `pymultilint`: + +```bash +$ pip3 install pymultilint +``` + +## Usage + +Multilint exposes a CLI entry point: + +```bash +$ multilint [paths ...] +``` + +It can optionally take a set of starting paths. There are no CLI options, +as Multilint strives to have all of its configuration codified (see +[Configurability](#configurability)). + +Alternatively, Multilint is also usable via its API - either the +[`main`](multilint.py#L570) method, or the +[`Multilint`](multilint.py#L488) class. + +## Supported Tools + +Currently, Multilint integrates the following code quality tools: + +* [Autoflake](https://github.com/myint/autoflake) - removes unused imports and + unused variables as identified by [Pyflakes](https://github.com/PyCQA/pyflakes) +* [Isort](https://pycqa.github.io/isort/) - sorts imports according to specified + orders +* [Black](https://black.readthedocs.io/en/stable/) - the self-proclaimed + "uncompromising code formatter" - formats Python source with an opinionated + style +* [Mypy](http://mypy-lang.org) - static type checker for Python +* [Pylint](https://www.pylint.org) - general best practices linter +* [Pydocstyle](http://www.pydocstyle.org/en/stable/) - in-source documentation + best practices linter +* [Pyupgrade](https://github.com/asottile/pyupgrade) - upgrades Python syntax to + the latest for the specified version + +## Configurability + +Additionally, for tools that do not currently support configuration via +`pyproject.toml`([PEP-621](https://www.python.org/dev/peps/pep-0621/)), +Multilint exposes a configuration interface for them. This allows for +centralized codification of configuration of all code quality tools being used +in a project. + +Example relevant sections from a `pyproject.toml`: + +```toml +[tool.autoflake] +recursive = true +in_place = true +ignore_init_module_imports = true +remove_all_unused_imports = true +remove_unused_variables = true +verbose = true +srcs_paths = ["somepackage"] + +[tool.mypy] +src_paths = ["someotherpackage"] + +[tool.multilint] +tool_order = [ + "autoflake", + "isort", + "pyupgrade", + "black", + "mypy", + "pylint", + "pydocstyle" +] +src_paths = ["."] +``` + +At the time of writing of this README (2020-01-31), neither +[Autoflake](https://github.com/myint/autoflake/issues/59) nor +[Mypy](https://github.com/python/mypy/issues/5205https://github.com/python/mypy/issues/5205) +support configuration via `pyproject.toml`. While support for each may or may +not be added at some point in the future, with multilint configuring these tools +is possible **today**. + +Currently, the only two supported configuration option for Multilint are: + +* `tool_order`, which defines the execution order of supported tools, and +* `src_paths`, which specifies the source paths (can be files and directories) + for Multilint to operate on. + +Each integrated tool additionally supports `src_dirs` as an override, in case +it is desired to target a specific tool at a different set of files +/ directories. + +## Extending Multilint + +Support for more tools may be added by subclassing the +[`ToolRunner`](multilint.py#L128) class and overriding the +[`.run(...)`](multilint.py#L160) method. + +There are some utilities provided, such as: + +* A logger that masquerades as a TextIO object to allow capturing tool output + from within and wrapping it with preferred logging +* A dictionary for tool configuration that is automatically available in the + `ToolRunner` class, as long as the tool is registered in + * The [`Tool`](multilint.py#L48) enum, + * The [`TOOL_RUNNERS`](multilint.py#L480) mapping, and declared + * The [`DEFAULT_TOOL_ORDER`](multilint.py#L500) class variable of `Multilint`. + +Documentation about adding support for more tools to Multilint may be added in +the future. + + +%prep +%autosetup -n pymultilint-1.0.4 + +%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-pymultilint -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.4-1 +- Package Spec generated @@ -0,0 +1 @@ +8b34fe3e7b9ce8f5c910063cd8ce7dad pymultilint-1.0.4.tar.gz |
