-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pydecimal() - min_value
and max_value
should support Decimal
, along with float
#2041
Comments
min_value
and max_value
should support Decimal
, along with float
min_value
and max_value
should support Decimal
, along with float
This is a typing issue, no "real" bug. Feel free to provide a PR to update the corresponding type hint and regenerate the typing stubs. |
@stefan6419846 how I can report typing issues? Because we are havily using faker, and we are requiring If you will give me a way to report typing issues, then I will report there. |
It is indeed correct to report this here, but your initial report sounded like an implementation bug and not a type hint issue. |
If we want to fix that, we can add more annotation in code def pydecimal(
self,
left_digits: Optional[int] = None,
right_digits: Optional[int] = None,
positive: bool = False,
min_value: Optional[Union[float, int, Decimal]] = None,
max_value: Optional[Union[float, int, Decimal]] = None,
) -> Decimal: but I think a problem is, we can have another types of numbers that are subclass of int or something like this, |
Hi @parsariyahi , any subclass should be okay, I guess. We need to check though... |
After some research, I found something, the built-in
I think it's fit the needs for this annotation |
@parsariyahi using |
@fcurella Yes sure, you can asign this issue to me, I will prepare a PR |
turns out, I've tried using |
@fcurella Could you share a bit more about what you wrote above?
And we have: In [12]: Decimal.__abs__?
Signature: Decimal.__abs__(self, /)
Call signature: Decimal.__abs__(*args, **kwargs)
Type: wrapper_descriptor
String form: <slot wrapper '__abs__' of 'decimal.Decimal' objects>
Docstring: abs(self) Plus it's clearly possible to call So I'm confused why you'd say it's not supported - could you help me understand 🙏🏻 |
@fcurella the You can even test it like this (Python 3.11.10): In [1]: import numbers
In [2]: import decimal
In [3]: issubclass(decimal.Decimal, numbers.Number)
Out[3]: True
In [4]: isinstance(decimal.Decimal(100), numbers.Number)
Out[4]: True I have tried the new version and all the complains disappeared for me. Am I missing something? |
The PEP for Decimal states:
I've tried replacing the type with
|
After migrating to version 25+, profiding default value as
Decimal
formin
ormax
values causes violationSteps to reproduce
Expected behavior
The should not be any error observed. The rationale - a lot of software using Decimal from the box for all calculations, in the constants etc to rely on precise double calculation. Therefore I think that it should support Decimal from the box, especially if it is returning Decimal itself.
Actual behavior
Produces this mypy error:
The text was updated successfully, but these errors were encountered: