summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-autohooks.spec453
-rw-r--r--sources1
3 files changed, 455 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..5b53808 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/autohooks-23.4.0.tar.gz
diff --git a/python-autohooks.spec b/python-autohooks.spec
new file mode 100644
index 0000000..808a974
--- /dev/null
+++ b/python-autohooks.spec
@@ -0,0 +1,453 @@
+%global _empty_manifest_terminate_build 0
+Name: python-autohooks
+Version: 23.4.0
+Release: 1
+Summary: Library for managing git hooks
+License: GPL-3.0-or-later
+URL: https://github.com/greenbone/autohooks/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/19/63/1a6179eae386a6edc49a2d5cefa47f9dfc6a3d30385a920c66d72ef1d6f9/autohooks-23.4.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-pontos
+Requires: python3-rich
+Requires: python3-tomlkit
+
+%description
+![Greenbone Logo](https://www.greenbone.net/wp-content/uploads/gb_new-logo_horizontal_rgb_small.png)
+# Autohooks <!-- omit in toc -->
+
+[![PyPI release](https://img.shields.io/pypi/v/autohooks.svg)](https://pypi.org/project/autohooks/)
+[![Build and test Python package](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml/badge.svg)](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml)
+[![codecov](https://codecov.io/gh/greenbone/autohooks/branch/main/graph/badge.svg?token=9IX7ucaFwj)](https://codecov.io/gh/greenbone/autohooks)
+
+Library for managing and writing [git hooks](https://git-scm.com/docs/githooks)
+in Python using `pyproject.toml` for its settings.
+
+Looking for automatic formatting and linting, e.g., with [black] and [pylint],
+while creating a git commit using a pure Python implementation? Do you just want
+to have your git hook settings in the `pyproject.toml` file too?
+
+Welcome to **autohooks**!
+
+- [Why?](#why)
+- [Solution](#solution)
+- [Requirements](#requirements)
+- [Plugins](#plugins)
+- [Installing autohooks](#installing-autohooks)
+- [Maintainer](#maintainer)
+- [Contributing](#contributing)
+- [License](#license)
+
+## Why?
+
+Several outstanding libraries for managing and executing git hooks exist already.
+To name a few: [husky](https://github.com/typicode/husky),
+[lint-staged](https://github.com/okonet/lint-staged),
+[precise-commits](https://github.com/nrwl/precise-commits) or
+[pre-commit](https://github.com/pre-commit/pre-commit).
+
+However, they need another interpreter besides python (like husky), require a
+different config file besides `pyproject.toml` or are too ambiguous (like
+pre-commit). pre-commit is written in python but has support hooks written in
+all kind of languages. Additionally, it maintains the dependencies by itself and
+does not install them in the current environment.
+
+## Solution
+
+autohooks is a pure python library that installs a minimal
+[executable git hook](https://github.com/greenbone/autohooks/blob/main/autohooks/precommit/template).
+It allows the decision of how to maintain the hook dependencies
+by supporting different modes and stores its settings in the well known
+`pyproject.toml` file.
+
+![Autohooks](https://raw.githubusercontent.com/greenbone/autohooks/main/autohooks.gif)
+
+## Requirements
+
+Python 3.7+ is required for autohooks.
+
+## Plugins
+
+* Python code formatting via [black](https://github.com/greenbone/autohooks-plugin-black)
+
+* Python code formatting via [autopep8](https://github.com/LeoIV/autohooks-plugin-autopep8)
+
+* Python code linting via [pylint](https://github.com/greenbone/autohooks-plugin-pylint)
+
+* Python code linting via [flake8](https://github.com/greenbone/autohooks-plugin-flake8)
+
+* Python import sorting via [isort](https://github.com/greenbone/autohooks-plugin-isort)
+
+* Running tests via [pytest](https://github.com/greenbone/autohooks-plugin-pytest/)
+
+## Installing autohooks
+
+Quick installation of [pylint] and [black] plugins using [poetry]:
+
+```shell
+poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-pylint
+poetry run autohooks activate --mode poetry
+poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.pylint
+```
+
+The output of `autohooks activate` should be similar to
+```
+ ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode.
+```
+
+Autohooks has an extensible plugin model. Each plugin provides different
+functionality which often requires to install additional dependencies.
+
+For managing these dependencies currently three modes are supported by
+autohooks:
+
+* `pythonpath` for dependency management via [pip]
+* `poetry` for dependency management via [poetry] (recommended)
+* `pipenv` for dependency management via [pipenv]
+
+These modes handle how autohooks, the plugins and their dependencies are loaded
+during git hook execution.
+
+If no mode is specified in the [`pyproject.toml` config file](#configure-mode-and-plugins-to-be-run)
+and no mode is set during [activation](#activating-the-git-hooks), autohooks
+will use the [pythonpath mode](#pythonpath-mode) by default.
+
+For more details on using [pip], [poetry] or [pipenv] in conjunction with these
+modes see the [documentation](https://greenbone.github.io/autohooks).
+
+## Maintainer
+
+This project is maintained by [Greenbone AG](https://www.greenbone.net/).
+
+## Contributing
+
+Your contributions are highly appreciated. Please
+[create a pull request](https://github.com/greenbone/autohooks/pulls)
+on GitHub. Bigger changes need to be discussed with the development team via the
+[issues section at GitHub](https://github.com/greenbone/autohooks/issues)
+first.
+
+## License
+
+Copyright (C) 2019 - 2022 [Greenbone AG](https://www.greenbone.net/)
+
+Licensed under the [GNU General Public License v3.0 or later](LICENSE).
+
+[black]: https://black.readthedocs.io/en/stable/
+[pip]: https://pip.pypa.io/en/stable/
+[pipenv]: https://pipenv.readthedocs.io/en/latest/
+[poetry]: https://python-poetry.org/
+[pylint]: https://pylint.readthedocs.io/en/latest/
+
+
+
+%package -n python3-autohooks
+Summary: Library for managing git hooks
+Provides: python-autohooks
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-autohooks
+![Greenbone Logo](https://www.greenbone.net/wp-content/uploads/gb_new-logo_horizontal_rgb_small.png)
+# Autohooks <!-- omit in toc -->
+
+[![PyPI release](https://img.shields.io/pypi/v/autohooks.svg)](https://pypi.org/project/autohooks/)
+[![Build and test Python package](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml/badge.svg)](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml)
+[![codecov](https://codecov.io/gh/greenbone/autohooks/branch/main/graph/badge.svg?token=9IX7ucaFwj)](https://codecov.io/gh/greenbone/autohooks)
+
+Library for managing and writing [git hooks](https://git-scm.com/docs/githooks)
+in Python using `pyproject.toml` for its settings.
+
+Looking for automatic formatting and linting, e.g., with [black] and [pylint],
+while creating a git commit using a pure Python implementation? Do you just want
+to have your git hook settings in the `pyproject.toml` file too?
+
+Welcome to **autohooks**!
+
+- [Why?](#why)
+- [Solution](#solution)
+- [Requirements](#requirements)
+- [Plugins](#plugins)
+- [Installing autohooks](#installing-autohooks)
+- [Maintainer](#maintainer)
+- [Contributing](#contributing)
+- [License](#license)
+
+## Why?
+
+Several outstanding libraries for managing and executing git hooks exist already.
+To name a few: [husky](https://github.com/typicode/husky),
+[lint-staged](https://github.com/okonet/lint-staged),
+[precise-commits](https://github.com/nrwl/precise-commits) or
+[pre-commit](https://github.com/pre-commit/pre-commit).
+
+However, they need another interpreter besides python (like husky), require a
+different config file besides `pyproject.toml` or are too ambiguous (like
+pre-commit). pre-commit is written in python but has support hooks written in
+all kind of languages. Additionally, it maintains the dependencies by itself and
+does not install them in the current environment.
+
+## Solution
+
+autohooks is a pure python library that installs a minimal
+[executable git hook](https://github.com/greenbone/autohooks/blob/main/autohooks/precommit/template).
+It allows the decision of how to maintain the hook dependencies
+by supporting different modes and stores its settings in the well known
+`pyproject.toml` file.
+
+![Autohooks](https://raw.githubusercontent.com/greenbone/autohooks/main/autohooks.gif)
+
+## Requirements
+
+Python 3.7+ is required for autohooks.
+
+## Plugins
+
+* Python code formatting via [black](https://github.com/greenbone/autohooks-plugin-black)
+
+* Python code formatting via [autopep8](https://github.com/LeoIV/autohooks-plugin-autopep8)
+
+* Python code linting via [pylint](https://github.com/greenbone/autohooks-plugin-pylint)
+
+* Python code linting via [flake8](https://github.com/greenbone/autohooks-plugin-flake8)
+
+* Python import sorting via [isort](https://github.com/greenbone/autohooks-plugin-isort)
+
+* Running tests via [pytest](https://github.com/greenbone/autohooks-plugin-pytest/)
+
+## Installing autohooks
+
+Quick installation of [pylint] and [black] plugins using [poetry]:
+
+```shell
+poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-pylint
+poetry run autohooks activate --mode poetry
+poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.pylint
+```
+
+The output of `autohooks activate` should be similar to
+```
+ ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode.
+```
+
+Autohooks has an extensible plugin model. Each plugin provides different
+functionality which often requires to install additional dependencies.
+
+For managing these dependencies currently three modes are supported by
+autohooks:
+
+* `pythonpath` for dependency management via [pip]
+* `poetry` for dependency management via [poetry] (recommended)
+* `pipenv` for dependency management via [pipenv]
+
+These modes handle how autohooks, the plugins and their dependencies are loaded
+during git hook execution.
+
+If no mode is specified in the [`pyproject.toml` config file](#configure-mode-and-plugins-to-be-run)
+and no mode is set during [activation](#activating-the-git-hooks), autohooks
+will use the [pythonpath mode](#pythonpath-mode) by default.
+
+For more details on using [pip], [poetry] or [pipenv] in conjunction with these
+modes see the [documentation](https://greenbone.github.io/autohooks).
+
+## Maintainer
+
+This project is maintained by [Greenbone AG](https://www.greenbone.net/).
+
+## Contributing
+
+Your contributions are highly appreciated. Please
+[create a pull request](https://github.com/greenbone/autohooks/pulls)
+on GitHub. Bigger changes need to be discussed with the development team via the
+[issues section at GitHub](https://github.com/greenbone/autohooks/issues)
+first.
+
+## License
+
+Copyright (C) 2019 - 2022 [Greenbone AG](https://www.greenbone.net/)
+
+Licensed under the [GNU General Public License v3.0 or later](LICENSE).
+
+[black]: https://black.readthedocs.io/en/stable/
+[pip]: https://pip.pypa.io/en/stable/
+[pipenv]: https://pipenv.readthedocs.io/en/latest/
+[poetry]: https://python-poetry.org/
+[pylint]: https://pylint.readthedocs.io/en/latest/
+
+
+
+%package help
+Summary: Development documents and examples for autohooks
+Provides: python3-autohooks-doc
+%description help
+![Greenbone Logo](https://www.greenbone.net/wp-content/uploads/gb_new-logo_horizontal_rgb_small.png)
+# Autohooks <!-- omit in toc -->
+
+[![PyPI release](https://img.shields.io/pypi/v/autohooks.svg)](https://pypi.org/project/autohooks/)
+[![Build and test Python package](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml/badge.svg)](https://github.com/greenbone/autohooks/actions/workflows/ci-python.yml)
+[![codecov](https://codecov.io/gh/greenbone/autohooks/branch/main/graph/badge.svg?token=9IX7ucaFwj)](https://codecov.io/gh/greenbone/autohooks)
+
+Library for managing and writing [git hooks](https://git-scm.com/docs/githooks)
+in Python using `pyproject.toml` for its settings.
+
+Looking for automatic formatting and linting, e.g., with [black] and [pylint],
+while creating a git commit using a pure Python implementation? Do you just want
+to have your git hook settings in the `pyproject.toml` file too?
+
+Welcome to **autohooks**!
+
+- [Why?](#why)
+- [Solution](#solution)
+- [Requirements](#requirements)
+- [Plugins](#plugins)
+- [Installing autohooks](#installing-autohooks)
+- [Maintainer](#maintainer)
+- [Contributing](#contributing)
+- [License](#license)
+
+## Why?
+
+Several outstanding libraries for managing and executing git hooks exist already.
+To name a few: [husky](https://github.com/typicode/husky),
+[lint-staged](https://github.com/okonet/lint-staged),
+[precise-commits](https://github.com/nrwl/precise-commits) or
+[pre-commit](https://github.com/pre-commit/pre-commit).
+
+However, they need another interpreter besides python (like husky), require a
+different config file besides `pyproject.toml` or are too ambiguous (like
+pre-commit). pre-commit is written in python but has support hooks written in
+all kind of languages. Additionally, it maintains the dependencies by itself and
+does not install them in the current environment.
+
+## Solution
+
+autohooks is a pure python library that installs a minimal
+[executable git hook](https://github.com/greenbone/autohooks/blob/main/autohooks/precommit/template).
+It allows the decision of how to maintain the hook dependencies
+by supporting different modes and stores its settings in the well known
+`pyproject.toml` file.
+
+![Autohooks](https://raw.githubusercontent.com/greenbone/autohooks/main/autohooks.gif)
+
+## Requirements
+
+Python 3.7+ is required for autohooks.
+
+## Plugins
+
+* Python code formatting via [black](https://github.com/greenbone/autohooks-plugin-black)
+
+* Python code formatting via [autopep8](https://github.com/LeoIV/autohooks-plugin-autopep8)
+
+* Python code linting via [pylint](https://github.com/greenbone/autohooks-plugin-pylint)
+
+* Python code linting via [flake8](https://github.com/greenbone/autohooks-plugin-flake8)
+
+* Python import sorting via [isort](https://github.com/greenbone/autohooks-plugin-isort)
+
+* Running tests via [pytest](https://github.com/greenbone/autohooks-plugin-pytest/)
+
+## Installing autohooks
+
+Quick installation of [pylint] and [black] plugins using [poetry]:
+
+```shell
+poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-pylint
+poetry run autohooks activate --mode poetry
+poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.pylint
+```
+
+The output of `autohooks activate` should be similar to
+```
+ ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode.
+```
+
+Autohooks has an extensible plugin model. Each plugin provides different
+functionality which often requires to install additional dependencies.
+
+For managing these dependencies currently three modes are supported by
+autohooks:
+
+* `pythonpath` for dependency management via [pip]
+* `poetry` for dependency management via [poetry] (recommended)
+* `pipenv` for dependency management via [pipenv]
+
+These modes handle how autohooks, the plugins and their dependencies are loaded
+during git hook execution.
+
+If no mode is specified in the [`pyproject.toml` config file](#configure-mode-and-plugins-to-be-run)
+and no mode is set during [activation](#activating-the-git-hooks), autohooks
+will use the [pythonpath mode](#pythonpath-mode) by default.
+
+For more details on using [pip], [poetry] or [pipenv] in conjunction with these
+modes see the [documentation](https://greenbone.github.io/autohooks).
+
+## Maintainer
+
+This project is maintained by [Greenbone AG](https://www.greenbone.net/).
+
+## Contributing
+
+Your contributions are highly appreciated. Please
+[create a pull request](https://github.com/greenbone/autohooks/pulls)
+on GitHub. Bigger changes need to be discussed with the development team via the
+[issues section at GitHub](https://github.com/greenbone/autohooks/issues)
+first.
+
+## License
+
+Copyright (C) 2019 - 2022 [Greenbone AG](https://www.greenbone.net/)
+
+Licensed under the [GNU General Public License v3.0 or later](LICENSE).
+
+[black]: https://black.readthedocs.io/en/stable/
+[pip]: https://pip.pypa.io/en/stable/
+[pipenv]: https://pipenv.readthedocs.io/en/latest/
+[poetry]: https://python-poetry.org/
+[pylint]: https://pylint.readthedocs.io/en/latest/
+
+
+
+%prep
+%autosetup -n autohooks-23.4.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-autohooks -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 23.4.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..bec3cf0
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+2b2213e6f4a0d1b43e0aef8459badd05 autohooks-23.4.0.tar.gz