summaryrefslogtreecommitdiff
path: root/python-shed.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-shed.spec')
-rw-r--r--python-shed.spec360
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