diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:44:12 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:44:12 +0000 |
commit | b3d36b60685fbda22051862a6ba30fab9b5a3da4 (patch) | |
tree | 980ab42ce97cf3a215ea37ba9692dc4c2b93e541 | |
parent | 81baeb0399d5b2aef2b1e79f0f3841c532e5739a (diff) |
automatic import of python-mypy-nonfloat-decimal
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-mypy-nonfloat-decimal.spec | 214 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 216 insertions, 0 deletions
@@ -0,0 +1 @@ +/mypy-nonfloat-decimal-0.1.7.tar.gz diff --git a/python-mypy-nonfloat-decimal.spec b/python-mypy-nonfloat-decimal.spec new file mode 100644 index 0000000..59cc2ed --- /dev/null +++ b/python-mypy-nonfloat-decimal.spec @@ -0,0 +1,214 @@ +%global _empty_manifest_terminate_build 0 +Name: python-mypy-nonfloat-decimal +Version: 0.1.7 +Release: 1 +Summary: Mypy plugin to prevent passing float type to Decimal to avoid imprecisions. +License: MIT +URL: https://pypi.org/project/mypy-nonfloat-decimal/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/14/6f/4191a510d4cf4a27a67bc8776f4ee2cd005c85d4bde3890659f757017dde/mypy-nonfloat-decimal-0.1.7.tar.gz +BuildArch: noarch + +Requires: python3-mypy + +%description +# Mypy non-float Decimal plugin + +Restricts passing float numbers to Decimal + +## Why? + +[The implementation of floating point numbers](https://docs.python.org/3/tutorial/floatingpoint.html) +can cause imprecisions in results. To avoid this problem you can use `Decimal` type, +however you still need to avoid passing `float` as its parameter: + +``` +>>> Decimal(1.02) +Decimal("1.020000000000000017763568394002504646778106689453125") +>>> Decimal("1.02") +Decimal("1.02") +``` + +This plugin is meant to spot occurrences where `float` is passed to `Decimal` in your code. + +## Usage + +- install plugin + +``` +pip install mypy-nonfloat-decimal +``` + +- add it into list of mypy plugins in your mypy config (`mypy.ini`) + +``` +[mypy] +plugins=mypy_nonfloat_decimal +``` + +- upon running mypy will detect `float` passed to `Decimal` and report it as an error (`example.py`): + + +``` +from decimal import Decimal +Decimal(1.02) +``` + +``` +$ mypy --config-file ./mypy.ini ./example.py + +example.py:2: error: Invalid type passed to Decimal (expected "Union[int, str, Decimal]"), got float instead +``` + + +%package -n python3-mypy-nonfloat-decimal +Summary: Mypy plugin to prevent passing float type to Decimal to avoid imprecisions. +Provides: python-mypy-nonfloat-decimal +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-mypy-nonfloat-decimal +# Mypy non-float Decimal plugin + +Restricts passing float numbers to Decimal + +## Why? + +[The implementation of floating point numbers](https://docs.python.org/3/tutorial/floatingpoint.html) +can cause imprecisions in results. To avoid this problem you can use `Decimal` type, +however you still need to avoid passing `float` as its parameter: + +``` +>>> Decimal(1.02) +Decimal("1.020000000000000017763568394002504646778106689453125") +>>> Decimal("1.02") +Decimal("1.02") +``` + +This plugin is meant to spot occurrences where `float` is passed to `Decimal` in your code. + +## Usage + +- install plugin + +``` +pip install mypy-nonfloat-decimal +``` + +- add it into list of mypy plugins in your mypy config (`mypy.ini`) + +``` +[mypy] +plugins=mypy_nonfloat_decimal +``` + +- upon running mypy will detect `float` passed to `Decimal` and report it as an error (`example.py`): + + +``` +from decimal import Decimal +Decimal(1.02) +``` + +``` +$ mypy --config-file ./mypy.ini ./example.py + +example.py:2: error: Invalid type passed to Decimal (expected "Union[int, str, Decimal]"), got float instead +``` + + +%package help +Summary: Development documents and examples for mypy-nonfloat-decimal +Provides: python3-mypy-nonfloat-decimal-doc +%description help +# Mypy non-float Decimal plugin + +Restricts passing float numbers to Decimal + +## Why? + +[The implementation of floating point numbers](https://docs.python.org/3/tutorial/floatingpoint.html) +can cause imprecisions in results. To avoid this problem you can use `Decimal` type, +however you still need to avoid passing `float` as its parameter: + +``` +>>> Decimal(1.02) +Decimal("1.020000000000000017763568394002504646778106689453125") +>>> Decimal("1.02") +Decimal("1.02") +``` + +This plugin is meant to spot occurrences where `float` is passed to `Decimal` in your code. + +## Usage + +- install plugin + +``` +pip install mypy-nonfloat-decimal +``` + +- add it into list of mypy plugins in your mypy config (`mypy.ini`) + +``` +[mypy] +plugins=mypy_nonfloat_decimal +``` + +- upon running mypy will detect `float` passed to `Decimal` and report it as an error (`example.py`): + + +``` +from decimal import Decimal +Decimal(1.02) +``` + +``` +$ mypy --config-file ./mypy.ini ./example.py + +example.py:2: error: Invalid type passed to Decimal (expected "Union[int, str, Decimal]"), got float instead +``` + + +%prep +%autosetup -n mypy-nonfloat-decimal-0.1.7 + +%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-mypy-nonfloat-decimal -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.7-1 +- Package Spec generated @@ -0,0 +1 @@ +b0087998bae2d0b782f67ab1939422a8 mypy-nonfloat-decimal-0.1.7.tar.gz |