diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 02:21:30 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 02:21:30 +0000 |
| commit | 8f3f3b47bd3f93bae8a028fbf7a1056a607094ec (patch) | |
| tree | bc741fe543771460a1e5a61c3f29463817fbe51e | |
| parent | 14fe6fc89ebd795c8ba4b1dffb15cbd5e44ec347 (diff) | |
automatic import of python-flake8-2020
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-flake8-2020.spec | 316 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 318 insertions, 0 deletions
@@ -0,0 +1 @@ +/flake8_2020-1.7.0.tar.gz diff --git a/python-flake8-2020.spec b/python-flake8-2020.spec new file mode 100644 index 0000000..45f2881 --- /dev/null +++ b/python-flake8-2020.spec @@ -0,0 +1,316 @@ +%global _empty_manifest_terminate_build 0 +Name: python-flake8-2020 +Version: 1.7.0 +Release: 1 +Summary: flake8 plugin which checks for misuse of `sys.version` or `sys.version_info` +License: MIT +URL: https://github.com/asottile/flake8-2020 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/14/e6/f16a80ec6aa195c6ab928ebe3b167303061b7755a92f6417777b9657979d/flake8_2020-1.7.0.tar.gz +BuildArch: noarch + +Requires: python3-flake8 + +%description +flake8 plugin which checks for misuse of `sys.version` or `sys.version_info` +this will become a problem when `python3.10` or `python4.0` exists (presumably +during the year 2020). +you might also find an early build of [python3.10] useful +[python3.10]: https://github.com/asottile/python3.10 +## installation +`pip install flake8-2020` +## flake8 codes +| Code | Description | +|--------|--------------------------------------------------------| +| YTT101 | `sys.version[:3]` referenced (python3.10) | +| YTT102 | `sys.version[2]` referenced (python3.10) | +| YTT103 | `sys.version` compared to string (python3.10) | +| YTT201 | `sys.version_info[0] == 3` referenced (python4) | +| YTT202 | `six.PY3` referenced (python4) | +| YTT203 | `sys.version_info[1]` compared to integer (python4) | +| YTT204 | `sys.version_info.minor` compared to integer (python4) | +| YTT301 | `sys.version[0]` referenced (python10) | +| YTT302 | `sys.version` compared to string (python10) | +| YTT303 | `sys.version[:1]` referenced (python10) | +## rationale +lots of code incorrectly references the `sys.version` and `sys.version_info` +members. in particular, this will cause some issues when the version of python +after python3.9 is released. my current recommendation is 3.10 since I believe +it breaks less code, here's a few patterns that will cause issues: +```python +# in python3.10 this will report as '3.1' (should be '3.10') +python_version = sys.version[:3] # YTT101 +# in python3.10 this will report as '1' (should be '10') +py_minor = sys.version[2] +# in python3.10 this will be False (which goes against developer intention) +sys.version >= '3.5' # YTT103 +# correct way to do this +python_version = '{}.{}'.format(*sys.version_info) +py_minor = str(sys.version_info[1]) +sys.version_info >= (3, 5) +``` +```python +# in python4 this will report as `False` (and suddenly run python2 code!) +is_py3 = sys.version_info[0] == 3 # YTT201 +# in python4 this will report as `False` (six violates YTT201!) +if six.PY3: # YTT202 + print('python3!') +if sys.version_info[0] >= 3 and sys.version_info[1] >= 5: # YTT203 + print('py35+') +if sys.version_info.major >= 3 and sys.version_info.minor >= 6: # YTT204 + print('py36+') +# correct way to do this +is_py3 = sys.version_info >= (3,) +if not six.PY2: + print('python3!') +if sys.version_info >= (3, 5): + print('py35+') +if sys.version_info >= (3, 6): + print('py36+') +``` +```python +# in python10 this will report as '1' +python_major_version = sys.version[0] # YTT301 +# in python10 this will be False +if sys.version >= '3': # YTT302 + print('python3!') +# in python10 this will be False +if sys.version[:1] >= '3': # YTT303 + print('python3!') +# correct way to do this +python_major_version = str(sys.version_info[0]) +if sys.version_info >= (3,): + print('python3!') +if sys.version_info >= (3,): + print('python3!') +``` +## as a pre-commit hook +See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions +Sample `.pre-commit-config.yaml`: +```yaml +- repo: https://github.com/pycqa/flake8 + rev: 3.7.8 + hooks: + - id: flake8 + additional_dependencies: [flake8-2020==1.6.1] +``` + +%package -n python3-flake8-2020 +Summary: flake8 plugin which checks for misuse of `sys.version` or `sys.version_info` +Provides: python-flake8-2020 +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-flake8-2020 +flake8 plugin which checks for misuse of `sys.version` or `sys.version_info` +this will become a problem when `python3.10` or `python4.0` exists (presumably +during the year 2020). +you might also find an early build of [python3.10] useful +[python3.10]: https://github.com/asottile/python3.10 +## installation +`pip install flake8-2020` +## flake8 codes +| Code | Description | +|--------|--------------------------------------------------------| +| YTT101 | `sys.version[:3]` referenced (python3.10) | +| YTT102 | `sys.version[2]` referenced (python3.10) | +| YTT103 | `sys.version` compared to string (python3.10) | +| YTT201 | `sys.version_info[0] == 3` referenced (python4) | +| YTT202 | `six.PY3` referenced (python4) | +| YTT203 | `sys.version_info[1]` compared to integer (python4) | +| YTT204 | `sys.version_info.minor` compared to integer (python4) | +| YTT301 | `sys.version[0]` referenced (python10) | +| YTT302 | `sys.version` compared to string (python10) | +| YTT303 | `sys.version[:1]` referenced (python10) | +## rationale +lots of code incorrectly references the `sys.version` and `sys.version_info` +members. in particular, this will cause some issues when the version of python +after python3.9 is released. my current recommendation is 3.10 since I believe +it breaks less code, here's a few patterns that will cause issues: +```python +# in python3.10 this will report as '3.1' (should be '3.10') +python_version = sys.version[:3] # YTT101 +# in python3.10 this will report as '1' (should be '10') +py_minor = sys.version[2] +# in python3.10 this will be False (which goes against developer intention) +sys.version >= '3.5' # YTT103 +# correct way to do this +python_version = '{}.{}'.format(*sys.version_info) +py_minor = str(sys.version_info[1]) +sys.version_info >= (3, 5) +``` +```python +# in python4 this will report as `False` (and suddenly run python2 code!) +is_py3 = sys.version_info[0] == 3 # YTT201 +# in python4 this will report as `False` (six violates YTT201!) +if six.PY3: # YTT202 + print('python3!') +if sys.version_info[0] >= 3 and sys.version_info[1] >= 5: # YTT203 + print('py35+') +if sys.version_info.major >= 3 and sys.version_info.minor >= 6: # YTT204 + print('py36+') +# correct way to do this +is_py3 = sys.version_info >= (3,) +if not six.PY2: + print('python3!') +if sys.version_info >= (3, 5): + print('py35+') +if sys.version_info >= (3, 6): + print('py36+') +``` +```python +# in python10 this will report as '1' +python_major_version = sys.version[0] # YTT301 +# in python10 this will be False +if sys.version >= '3': # YTT302 + print('python3!') +# in python10 this will be False +if sys.version[:1] >= '3': # YTT303 + print('python3!') +# correct way to do this +python_major_version = str(sys.version_info[0]) +if sys.version_info >= (3,): + print('python3!') +if sys.version_info >= (3,): + print('python3!') +``` +## as a pre-commit hook +See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions +Sample `.pre-commit-config.yaml`: +```yaml +- repo: https://github.com/pycqa/flake8 + rev: 3.7.8 + hooks: + - id: flake8 + additional_dependencies: [flake8-2020==1.6.1] +``` + +%package help +Summary: Development documents and examples for flake8-2020 +Provides: python3-flake8-2020-doc +%description help +flake8 plugin which checks for misuse of `sys.version` or `sys.version_info` +this will become a problem when `python3.10` or `python4.0` exists (presumably +during the year 2020). +you might also find an early build of [python3.10] useful +[python3.10]: https://github.com/asottile/python3.10 +## installation +`pip install flake8-2020` +## flake8 codes +| Code | Description | +|--------|--------------------------------------------------------| +| YTT101 | `sys.version[:3]` referenced (python3.10) | +| YTT102 | `sys.version[2]` referenced (python3.10) | +| YTT103 | `sys.version` compared to string (python3.10) | +| YTT201 | `sys.version_info[0] == 3` referenced (python4) | +| YTT202 | `six.PY3` referenced (python4) | +| YTT203 | `sys.version_info[1]` compared to integer (python4) | +| YTT204 | `sys.version_info.minor` compared to integer (python4) | +| YTT301 | `sys.version[0]` referenced (python10) | +| YTT302 | `sys.version` compared to string (python10) | +| YTT303 | `sys.version[:1]` referenced (python10) | +## rationale +lots of code incorrectly references the `sys.version` and `sys.version_info` +members. in particular, this will cause some issues when the version of python +after python3.9 is released. my current recommendation is 3.10 since I believe +it breaks less code, here's a few patterns that will cause issues: +```python +# in python3.10 this will report as '3.1' (should be '3.10') +python_version = sys.version[:3] # YTT101 +# in python3.10 this will report as '1' (should be '10') +py_minor = sys.version[2] +# in python3.10 this will be False (which goes against developer intention) +sys.version >= '3.5' # YTT103 +# correct way to do this +python_version = '{}.{}'.format(*sys.version_info) +py_minor = str(sys.version_info[1]) +sys.version_info >= (3, 5) +``` +```python +# in python4 this will report as `False` (and suddenly run python2 code!) +is_py3 = sys.version_info[0] == 3 # YTT201 +# in python4 this will report as `False` (six violates YTT201!) +if six.PY3: # YTT202 + print('python3!') +if sys.version_info[0] >= 3 and sys.version_info[1] >= 5: # YTT203 + print('py35+') +if sys.version_info.major >= 3 and sys.version_info.minor >= 6: # YTT204 + print('py36+') +# correct way to do this +is_py3 = sys.version_info >= (3,) +if not six.PY2: + print('python3!') +if sys.version_info >= (3, 5): + print('py35+') +if sys.version_info >= (3, 6): + print('py36+') +``` +```python +# in python10 this will report as '1' +python_major_version = sys.version[0] # YTT301 +# in python10 this will be False +if sys.version >= '3': # YTT302 + print('python3!') +# in python10 this will be False +if sys.version[:1] >= '3': # YTT303 + print('python3!') +# correct way to do this +python_major_version = str(sys.version_info[0]) +if sys.version_info >= (3,): + print('python3!') +if sys.version_info >= (3,): + print('python3!') +``` +## as a pre-commit hook +See [pre-commit](https://github.com/pre-commit/pre-commit) for instructions +Sample `.pre-commit-config.yaml`: +```yaml +- repo: https://github.com/pycqa/flake8 + rev: 3.7.8 + hooks: + - id: flake8 + additional_dependencies: [flake8-2020==1.6.1] +``` + +%prep +%autosetup -n flake8-2020-1.7.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-flake8-2020 -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.7.0-1 +- Package Spec generated @@ -0,0 +1 @@ +e2d9e43f6d4f4f6d7b117fe128946c6b flake8_2020-1.7.0.tar.gz |
