However, in the future, we may need have a complete review guideline even 
for setting up the parameter names, 
or to check if the bad naming choices are not marked as positional-only 
arguments.
Although I believe that there are a lot of immature sympy commits before,
but this is quite difficult to change the old code for this, so I'd leave 
them alone.
On Saturday, February 19, 2022 at 5:54:08 AM UTC+2 asme...@gmail.com wrote:

> On Fri, Feb 18, 2022 at 7:39 PM Chris Smith <smi...@gmail.com> wrote:
>
>> A concern I have about the policy is that "positional argument names are 
>> not Public API". I hope this is not correct, because if a function `f(a, 
>> b)` is changed to `f(b, a)` this would start failing without warning. 
>
>
> The names are different from the order. The name of a positional argument 
> doesn't matter but the order obviously does.
>
> I'm not even sure that `f(a, b, c=1, d=2)` should be allowed to be changed 
>> to swap the order of `c` and `d` since the API allows all 4 to be given and 
>> does not require the defaults to be given. So if `f(1, 2, 3, 4)` started 
>> returning (silently) the result for `f(1, 2, 4, 3)`, that would be a 
>> problem.
>
>
> It depends on the specific keyword argument. In some cases it's not really 
> something you should ever use without using the keyword name. 
>
> It would be good to be more explicit about this by using keyword-only 
> arguments. If you write 
>
> def f(a, b, *, c=1, d=2):
>     ...
>
> Then f(1, 2, 3, 4) is not allowed. You have to write f(1, 2, a=3, b=4). 
> You can also do a similar thing with / to make things positional only 
> starting in Python 3.8. Keyword only OTOH has been available ever since we 
> dropped Python 2.
>
> I think we should use keyword only arguments a lot more, because it makes 
> the signature future proof against adding more keyword arguments. Making 
> more things positional only could be good too, although I rarely see people 
> unnecessarily calling a positional argument as a keyword argument. 
>
> I started to do this in https://github.com/sympy/sympy/pull/21803 but 
> some felt that changing existing signatures was itself a compatibility 
> break (I disagree, but even if we decide this, it should be possible to 
> make the change with a custom decorator that just deprecates the old way). 
> Either way it's a huge undertaking to fix all the signatures in SymPy, but 
> worth it IMO. 
>
> Aaron Meurer 
>
>>
>> /c
>> On Wednesday, January 26, 2022 at 3:38:55 PM UTC-6 Aaron Meurer wrote:
>>
>>> We are currently in the process of revamping our deprecations policy 
>>> at https://github.com/sympy/sympy/pull/22900, and we would like any 
>>> feedback from the community, both users and developers. Our current 
>>> policy that this would replace is on the wiki 
>>> https://github.com/sympy/sympy/wiki/Deprecating-policy. 
>>>
>>> In particular, the new policy would have 
>>>
>>> 1. An official period of at least 1 year for all deprecations to last. 
>>> Previously there was no official period for deprecations, and 
>>> deprecated functionality was removed more or less whenever we felt 
>>> like it. 
>>>
>>> 2. Deprecations will still raise a SymPyDeprecationWarning, but the 
>>> proposed policy is to make the warnings contain much more verbose and 
>>> helpful messages. In addition, all warnings will be documented in the 
>>> respective docstrings, listed in a separate "all active deprecations" 
>>> document in the docs, and listed in the release notes for each release 
>>> (currently only the last of these is done). 
>>>
>>> 3. The current silly "deprecation removal issue" thing that we (tried) 
>>> to do will be removed. All documentation for deprecations will be in 
>>> the documentation. 
>>>
>>> 4. I have added some text to the document going over when backwards 
>>> compatibility breaks should be made (tl;dr: sparingly), and what does 
>>> and doesn't require deprecation to change. The document also has 
>>> developer instructions on how to add a deprecation to the code. 
>>>
>>> One question we have for users is if you are happy with our current 
>>> SymPyDeprecationWarnings, which are relatively loud by default (they 
>>> use a warnings filter that always turns them on). Would you prefer 
>>> more silent warnings, like warnings that are documented but aren't 
>>> accompanied by a warning printed to the screen? 
>>>
>>> Aaron Meurer 
>>>
>> -- 
>>
> You received this message because you are subscribed to the Google Groups 
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to sympy+un...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/sympy/bc9ff2d6-540f-4942-9e9c-e79774d20088n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sympy/bc9ff2d6-540f-4942-9e9c-e79774d20088n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/ed985544-d60d-4af2-b52d-0313ceaa076en%40googlegroups.com.

Reply via email to