diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-15 05:42:21 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 05:42:21 +0000 |
| commit | f4e509d8fc12c71aa9f574edadba475697854d2b (patch) | |
| tree | 5a371b0a8ae202b9bb27bcb73c6910f38ff63499 /python-shed.spec | |
| parent | f2424cae1e0c28ae74d50a5fc8a71257c75177d9 (diff) | |
automatic import of python-shed
Diffstat (limited to 'python-shed.spec')
| -rw-r--r-- | python-shed.spec | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/python-shed.spec b/python-shed.spec new file mode 100644 index 0000000..c3ee2c1 --- /dev/null +++ b/python-shed.spec @@ -0,0 +1,360 @@ +%global _empty_manifest_terminate_build 0 +Name: python-shed +Version: 2023.5.1 +Release: 1 +Summary: `shed` canonicalises Python code. +License: AGPL-3.0 +URL: https://github.com/Zac-HD/shed +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/58/98/542ff5499a587eb2639f7bf30b6d413c8cddc3ad53e40917c8e90ffc3334/shed-2023.5.1.tar.gz +BuildArch: noarch + +Requires: python3-autoflake +Requires: python3-black +Requires: python3-isort +Requires: python3-libcst +Requires: python3-pyupgrade +Requires: python3-com2ann + +%description +# shed +`shed` canonicalises Python code. Shed your legacy, stop bikeshedding, and move on. Black++ + +## What does it do? +`shed` is the *maximally opinionated* autoformatting tool. It's *all about* +[convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration), +and designed to be a single opinionated tool that fully canonicalises my +code - formatting, imports, updates, and every other fix I can possibly +automate. + +There are no configuration options at all, but if the defaults aren't for you +that's OK - you can still use the underlying tools directly and get most of +the same effect... though you'll have to configure them yourself. + +`shed` must either be run in a git repo to auto-detect the files to format, +or explicitly passed a list of files to format on the command-line. + +## Features +`shed`... + +- Runs [`autoflake`](https://pypi.org/project/autoflake/), + to remove unused imports and variables +- Runs [`pyupgrade`](https://pypi.org/project/pyupgrade/), + with autodetected minimum version >= py37 +- Runs [`isort`](https://pypi.org/project/isort/), + with autodetected first-party imports and `--ca --profile=black` args +- Runs [`black`](https://pypi.org/project/black/), + with autodetected minimum version >= py37 +- Formats code blocks in docstrings, markdown, and restructured text docs + (based on [`blacken-docs`](https://pypi.org/project/blacken-docs/)). +- If `shed --refactor`, also runs [`com2ann`](https://pypi.org/project/com2ann/) + and custom refactoring logic using [`libcst`](https://pypi.org/project/libcst/). + +The version detection logic is provided by `black`. Because `shed` supports the same +[versions of Python as upstream](https://devguide.python.org/#status-of-python-branches), +it assumes that the minimum version is Python 3.7. + +If you run `shed` in a Git repository, the name of the root directory is assumed to be a +first-party import. [`src` layout](https://hynek.me/articles/testing-packaging/) +packages are also automatically detected, i.e. the `foo` in any paths like +`.../src/foo/__init__.py`. + +### Jupyter Notebook support +We recommend [using `jupytext` to save your notebooks in `.py` or `.md` files](https://jupytext.readthedocs.io/en/latest/), +in which case `shed` supports them natively. For a quick-and-dirty workflow, +you can [use `nbqa shed notebook.ipynb`](https://nbqa.readthedocs.io/en/latest/readme.html) - +`nbqa` works for any linter or formatter. + +## Using `shed` in your editor +We recommend [using `black` in your editor](https://black.readthedocs.io/en/stable/integrations/editors.html) +instead of `shed`, since it provides our core formatting logic and `shed`'s extra +smarts can be counterproductive while you're actively editing code - for example, +removing an "unused" import just after you add it! + +Then, when you're done editing, you can run `shed` from the command-line, `pre-commit` +hooks, and your CI system. + +## Using `shed` with pre-commit +If you use [pre-commit](https://pre-commit.com/), you can use it with Shed by +adding the following to your `.pre-commit-config.yaml`: + +```yaml +minimum_pre_commit_version: '2.9.0' +repos: +- repo: https://github.com/Zac-HD/shed + rev: 2023.5.1 + hooks: + - id: shed + # args: [--refactor, --py39-plus] + types_or: [python, pyi, markdown, rst] +``` + +This is often considerably faster for large projects, because `pre-commit` +can avoid running `shed` on unchanged files. + +## See also +`shed` inherits `pyupgrade`'s careful approach to converting string formatting +code. If you want a more aggressive refactoring tool and don't mind checking +for breaking changes, [check out `flynt`](https://github.com/ikamensh/flynt). + +For Django upgrades, see [`django-codemod`](https://github.com/browniebroke/django-codemod) +or [`django-upgrade`](https://github.com/adamchainz/django-upgrade). + +The [`ssort` project](https://pypi.org/project/ssort/) sorts the contents of +python modules so that statements are placed after the things they depend on, +for easier navigation and consistency of design. + +[`Semgrep` supports some autofixes](https://r2c.dev/blog/2022/autofixing-code-with-semgrep/#the-results), +with patterns for a wide variety of languages. This includes a variety of both +security and style checks, with manual inspection of results recommended. + +## Changelog + +Patch notes [can be found in `CHANGELOG.md`](https://github.com/Zac-HD/shed/blob/master/CHANGELOG.md). + + +%package -n python3-shed +Summary: `shed` canonicalises Python code. +Provides: python-shed +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-shed +# shed +`shed` canonicalises Python code. Shed your legacy, stop bikeshedding, and move on. Black++ + +## What does it do? +`shed` is the *maximally opinionated* autoformatting tool. It's *all about* +[convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration), +and designed to be a single opinionated tool that fully canonicalises my +code - formatting, imports, updates, and every other fix I can possibly +automate. + +There are no configuration options at all, but if the defaults aren't for you +that's OK - you can still use the underlying tools directly and get most of +the same effect... though you'll have to configure them yourself. + +`shed` must either be run in a git repo to auto-detect the files to format, +or explicitly passed a list of files to format on the command-line. + +## Features +`shed`... + +- Runs [`autoflake`](https://pypi.org/project/autoflake/), + to remove unused imports and variables +- Runs [`pyupgrade`](https://pypi.org/project/pyupgrade/), + with autodetected minimum version >= py37 +- Runs [`isort`](https://pypi.org/project/isort/), + with autodetected first-party imports and `--ca --profile=black` args +- Runs [`black`](https://pypi.org/project/black/), + with autodetected minimum version >= py37 +- Formats code blocks in docstrings, markdown, and restructured text docs + (based on [`blacken-docs`](https://pypi.org/project/blacken-docs/)). +- If `shed --refactor`, also runs [`com2ann`](https://pypi.org/project/com2ann/) + and custom refactoring logic using [`libcst`](https://pypi.org/project/libcst/). + +The version detection logic is provided by `black`. Because `shed` supports the same +[versions of Python as upstream](https://devguide.python.org/#status-of-python-branches), +it assumes that the minimum version is Python 3.7. + +If you run `shed` in a Git repository, the name of the root directory is assumed to be a +first-party import. [`src` layout](https://hynek.me/articles/testing-packaging/) +packages are also automatically detected, i.e. the `foo` in any paths like +`.../src/foo/__init__.py`. + +### Jupyter Notebook support +We recommend [using `jupytext` to save your notebooks in `.py` or `.md` files](https://jupytext.readthedocs.io/en/latest/), +in which case `shed` supports them natively. For a quick-and-dirty workflow, +you can [use `nbqa shed notebook.ipynb`](https://nbqa.readthedocs.io/en/latest/readme.html) - +`nbqa` works for any linter or formatter. + +## Using `shed` in your editor +We recommend [using `black` in your editor](https://black.readthedocs.io/en/stable/integrations/editors.html) +instead of `shed`, since it provides our core formatting logic and `shed`'s extra +smarts can be counterproductive while you're actively editing code - for example, +removing an "unused" import just after you add it! + +Then, when you're done editing, you can run `shed` from the command-line, `pre-commit` +hooks, and your CI system. + +## Using `shed` with pre-commit +If you use [pre-commit](https://pre-commit.com/), you can use it with Shed by +adding the following to your `.pre-commit-config.yaml`: + +```yaml +minimum_pre_commit_version: '2.9.0' +repos: +- repo: https://github.com/Zac-HD/shed + rev: 2023.5.1 + hooks: + - id: shed + # args: [--refactor, --py39-plus] + types_or: [python, pyi, markdown, rst] +``` + +This is often considerably faster for large projects, because `pre-commit` +can avoid running `shed` on unchanged files. + +## See also +`shed` inherits `pyupgrade`'s careful approach to converting string formatting +code. If you want a more aggressive refactoring tool and don't mind checking +for breaking changes, [check out `flynt`](https://github.com/ikamensh/flynt). + +For Django upgrades, see [`django-codemod`](https://github.com/browniebroke/django-codemod) +or [`django-upgrade`](https://github.com/adamchainz/django-upgrade). + +The [`ssort` project](https://pypi.org/project/ssort/) sorts the contents of +python modules so that statements are placed after the things they depend on, +for easier navigation and consistency of design. + +[`Semgrep` supports some autofixes](https://r2c.dev/blog/2022/autofixing-code-with-semgrep/#the-results), +with patterns for a wide variety of languages. This includes a variety of both +security and style checks, with manual inspection of results recommended. + +## Changelog + +Patch notes [can be found in `CHANGELOG.md`](https://github.com/Zac-HD/shed/blob/master/CHANGELOG.md). + + +%package help +Summary: Development documents and examples for shed +Provides: python3-shed-doc +%description help +# shed +`shed` canonicalises Python code. Shed your legacy, stop bikeshedding, and move on. Black++ + +## What does it do? +`shed` is the *maximally opinionated* autoformatting tool. It's *all about* +[convention over configuration](https://en.wikipedia.org/wiki/Convention_over_configuration), +and designed to be a single opinionated tool that fully canonicalises my +code - formatting, imports, updates, and every other fix I can possibly +automate. + +There are no configuration options at all, but if the defaults aren't for you +that's OK - you can still use the underlying tools directly and get most of +the same effect... though you'll have to configure them yourself. + +`shed` must either be run in a git repo to auto-detect the files to format, +or explicitly passed a list of files to format on the command-line. + +## Features +`shed`... + +- Runs [`autoflake`](https://pypi.org/project/autoflake/), + to remove unused imports and variables +- Runs [`pyupgrade`](https://pypi.org/project/pyupgrade/), + with autodetected minimum version >= py37 +- Runs [`isort`](https://pypi.org/project/isort/), + with autodetected first-party imports and `--ca --profile=black` args +- Runs [`black`](https://pypi.org/project/black/), + with autodetected minimum version >= py37 +- Formats code blocks in docstrings, markdown, and restructured text docs + (based on [`blacken-docs`](https://pypi.org/project/blacken-docs/)). +- If `shed --refactor`, also runs [`com2ann`](https://pypi.org/project/com2ann/) + and custom refactoring logic using [`libcst`](https://pypi.org/project/libcst/). + +The version detection logic is provided by `black`. Because `shed` supports the same +[versions of Python as upstream](https://devguide.python.org/#status-of-python-branches), +it assumes that the minimum version is Python 3.7. + +If you run `shed` in a Git repository, the name of the root directory is assumed to be a +first-party import. [`src` layout](https://hynek.me/articles/testing-packaging/) +packages are also automatically detected, i.e. the `foo` in any paths like +`.../src/foo/__init__.py`. + +### Jupyter Notebook support +We recommend [using `jupytext` to save your notebooks in `.py` or `.md` files](https://jupytext.readthedocs.io/en/latest/), +in which case `shed` supports them natively. For a quick-and-dirty workflow, +you can [use `nbqa shed notebook.ipynb`](https://nbqa.readthedocs.io/en/latest/readme.html) - +`nbqa` works for any linter or formatter. + +## Using `shed` in your editor +We recommend [using `black` in your editor](https://black.readthedocs.io/en/stable/integrations/editors.html) +instead of `shed`, since it provides our core formatting logic and `shed`'s extra +smarts can be counterproductive while you're actively editing code - for example, +removing an "unused" import just after you add it! + +Then, when you're done editing, you can run `shed` from the command-line, `pre-commit` +hooks, and your CI system. + +## Using `shed` with pre-commit +If you use [pre-commit](https://pre-commit.com/), you can use it with Shed by +adding the following to your `.pre-commit-config.yaml`: + +```yaml +minimum_pre_commit_version: '2.9.0' +repos: +- repo: https://github.com/Zac-HD/shed + rev: 2023.5.1 + hooks: + - id: shed + # args: [--refactor, --py39-plus] + types_or: [python, pyi, markdown, rst] +``` + +This is often considerably faster for large projects, because `pre-commit` +can avoid running `shed` on unchanged files. + +## See also +`shed` inherits `pyupgrade`'s careful approach to converting string formatting +code. If you want a more aggressive refactoring tool and don't mind checking +for breaking changes, [check out `flynt`](https://github.com/ikamensh/flynt). + +For Django upgrades, see [`django-codemod`](https://github.com/browniebroke/django-codemod) +or [`django-upgrade`](https://github.com/adamchainz/django-upgrade). + +The [`ssort` project](https://pypi.org/project/ssort/) sorts the contents of +python modules so that statements are placed after the things they depend on, +for easier navigation and consistency of design. + +[`Semgrep` supports some autofixes](https://r2c.dev/blog/2022/autofixing-code-with-semgrep/#the-results), +with patterns for a wide variety of languages. This includes a variety of both +security and style checks, with manual inspection of results recommended. + +## Changelog + +Patch notes [can be found in `CHANGELOG.md`](https://github.com/Zac-HD/shed/blob/master/CHANGELOG.md). + + +%prep +%autosetup -n shed-2023.5.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-shed -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 2023.5.1-1 +- Package Spec generated |
