%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 - 0.1.7-1 - Package Spec generated